The patch titled Subject: mm: drop page_index and simplify folio_index has been added to the -mm mm-unstable branch. Its filename is mm-drop-page_index-and-simplify-folio_index.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-drop-page_index-and-simplify-folio_index.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: Kairui Song <kasong@xxxxxxxxxxx> Subject: mm: drop page_index and simplify folio_index Date: Wed, 22 May 2024 01:58:52 +0800 There are two helpers for retrieving the index within address space for mixed usage of swap cache and page cache: - page_index - folio_index This commit drops page_index, as we have eliminated all users, and converts folio_index's helper __page_file_index to use folio to avoid the page conversion. Link: https://lkml.kernel.org/r/20240521175854.96038-11-ryncsn@xxxxxxxxx Signed-off-by: Kairui Song <kasong@xxxxxxxxxxx> Reviewed-by: "Huang, Ying" <ying.huang@xxxxxxxxx> Cc: Anna Schumaker <anna@xxxxxxxxxx> Cc: Barry Song <v-songbaohua@xxxxxxxx> Cc: Chao Yu <chao@xxxxxxxxxx> Cc: Chris Li <chrisl@xxxxxxxxxx> Cc: David Hildenbrand <david@xxxxxxxxxx> Cc: David Howells <dhowells@xxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Ilya Dryomov <idryomov@xxxxxxxxx> Cc: Jaegeuk Kim <jaegeuk@xxxxxxxxxx> Cc: Jeff Layton <jlayton@xxxxxxxxxx> Cc: Marc Dionne <marc.dionne@xxxxxxxxxxxx> Cc: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: NeilBrown <neilb@xxxxxxx> Cc: Ryan Roberts <ryan.roberts@xxxxxxx> Cc: Ryusuke Konishi <konishi.ryusuke@xxxxxxxxx> Cc: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> Cc: Xiubo Li <xiubli@xxxxxxxxxx> Cc: Yosry Ahmed <yosryahmed@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- include/linux/mm.h | 13 ------------- include/linux/pagemap.h | 8 ++++---- mm/swapfile.c | 7 +++---- 3 files changed, 7 insertions(+), 21 deletions(-) --- a/include/linux/mm.h~mm-drop-page_index-and-simplify-folio_index +++ a/include/linux/mm.h @@ -2290,19 +2290,6 @@ static inline void *folio_address(const return page_address(&folio->page); } -extern pgoff_t __page_file_index(struct page *page); - -/* - * Return the pagecache index of the passed page. Regular pagecache pages - * use ->index whereas swapcache pages use swp_offset(->private) - */ -static inline pgoff_t page_index(struct page *page) -{ - if (unlikely(PageSwapCache(page))) - return __page_file_index(page); - return page->index; -} - /* * Return true only if the page has been allocated with * ALLOC_NO_WATERMARKS and the low watermark was not --- a/include/linux/pagemap.h~mm-drop-page_index-and-simplify-folio_index +++ a/include/linux/pagemap.h @@ -780,7 +780,7 @@ static inline struct page *grab_cache_pa mapping_gfp_mask(mapping)); } -#define swapcache_index(folio) __page_file_index(&(folio)->page) +extern pgoff_t __folio_swap_cache_index(struct folio *folio); /** * folio_index - File index of a folio. @@ -795,9 +795,9 @@ static inline struct page *grab_cache_pa */ static inline pgoff_t folio_index(struct folio *folio) { - if (unlikely(folio_test_swapcache(folio))) - return swapcache_index(folio); - return folio->index; + if (unlikely(folio_test_swapcache(folio))) + return __folio_swap_cache_index(folio); + return folio->index; } /** --- a/mm/swapfile.c~mm-drop-page_index-and-simplify-folio_index +++ a/mm/swapfile.c @@ -3474,12 +3474,11 @@ struct address_space *swapcache_mapping( } EXPORT_SYMBOL_GPL(swapcache_mapping); -pgoff_t __page_file_index(struct page *page) +pgoff_t __folio_swap_cache_index(struct folio *folio) { - swp_entry_t swap = page_swap_entry(page); - return swp_offset(swap); + return swp_offset(folio->swap); } -EXPORT_SYMBOL_GPL(__page_file_index); +EXPORT_SYMBOL_GPL(__folio_swap_cache_index); /* * add_swap_count_continuation - called when a swap count is duplicated _ Patches currently in -mm which might be from kasong@xxxxxxxxxxx are f2fs-drop-usage-of-page_index.patch nilfs2-drop-usage-of-page_index.patch ceph-drop-usage-of-page_index.patch nfs-remove-nfs_page_lengthg-and-usage-of-page_index.patch afs-drop-usage-of-folio_file_pos.patch netfs-drop-usage-of-folio_file_pos.patch nfs-drop-usage-of-folio_file_pos.patch mm-swap-get-the-swap-device-offset-directly.patch mm-remove-page_file_offset-and-folio_file_pos.patch mm-drop-page_index-and-simplify-folio_index.patch mm-swap-reduce-swap-cache-search-space.patch