From: "Matthew Wilcox (Oracle)" <willy@infradead.org> To: linux-mm@kvack.org Cc: intel-gfx@lists.freedesktop.org, Huang Ying <ying.huang@intel.com>, Hugh Dickins <hughd@google.com>, linux-kernel@vger.kernel.org, Chris Wilson <chris@chris-wilson.co.uk>, William Kucharski <william.kucharski@oracle.com>, "Matthew Wilcox \(Oracle\)" <willy@infradead.org>, Johannes Weiner <hannes@cmpxchg.org>, cgroups@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>, Alexey Dobriyan <adobriyan@gmail.com>, Matthew Auld <matthew.auld@intel.com> Subject: [Intel-gfx] [PATCH v2 6/8] mm: Convert find_get_entry to return the head page Date: Thu, 10 Sep 2020 19:33:16 +0100 Message-ID: <20200910183318.20139-7-willy@infradead.org> (raw) In-Reply-To: <20200910183318.20139-1-willy@infradead.org> There are only four callers remaining of find_get_entry(). get_shadow_from_swap_cache() only wants to see shadow entries and doesn't care about which page is returned. Push the find_subpage() call into find_lock_entry(), find_get_incore_page() and pagecache_get_page(). Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- mm/filemap.c | 13 +++++++------ mm/swap_state.c | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/mm/filemap.c b/mm/filemap.c index d64f6f76bc0b..2f134383b0ae 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1567,19 +1567,19 @@ EXPORT_SYMBOL(page_cache_prev_miss); /** * find_get_entry - find and get a page cache entry * @mapping: the address_space to search - * @offset: the page cache index + * @index: The page cache index. * * Looks up the page cache slot at @mapping & @offset. If there is a - * page cache page, it is returned with an increased refcount. + * page cache page, the head page is returned with an increased refcount. * * If the slot holds a shadow entry of a previously evicted page, or a * swap entry from shmem/tmpfs, it is returned. * - * Return: the found page or shadow entry, %NULL if nothing is found. + * Return: The head page or shadow entry, %NULL if nothing is found. */ -struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) +struct page *find_get_entry(struct address_space *mapping, pgoff_t index) { - XA_STATE(xas, &mapping->i_pages, offset); + XA_STATE(xas, &mapping->i_pages, index); struct page *page; rcu_read_lock(); @@ -1607,7 +1607,6 @@ struct page *find_get_entry(struct address_space *mapping, pgoff_t offset) put_page(page); goto repeat; } - page = find_subpage(page, offset); out: rcu_read_unlock(); @@ -1644,6 +1643,7 @@ struct page *find_lock_entry(struct address_space *mapping, pgoff_t offset) put_page(page); goto repeat; } + page = find_subpage(page, offset); VM_BUG_ON_PAGE(page_to_pgoff(page) != offset, page); } return page; @@ -1690,6 +1690,7 @@ struct page *pagecache_get_page(struct address_space *mapping, pgoff_t index, page = NULL; if (!page) goto no_page; + page = find_subpage(page, index); if (fgp_flags & FGP_LOCK) { if (fgp_flags & FGP_NOWAIT) { diff --git a/mm/swap_state.c b/mm/swap_state.c index c79e2242dd04..c8cf1757ca06 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -432,7 +432,7 @@ struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index) struct page *page = find_get_entry(mapping, index); if (!xa_is_value(page)) - return page; + return find_subpage(page, index); if (!shmem_mapping(mapping)) return NULL; -- 2.28.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply index Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-09-10 18:33 [Intel-gfx] [PATCH v2 0/8] Return head pages from find_*_entry Matthew Wilcox (Oracle) 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 1/8] mm: Factor find_get_incore_page out of mincore_page Matthew Wilcox (Oracle) 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 2/8] mm: Use find_get_incore_page in memcontrol Matthew Wilcox (Oracle) 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 3/8] mm: Optimise madvise WILLNEED Matthew Wilcox (Oracle) 2020-09-14 16:17 ` Qian Cai 2020-09-14 16:47 ` Qian Cai 2020-09-14 16:50 ` Matthew Wilcox 2020-09-14 19:44 ` Qian Cai 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 4/8] proc: Optimise smaps for shmem entries Matthew Wilcox (Oracle) 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 5/8] i915: Use find_lock_page instead of find_lock_entry Matthew Wilcox (Oracle) 2020-09-10 18:33 ` Matthew Wilcox (Oracle) [this message] 2020-09-14 8:55 ` [Intel-gfx] [mm] 2037ab69a5: BUG:KASAN:null-ptr-deref_in_t kernel test robot 2020-09-14 11:27 ` Matthew Wilcox 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 7/8] mm/shmem: Return head page from find_lock_entry Matthew Wilcox (Oracle) 2020-09-12 3:20 ` Matthew Wilcox 2020-09-10 18:33 ` [Intel-gfx] [PATCH v2 8/8] mm: Add find_lock_head Matthew Wilcox (Oracle) 2020-09-10 18:55 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Return head pages from find_*_entry Patchwork 2020-09-12 3:49 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Return head pages from find_*_entry (rev2) Patchwork 2020-09-14 18:37 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for Return head pages from find_*_entry (rev4) Patchwork 2020-09-15 8:10 ` [Intel-gfx] [PATCH v2 0/8] Return head pages from find_*_entry Hugh Dickins 2020-09-15 12:53 ` Naresh Kamboju 2020-09-15 13:08 ` Matthew Wilcox
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200910183318.20139-7-willy@infradead.org \ --to=willy@infradead.org \ --cc=adobriyan@gmail.com \ --cc=akpm@linux-foundation.org \ --cc=cgroups@vger.kernel.org \ --cc=chris@chris-wilson.co.uk \ --cc=hannes@cmpxchg.org \ --cc=hughd@google.com \ --cc=intel-gfx@lists.freedesktop.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=matthew.auld@intel.com \ --cc=william.kucharski@oracle.com \ --cc=ying.huang@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Intel-GFX Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/intel-gfx/0 intel-gfx/git/0.git git clone --mirror https://lore.kernel.org/intel-gfx/1 intel-gfx/git/1.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 intel-gfx intel-gfx/ https://lore.kernel.org/intel-gfx \ intel-gfx@lists.freedesktop.org public-inbox-index intel-gfx Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.freedesktop.lists.intel-gfx AGPL code for this site: git clone https://public-inbox.org/public-inbox.git