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 0C419C3ABA5 for ; Tue, 29 Apr 2025 13:35:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4EA766B0008; Tue, 29 Apr 2025 09:35:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 49AEB6B000A; Tue, 29 Apr 2025 09:35:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 33B0E6B000C; Tue, 29 Apr 2025 09:35:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 1450D6B0008 for ; Tue, 29 Apr 2025 09:35:31 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CA5BC802F9 for ; Tue, 29 Apr 2025 13:35:31 +0000 (UTC) X-FDA: 83387178462.21.62C3052 Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) by imf12.hostedemail.com (Postfix) with ESMTP id D3D1E40007 for ; Tue, 29 Apr 2025 13:35:29 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CxFFo23d; spf=pass (imf12.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.175 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745933730; 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=fodDWo+RGItuZQ4Oj97QRpH3lQkupmOqH95MLEPhgwk=; b=vVHZ36/7mC0vwN7Oxuqw+FRtyNE/dcHz79JOvYwF6CJHARdA2w2wDal+EejQmeaZsYPd7O IPrS0NE8trX6suRGhCoYKZCWJXGbhdOET+pQSxZn3lLhdLd+1QTZKjR989A6wca3hTpWlz Du7exGiX94ylzdN6G+zi41rSGIhrD9Y= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CxFFo23d; spf=pass (imf12.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.175 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745933730; a=rsa-sha256; cv=none; b=K5/kyt26EN2/wcGsFxCcxYFhCCc9eEAHdIqEOSZ/5cSwsRlIntkY2i8uCEVkFz0jmUdvT3 Po9rim4dnHWd9OoUtSsDFBDQad1hgVwXCM0DW4zU41Lb5kJVfyKfqt4oXJZHzW12QEczTA dHan550qY2I5p9laCehExxa5Q8sFdrk= Received: by mail-lj1-f175.google.com with SMTP id 38308e7fff4ca-30bfc8faef9so57911681fa.1 for ; Tue, 29 Apr 2025 06:35:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745933728; x=1746538528; 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=fodDWo+RGItuZQ4Oj97QRpH3lQkupmOqH95MLEPhgwk=; b=CxFFo23d2qKkGwsJlP9/rMVAAvinwWEUaO3eJc2Q4V/XwukqnnGiFCBXjn5fkmd/b6 V78B4/LjoHwDhpXk8FXj0TZWDeVLqR9i2z/G0Hi7wDunORTyidSgiz+6t/0MuKv5ip8y toSGfOx7l6l1aC2vyz8iun37L2bgoOMLHlTsc3sfVfj7GHaTueqZnqlC+YgNVAmQ3GAQ Z3DUL9/Z7AsGQIVBdZ1YfSrhpnXaL5aIFtwdUy7fcqcUI6n2U5FFMS+BMSq1ssKULV8V S/gRAtNs2jzL0HKr/foYfx+GVh6hTUBMRWeqDRAdeZ/L/tPXrmkNbloaVAXk8DEFwYIr 0dVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745933728; x=1746538528; 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=fodDWo+RGItuZQ4Oj97QRpH3lQkupmOqH95MLEPhgwk=; b=IpxC0iVuD/sxyg70dgu6V7rbHu2icDRmk9ETweb+R7vlylz91so9dV4dUL9f7hP8j9 Xx1BdG2f1mTnij6jobmskcavWkcKYxTi+fvlo+80icGBGr6WtWwWmJ9ojYHi0vg7rABM H7a8MU4mfl+wMsYCRrjTY+K1XQMTuTmb4H1/eQDuTSLTdvxNLfJs6QfC75rvovazzJVy 26nwf03i29SjeaSmR79uA0zG+pO9YHgOAZtnjVNANlYlLqN26QjfiD0UdrhkXQlSw6Jv KIVvRUrujAcCZFJHWQAn8ky7zUsdEu+D0V2Nl8wBY2CouhAu+wv7rH99z8JT9P9nmWsU 68ng== X-Gm-Message-State: AOJu0Yw0Ceh1ajkOpQSJOwyLfWv/qUlfRSk2B2rumDaO0unzIgex7U+u 4XyW9L/lz0vrWRM7E/Rmq8n4k26aClulkwyp05v0JO705Z06M9mL/T8m9ap0vpwFXnStq3NNXKW vvTClKK/IRMYWjccgyaHb/OMmBI8= X-Gm-Gg: ASbGncsbDBJAfSUGgnfPbr/zn5RIxuiJzpD8FbKk8JmVlScTA3lbnU2g3nYH0gWeSGh fTeSHoSFRRMET8O9kP9Xec5idCkQimON3TX2vWF6GmlPYCNg1YNRzTEzKkh1hel8XyYm0UFZdZ3 FtfRDnF3MNHH5/c78gUzk0lg== X-Google-Smtp-Source: AGHT+IEwbfo6deTbCOIVtlzBWTe68r6ELJYHmuLGqK8PNPUVDEYpsne7HuqViroBaEpBasloP+47VkDxUjCrfDuNbX8= X-Received: by 2002:a05:651c:88f:b0:30b:9813:b010 with SMTP id 38308e7fff4ca-319dd1c2296mr41566301fa.31.1745933727982; Tue, 29 Apr 2025 06:35:27 -0700 (PDT) MIME-Version: 1.0 References: <20250429114949.41124-1-ryncsn@gmail.com> <20250429114949.41124-6-ryncsn@gmail.com> <78487605-8b83-4b77-8147-9e34e4f8fda2@redhat.com> In-Reply-To: <78487605-8b83-4b77-8147-9e34e4f8fda2@redhat.com> From: Kairui Song Date: Tue, 29 Apr 2025 21:35:10 +0800 X-Gm-Features: ATxdqUE4OYwPtw1kshLNvPBfX3ps1ZKR7FI5Y31rw9GI1__xH3Xmuo1y3FX0n9U Message-ID: Subject: Re: [PATCH v2 5/6] mm: move folio_index to mm/swap.h and remove no longer needed helper To: David Hildenbrand Cc: linux-mm@kvack.org, Andrew Morton , Matthew Wilcox , Hugh Dickins , Chris Li , Yosry Ahmed , "Huang, Ying" , Nhat Pham , Johannes Weiner , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: thjha57w14yxbx8g8dz5bitkef43o1bk X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: D3D1E40007 X-Rspam-User: X-HE-Tag: 1745933729-172828 X-HE-Meta: U2FsdGVkX1/tip8ML/kcZE0k+MjKW8BLsY3mJj/muR2Me4LtAqMBXqlZ5nZz1AFTPyEQhvyb/AKG4vKzIhvXYHQUcLUaqohn4n49sCXrxdpOszGEHa5Hi1ZVT7IsxWtuidhbQQ6jcq7PDokRBs7qARwe/626eCw0n6w032ebxqjllFrIkaSzNufIOSPpvSq9PoHAGs8OYJfLCQ8W026dH3GaC/bksAK/E473lWrG0zrLYfSFSWSo79X9v9ra9fib94AiyJARcYsslZQRFuG7Wp69C/QeANgklRYDs2PrXu/K/lDxzn1cM0SFnPGCMNozPK/TxMSt7fLlRHvlki6wWWTZxfMZsf1ybccEhefUVFAMcYugUDYZELTFyr8NEjcuc8MATvu8nDRQKH7LK+8yN3kozq6VOfjugBOeDfqYncE0/cKzZg6QNWtLZRhx3u+7yYogaum3/666Nlq3oYdOkvbxLEgQyin6lPtA7XCG5GxmaLo0qKykDT1a9UnhUnhWIC79D9C5wo5XDwmrIf8FvFrhy64hoX2wbPtvdhdSrGSA5bYMD3TbEtK8vgnYzaAC8PPGn1HLpNBloIim7/R9GA7ZHsXnyRv8BwUe1GVavmHl6anrZcxPavCwKnYuNqkYc1bcjt1fUdCvJnDgIru2IValbo63O8Dr3h7ZiJKsKRLi0+tA698hYwoyYAeyD4RSaUEioM3C2COHN4WpXBkSDO27pdTqhvc1eOwMfLIpLsAgbnkwOLZ0mFcDcgBxh7vHOeEktFdCvb0kikulSfG3u6LXhUY2ZP+OxBJLZfZ+JFNZ3uhFTTdmI2RJYBF8lHt4+30HQ9DnYIhIIjHoyCdrxbwf8puvYoSuP8PfoQJRvevdljRE/rCGR2EAygwjoNwHpT6ZG+Nbwu+bvDgDO9ajV9sEEk1oumaJ3ECscE9PAQu5agwEis6iD/XMvVTfPTnsa25fvUrpbyCsQmvp5z0 od7Rx8WG VR02WWsesZ5HLKCYrOIRZu92r7l2HUdoKg6HFRRg2B7uypvHHNRo5CXJb+F8OyLyCdUp89pCkB68JbHxZxShjNJkjdXWtE10rt8/VaXvWtdQorNELRnFUpP1Oj/4T+aS+h/c2rUZ0vDoUPWrTMXyGT7KJ7FoBaN/GHAXD4MllgorPCNbS2XIahcCWrHgaCVw/vHSvkNMLh0j0Vbz8BsuHKbhsEBMjqlCw+xIeflS2+0FXpIiZsqfzK1WeQ3oO1+Q3gN2kmVUuEX+OJn/9OO7okdtFlFwVoJ3bYrD8wGJTcaoOiWAe90Ur1MQGcWlRa50MtIPpgtVN33sPQkRoSvm8vIHLLoU0L7M6W3kG9Wc+WcEMx9NBEnNqngADBX7yJwgbjIy7S/KZN0AYU/zKiPwgPpyrWM1EWkrl/Xta 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 Tue, Apr 29, 2025 at 8:24=E2=80=AFPM David Hildenbrand wrote: > > On 29.04.25 13:49, Kairui Song wrote: > > From: Kairui Song > > > > There are no remaining users of folio_index() outside the mm subsystem. > > Move it to mm/swap.h to co-locate it with swap_cache_index(), eliminati= ng > > a forward declaration, and a function call overhead. > > > > Also remove the helper that was used to fix circular header dependency > > issue. > > > > Signed-off-by: Kairui Song > > --- > > include/linux/pagemap.h | 20 -------------------- > > mm/memfd.c | 1 + > > mm/migrate.c | 1 + > > mm/swap.h | 23 +++++++++++++++++++++++ > > mm/swapfile.c | 6 ------ > > 5 files changed, 25 insertions(+), 26 deletions(-) > > > > diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h > > index 1dc3416a9c0d..47b5746d5a65 100644 > > --- a/include/linux/pagemap.h > > +++ b/include/linux/pagemap.h > > @@ -884,26 +884,6 @@ static inline struct page *grab_cache_page_nowait(= struct address_space *mapping, > > mapping_gfp_mask(mapping)); > > } > > > > -extern pgoff_t __folio_swap_cache_index(struct folio *folio); > > - > > -/** > > - * folio_index - File index of a folio. > > - * @folio: The folio. > > - * > > - * For a folio which is either in the page cache or the swap cache, > > - * return its index within the address_space it belongs to. If you kn= ow > > - * the page is definitely in the page cache, you can look at the folio= 's > > - * index directly. > > - * > > - * Return: The index (offset in units of pages) of a folio in its file= . > > - */ > > -static inline pgoff_t folio_index(struct folio *folio) > > -{ > > - if (unlikely(folio_test_swapcache(folio))) > > - return __folio_swap_cache_index(folio); > > - return folio->index; > > -} > > - > > /** > > * folio_next_index - Get the index of the next folio. > > * @folio: The current folio. > > diff --git a/mm/memfd.c b/mm/memfd.c > > index c64df1343059..ab367e61553d 100644 > > --- a/mm/memfd.c > > +++ b/mm/memfd.c > > @@ -20,6 +20,7 @@ > > #include > > #include > > #include > > +#include "swap.h" > > > > /* > > * We need a tag: a new tag would expand every xa_node by 8 bytes, > > diff --git a/mm/migrate.c b/mm/migrate.c > > index f3ee6d8d5e2e..662e5dc44b33 100644 > > --- a/mm/migrate.c > > +++ b/mm/migrate.c > > @@ -50,6 +50,7 @@ > > #include > > > > #include "internal.h" > > +#include "swap.h" > > > > bool isolate_movable_page(struct page *page, isolate_mode_t mode) > > { > > diff --git a/mm/swap.h b/mm/swap.h > > index 6f4a3f927edb..91439d0ce50b 100644 > > --- a/mm/swap.h > > +++ b/mm/swap.h > > @@ -50,6 +50,24 @@ static inline pgoff_t swap_cache_index(swp_entry_t e= ntry) > > return swp_offset(entry) & SWAP_ADDRESS_SPACE_MASK; > > } > > > > +/** > > + * folio_index - File index of a folio. > > + * @folio: The folio. > > + * > > + * For a folio which is either in the page cache or the swap cache, > > + * return its index within the address_space it belongs to. If you kn= ow > > + * the folio is definitely in the page cache, you can look at the foli= o's > > + * index directly. > > + * > > + * Return: The index (offset in units of pages) of a folio in its file= . > > + */ > > +static inline pgoff_t folio_index(struct folio *folio) > > +{ > > + if (unlikely(folio_test_swapcache(folio))) > > + return swap_cache_index(folio->swap); > > + return folio->index; > > +} > > + > > void show_swap_cache_info(void); > > void *get_shadow_from_swap_cache(swp_entry_t entry); > > int add_to_swap_cache(struct folio *folio, swp_entry_t entry, > > @@ -125,6 +143,11 @@ static inline pgoff_t swap_cache_index(swp_entry_t= entry) > > return 0; > > } > > > > +static inline pgoff_t folio_index(struct folio *folio) > > +{ > > + return folio->index; > > +} > > + > > Could we just have a single generic function that does something like: > > static inline pgoff_t folio_index(struct folio *folio) > { > if (unlikely(IS_ENABLED(CONFIG_SWAP) && > folio_test_swapcache(folio))) > return swap_cache_index(folio->swap); > return folio->index; > } > Sure, this is doable. I wanted to put the file in swap.h so it can use swap_cache_index without introducing another extra header dependency, and put in right next to swap_cache_index, I thought this way looks prettier :) I can move it to the tail of this file (out of ifdef CONFIG_SWAP) and use one single generic function. > > -- > Cheers, > > David / dhildenb > >