| From: |
| "Matthew Wilcox (Oracle)" <willy-AT-infradead.org> |
| To: |
| linux-fsdevel-AT-vger.kernel.org, linux-mm-AT-kvack.org |
| Subject: |
| [PATCH v4 00/16] Overhaul multi-page lookups for THP |
| Date: |
| Thu, 12 Nov 2020 21:26:25 +0000 |
| Message-ID: |
| <20201112212641.27837-1-willy@infradead.org> |
| Cc: |
| "Matthew Wilcox (Oracle)" <willy-AT-infradead.org>, akpm-AT-linux-foundation.org, hughd-AT-google.com, hch-AT-lst.de, hannes-AT-cmpxchg.org, yang.shi-AT-linux.alibaba.com, dchinner-AT-redhat.com, linux-kernel-AT-vger.kernel.org |
| Archive-link: |
| Article |
This THP prep patchset changes several page cache iteration APIs to only
return head pages.
- It's only possible to tag head pages in the page cache, so only
return head pages, not all their subpages.
- Factor a lot of common code out of the various batch lookup routines
- Add mapping_seek_hole_data()
- Unify find_get_entries() and pagevec_lookup_entries()
- Make find_get_entries only return head pages, like find_get_entry().
These are only loosely connected, but they seem to make sense together
as a series.
v4:
- Add FGP_ENTRY, remove find_get_entry and find_lock_entry
- Rename xas_find_get_entry to find_get_entry
- Add "Optimise get_shadow_from_swap_cache"
- Move "iomap: Use mapping_seek_hole_data" to this patch series
- Rebase against next-20201112
Matthew Wilcox (Oracle) (16):
mm: Make pagecache tagged lookups return only head pages
mm/shmem: Use pagevec_lookup in shmem_unlock_mapping
mm/swap: Optimise get_shadow_from_swap_cache
mm: Add FGP_ENTRY
mm/filemap: Rename find_get_entry to mapping_get_entry
mm/filemap: Add helper for finding pages
mm/filemap: Add mapping_seek_hole_data
iomap: Use mapping_seek_hole_data
mm: Add and use find_lock_entries
mm: Add an 'end' parameter to find_get_entries
mm: Add an 'end' parameter to pagevec_lookup_entries
mm: Remove nr_entries parameter from pagevec_lookup_entries
mm: Pass pvec directly to find_get_entries
mm: Remove pagevec_lookup_entries
mm/truncate,shmem: Handle truncates that split THPs
mm/filemap: Return only head pages from find_get_entries
fs/iomap/seek.c | 125 ++------------
include/linux/pagemap.h | 6 +-
include/linux/pagevec.h | 4 -
mm/filemap.c | 351 +++++++++++++++++++++++++---------------
mm/internal.h | 7 +-
mm/shmem.c | 218 ++++++-------------------
mm/swap.c | 38 +----
mm/swap_state.c | 7 +-
mm/truncate.c | 249 +++++++++++-----------------
9 files changed, 390 insertions(+), 615 deletions(-)
--
2.28.0