From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6266CC28B28 for ; Thu, 13 Mar 2025 17:42:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B818728000E; Thu, 13 Mar 2025 13:42:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B31C0280001; Thu, 13 Mar 2025 13:42:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9FA5A28000E; Thu, 13 Mar 2025 13:42:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 6F09A280001 for ; Thu, 13 Mar 2025 13:42:23 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id D40311A03B2 for ; Thu, 13 Mar 2025 17:42:23 +0000 (UTC) X-FDA: 83217246966.03.83D517C Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) by imf08.hostedemail.com (Postfix) with ESMTP id D386716000C for ; Thu, 13 Mar 2025 17:42:21 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XwSgQ+BG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.166.44 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741887741; a=rsa-sha256; cv=none; b=Rc2zLEOUHlzGj00wu0hjkfRi4rsOlXv4ZwGxRJLCo5maWAvvdwNGFEuqK27nq/WKR2Ykrx TeSQzH8pUvkxqA83h9xQpZoWbOz2hbQDe02TcQy5kaWWvPVb8cP+V9uI8HfOcDOiuzJ4sj 8Luh6goOER+gslsV2IPNGNqKYWN4lGQ= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=XwSgQ+BG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf08.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.166.44 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741887741; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dzRjsGmgrcmLRD9pxAIJR9UDP98igLf07dZiBIxzCu8=; b=QRZMNeb5Xy1CoQP2hxrapMhoxMTFuGqa6uhxc+hLjnRMWXHcNIem6JG6gO45119Uoq2moz J8l7X/F3aYl9hSYEmcWVPVgN03V7oAQEE4HZBaGLfBGcEk/KHtgQaCvO1bgs1by6bfifaB dP5vxjIr2h3Gq5QqovFrG/C3gwJ4/Dc= Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-85ae4dc67e5so56593939f.2 for ; Thu, 13 Mar 2025 10:42:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1741887740; x=1742492540; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dzRjsGmgrcmLRD9pxAIJR9UDP98igLf07dZiBIxzCu8=; b=XwSgQ+BG4bJoi93njUxVgrFPHexkW1CA/mZdNHOWCsMsx4Mtkwy35aUupnw2CzSROD rLjYjos7qOoV9SRuDNcbwZs+Qjxa+cJJKwfxk3cN7EUH+pQD4qEme2oRiWIItFU5BJqk 1Lj6BhP0CbMMqdo5T6Go87wftdqzHnP6JdZ5NLp86VJ06fjmsbfXs//4s61c39xe+PAA FDeMKuT4ecARULqjHjQqeJwJTDxUZTBhTDagZvjxqX8M+n4pCgb/r8lQnincvuOt7k5f UqXxdfhUFzWi7kNBhFG2QFluQreuenX8lLtnf/Xu9wKX4X/VXzjSeJB10SjJg/uHu8N9 J02Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741887740; x=1742492540; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dzRjsGmgrcmLRD9pxAIJR9UDP98igLf07dZiBIxzCu8=; b=QJR5QBv3XOmRUi5SmmgKBamdKXbCw7Rl2V8JzLsuwvaIduviJ7el/auPnv0ARiFTHf 7q8bfJEcL2vJmcMVTsRo/EEdRPFo2KnJUMjxrdo3xkSH0h7A3Pwg1GVMlW34fcp2TJ0p VzVhQelzFdPOpeguTXoDsgFLaLCPn0hvB/y+HazM+mliM36DZ04YG0G5N0H7CjbPoDLJ J5yBLqncyo77wG3ggYGBmbl3QTe1Sj8JrAPyUOllfr7sRvPezaTGchACL/PNUzmgXDHd EeQd3jbHN+8QWWgqXWBxJJ9zUQvNPyTKs3UnQkTi1B4unbPGx2c3bZG9S0SZSrqElaGu Bdyg== X-Forwarded-Encrypted: i=1; AJvYcCUlB/EekdsFzY9loSaxPu0RdfZibzwM+mZDlZPfunr6x/nmlHF4MtkurN1E34t9mLjoXiLQeSA4Xw==@kvack.org X-Gm-Message-State: AOJu0Yxd4yqNtY32Al+kItz/g0MyY3Jkfy5apJnU5/kFk+is9qI5gjDP cC6Yq2r4onx1emfoIzaG6MfWIpp/K+K9GWXpJ77uQ2WR0hvxaBmFwfh0n8rzz1CbymTMn65KLxv ILAwU4LocG9LYpA71G+s5AgxcO18= X-Gm-Gg: ASbGncvmMHIDx/rmEHpI7z/CxNwwDkpfNWfXTFYwBQs2fhAatE4GnVHTgeo41Zhu4NF ZRhoyzYGk83QP5DNVl+tZkbtBLijuXH769eOCrqmiSSHs+EIQHMXar5z5zG5gjqQosYp499g7Hr AlCdbNtRU3rJdMIKdnSVH8a6buYUuDFJ9fKWvy X-Google-Smtp-Source: AGHT+IFfF9KJneZJFwJIQuwgstII0wFOWeR+aLTcQrhWtdW21ZZ2D7ebLsDMmqKYndyO7oeydyE2oRvKM5JdMjl43Lk= X-Received: by 2002:a05:6602:6a8a:b0:85b:45c4:571e with SMTP id ca18e2360f4ac-85dc19d718amr89275239f.9.1741887740579; Thu, 13 Mar 2025 10:42:20 -0700 (PDT) MIME-Version: 1.0 References: <20250313210515.9920-1-shikemeng@huaweicloud.com> <20250313210515.9920-3-shikemeng@huaweicloud.com> In-Reply-To: <20250313210515.9920-3-shikemeng@huaweicloud.com> From: Kairui Song Date: Fri, 14 Mar 2025 01:42:00 +0800 X-Gm-Features: AQ5f1JompTzgbwN-iESGGTqXlCXKY5nfcFyM3nd4dgCUQBqtFCjByq76KT6atM0 Message-ID: Subject: Re: [PATCH 2/9] mm: swap: factor out the actual swap entry freeing logic to new helper To: Kemeng Shi Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam07 X-Rspam-User: X-Stat-Signature: yxhj5qid7uk5q5dgnz8rngwyqxjfin4d X-Rspamd-Queue-Id: D386716000C X-HE-Tag: 1741887741-356384 X-HE-Meta: U2FsdGVkX18pnxYHkdx1jAl0bBMW2sL1cf/yCfNSO8LAmA5nlVh7VaKLMe6pvOPRB7u35dlFDVrNHquFG5d9P7F4t6A58SxfAGaZA0abIvUVG6CQvv/FSLvRxOvi+aue8pYIJNdUACIEh35nE7Gqd0msKLx7AhtxwX+zh8mE0r3YfQzLbiXlPrkkmCMiLoj+vW48anwfdsoKA1LT3CBN//5gLmxxnE7URegPCDpYqcEBEfKN7hdmgcDE40HnT4LBr1Iu8Rg2KPRP0DE1OIXIp8/qDX/eGj5pDlvQ8SBcnzZDqvNR9slSIcN8ud0vy90XyEWrfNxS00+LolIEVMCuykBBX6zQDKFxdXRPM30axH/6jR+D0MBlh9P8RCcvav6MUlEJ6jJ7VaRWRAecWhasG9LHdiR1gh11U2Q01BzZGbUZlGXl0Qcct08bjNb5V1tKk3RtgKO0xKmP/ZNxrtSJbglFkKWcujHROrY3p8d53sYL6BNNljhndu4WQUJ9+fUHG1Lhw5vgu4bA/TKD3c/RXdQrGRpzXMgs85IsnCcYVxJp/gzFapS/5rl8uriDN4SK7eKO91+VuewizFWu5iRfgbjo0qKuOxx6T32bV5rUqjR5K+GXCfWzIFAmObbuYBozb5jbEGm5FSn1fjBC0Uf3D4AzEiP0TFBHYMZ1dnQjhqbbhb3KB/0Rw1QPhA3QK/TKTGEgKP74RwJfI0GQtm5Gvnq7yHEDmyP/gNLNvgpCY8P9YpccazHa8nt37NKLNZNGAWHP2HAeergHMBs1/y9gVPysIV+Qy+CpaASvVFUISv37kDQHsAgC4c1K4fiefm6sps/v+9NIQSQBcVZcoHvc8oDSTIasWE5VY5L4gi76jya5XCGxISTl2KMslaE01u089mABASI0Uq9wEIqyLs8+W7XA94Db7rFS7t0kIgHOAJBGudgSuLFaxrhvFMOVVA/uaw26cDwRX+A8h3RGxS2 BPUy8y7v 9RyrTlDt7FpmeSEwJmfKAs9l6LWhUC3kgCYyY4XtZ4HJPeNx1HDluPYlRv/RzpwkXjVgOjs00COSJfT73g99AHlg4lkdQgPHtp7+fBiVWqonqs3jaEjrrVH5bMghXXAFcVm9hbgd6WoxwIHLu9iiovoghohyeQ03kmvhVBV57buPkAGPFQAJjwk5K6xi8rpgoG/OgQHqWUgKTXiDYsQwrxfpBCgrDeCkzWo6/MYJcwdkn9l46Z8Gxg0DqWDSRaEKLzRwcwIGtyPNhvK2tOv5RunAH7EEiTxdEDhMu2GyV98wzDtHCfUcllIs8vcyRi/TjZk0O1pF3dIXCUBSNlxQzSeYIaYRYb+a/YX5lw5WK3El09c8wUTBNNuR2eaKa2IzwYUgZ X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Thu, Mar 13, 2025 at 8:09=E2=80=AFPM Kemeng Shi wrote: > > Factor out the actual swap entry freeing logic to new helper > __swap_entries_free(). > This allow us to futher simplify other swap entry freeing code by > leveraging __swap_entries_free() helper function. > > Signed-off-by: Kemeng Shi > --- > mm/swapfile.c | 30 ++++++++++++++++++++---------- > 1 file changed, 20 insertions(+), 10 deletions(-) > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index 5a775456e26c..7c886f9dd6f9 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1347,6 +1347,25 @@ static struct swap_info_struct *_swap_info_get(swp= _entry_t entry) > return NULL; > } > > +static inline void __swap_entries_free(struct swap_info_struct *si, > + struct swap_cluster_info *ci, > + swp_entry_t entry, unsigned int nr= _pages) > +{ > + unsigned long offset =3D swp_offset(entry); > + > + VM_BUG_ON(cluster_is_empty(ci)); > + VM_BUG_ON(ci->count < nr_pages); > + > + ci->count -=3D nr_pages; > + mem_cgroup_uncharge_swap(entry, nr_pages); > + swap_range_free(si, offset, nr_pages); > + > + if (!ci->count) > + free_cluster(si, ci); > + else > + partial_free_cluster(si, ci); > +} > + > static unsigned char swap_entry_put_locked(struct swap_info_struct *si, > unsigned long offset, > unsigned char usage) > @@ -1525,22 +1544,13 @@ static void swap_entry_range_free(struct swap_inf= o_struct *si, > > /* It should never free entries across different clusters */ > VM_BUG_ON(ci !=3D offset_to_cluster(si, offset + nr_pages - 1)); > - VM_BUG_ON(cluster_is_empty(ci)); > - VM_BUG_ON(ci->count < nr_pages); > > - ci->count -=3D nr_pages; > do { > VM_BUG_ON(*map !=3D SWAP_HAS_CACHE); > *map =3D 0; > } while (++map < map_end); > > - mem_cgroup_uncharge_swap(entry, nr_pages); > - swap_range_free(si, offset, nr_pages); > - > - if (!ci->count) > - free_cluster(si, ci); > - else > - partial_free_cluster(si, ci); > + __swap_entries_free(si, ci, entry, nr_pages); > } > > static void cluster_swap_free_nr(struct swap_info_struct *si, > -- > 2.30.0 > > Hi Kemeng, This patch is a bit too trivial to be a standalone one, you can fold it with the later one easily. Also you may want to carry the VM_BUG_ON(ci !=3D offset_to_cluster(si, offset + nr_pages - 1)); check as well. But, that is basically just renaming swap_entry_range_free, you may just remove the HAS_CACHE check as you rename it, that way the changes should be cleaner.