From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-mm@kvack.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>,
William Kucharski <william.kucharski@oracle.com>,
Johannes Weiner <hannes@cmpxchg.org>, Jan Kara <jack@suse.cz>,
Yang Shi <yang.shi@linux.alibaba.com>,
Dave Chinner <dchinner@redhat.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH v2 00/12] Overhaul multi-page lookups for THP
Date: Mon, 14 Sep 2020 14:00:30 +0100 [thread overview]
Message-ID: <20200914130042.11442-1-willy@infradead.org> (raw)
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
next reply other threads:[~2020-09-14 13:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-14 13:00 Matthew Wilcox (Oracle) [this message]
2020-09-14 13:00 ` [PATCH v2 01/12] mm: Make pagecache tagged lookups return only head pages Matthew Wilcox (Oracle)
2020-09-29 9:13 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 02/12] mm/shmem: Use pagevec_lookup in shmem_unlock_mapping Matthew Wilcox (Oracle)
2020-09-29 8:28 ` Jan Kara
2020-09-29 18:36 ` Matthew Wilcox
2020-09-14 13:00 ` [PATCH v2 03/12] mm/filemap: Add helper for finding pages Matthew Wilcox (Oracle)
2020-09-29 8:27 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 04/12] mm/filemap: Add mapping_seek_hole_data Matthew Wilcox (Oracle)
2020-09-29 8:46 ` Jan Kara
2020-09-29 12:42 ` Matthew Wilcox
2020-09-29 13:39 ` Matthew Wilcox
2020-09-14 13:00 ` [PATCH v2 05/12] mm: Add and use find_lock_entries Matthew Wilcox (Oracle)
2020-09-29 8:58 ` Jan Kara
2020-09-29 12:48 ` Matthew Wilcox
2020-09-30 10:40 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 06/12] mm: Add an 'end' parameter to find_get_entries Matthew Wilcox (Oracle)
2020-09-14 13:00 ` [PATCH v2 07/12] mm: Add an 'end' parameter to pagevec_lookup_entries Matthew Wilcox (Oracle)
2020-09-29 9:02 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 08/12] mm: Remove nr_entries parameter from pagevec_lookup_entries Matthew Wilcox (Oracle)
2020-09-29 9:03 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 09/12] mm: Pass pvec directly to find_get_entries Matthew Wilcox (Oracle)
2020-09-29 9:07 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 10/12] mm: Remove pagevec_lookup_entries Matthew Wilcox (Oracle)
2020-09-29 9:08 ` Jan Kara
2020-09-14 13:00 ` [PATCH v2 11/12] mm/truncate,shmem: Handle truncates that split THPs Matthew Wilcox (Oracle)
2020-09-30 11:59 ` Jan Kara
2020-09-30 14:51 ` Matthew Wilcox
2020-09-14 13:00 ` [PATCH v2 12/12] mm/filemap: Return only head pages from find_get_entries Matthew Wilcox (Oracle)
2020-09-30 12:15 ` Jan Kara
2020-09-30 12:36 ` Matthew Wilcox
2020-09-30 17:08 ` Jan Kara
2020-09-30 17:23 ` Matthew Wilcox
2020-10-01 7:17 ` Jan Kara
2020-10-25 23:19 ` Matthew Wilcox
2020-10-26 9:11 ` Jan Kara
2020-09-28 20:13 ` [PATCH v2 00/12] Overhaul multi-page lookups for THP Matthew Wilcox
2020-09-29 8:50 ` William Kucharski
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=20200914130042.11442-1-willy@infradead.org \
--to=willy@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=dchinner@redhat.com \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=william.kucharski@oracle.com \
--cc=yang.shi@linux.alibaba.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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).