Re: [PATCH v2 00/12] Overhaul multi-page lookups for THP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks good to me; I really like the addition of the "end" parameter to
find_get_entries() and the conversion of pagevec_lookup_entries().

For the series:

Reviewed-by: William Kucharski <william.kucharski@xxxxxxxxxx>

> On Sep 14, 2020, at 7:00 AM, Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> wrote:
> 
> The critical patch to review here is patch 11, "Handle truncates that
> split THPs".  This code is shared with shmem, and while xfstests passes
> (both with the tmpfs filesystem and with THPs enabled for XFS), it is
> terribly subtle.
> 
> I posted a similar patch series a few weeks ago [1], but this goes a few
> steps further than that one did.  In addition to the unification of
> find_get_entries() and pagevec_lookup_entries(), this patch series
> includes:
> 
> - Only return the head pages from tagged lookups
> - Factor a lot of common code out of the various batch lookup routines
> - Add mapping_seek_hole_data()
> - Only return head pages from find_get_entries
> 
> I also have a patch to iomap to use mapping_seek_hole_data(), but I'm
> not including that as part of this batch of patches -- I'll send it
> through the iomap tree once mapping_seek_hole_data() lands upstream.
> 
> [1] https://lore.kernel.org/linux-mm/20200819184850.24779-1-willy@xxxxxxxxxxxxx/
> 
> Matthew Wilcox (Oracle) (12):
>  mm: Make pagecache tagged lookups return only head pages
>  mm/shmem: Use pagevec_lookup in shmem_unlock_mapping
>  mm/filemap: Add helper for finding pages
>  mm/filemap: Add 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
> 
> include/linux/pagemap.h |   5 +-
> include/linux/pagevec.h |   4 -
> mm/filemap.c            | 267 +++++++++++++++++++++++++++-------------
> mm/internal.h           |   5 +
> mm/shmem.c              | 214 +++++++-------------------------
> mm/swap.c               |  38 +-----
> mm/truncate.c           | 249 ++++++++++++++-----------------------
> 7 files changed, 329 insertions(+), 453 deletions(-)
> 
> -- 
> 2.28.0
> 






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux