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

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

 



ping

On Mon, Sep 14, 2020 at 02:00:30PM +0100, Matthew Wilcox (Oracle) 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