[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200928201334.GC30994@casper.infradead.org>
Date: Mon, 28 Sep 2020 21:13:34 +0100
From: Matthew Wilcox <willy@...radead.org>
To: linux-mm@...ck.org
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Hugh Dickins <hughd@...gle.com>,
William Kucharski <william.kucharski@...cle.com>,
Johannes Weiner <hannes@...xchg.org>, Jan Kara <jack@...e.cz>,
Yang Shi <yang.shi@...ux.alibaba.com>,
Dave Chinner <dchinner@...hat.com>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 00/12] Overhaul multi-page lookups for THP
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@infradead.org/
>
> 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
>
Powered by blists - more mailing lists