linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@infradead.org>
To: Jan Kara <jack@suse.cz>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Hugh Dickins <hughd@google.com>,
	William Kucharski <william.kucharski@oracle.com>,
	Johannes Weiner <hannes@cmpxchg.org>,
	Yang Shi <yang.shi@linux.alibaba.com>,
	Dave Chinner <dchinner@redhat.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 12/12] mm/filemap: Return only head pages from find_get_entries
Date: Wed, 30 Sep 2020 18:23:21 +0100	[thread overview]
Message-ID: <20200930172321.GS20115@casper.infradead.org> (raw)
In-Reply-To: <20200930170807.GA15977@quack2.suse.cz>

On Wed, Sep 30, 2020 at 07:08:07PM +0200, Jan Kara wrote:
> On Wed 30-09-20 13:36:37, Matthew Wilcox wrote:
> > On Wed, Sep 30, 2020 at 02:15:12PM +0200, Jan Kara wrote:
> > > On Mon 14-09-20 14:00:42, Matthew Wilcox (Oracle) wrote:
> > > > All callers now expect head (and base) pages, and can handle multiple
> > > > head pages in a single batch, so make find_get_entries() behave that way.
> > > > Also take the opportunity to make it use the pagevec infrastructure
> > > > instead of open-coding how pvecs behave.  This has the side-effect of
> > > > being able to append to a pagevec with existing contents, although we
> > > > don't make use of that functionality anywhere yet.
> > > > 
> > > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
> > > 
> > > Looks good to me. You can add:
> > > 
> > > Reviewed-by: Jan Kara <jack@suse.cz>
> > > 
> > > I'm just curious: What has happened to pagevec_lookup_entries() call in
> > > invalidate_inode_pages2_range()? Your series appears to be based on a tree
> > > where the call already does not exist...
> > 
> > That went away in patch 10 of this series.
> 
> Ah, I see. Thanks. Then I'm somewhat wondering is really
> invalidate_inode_pages2_range() safe for THP head pages? At least the:
> 
> 	unmap_mapping_pages(mapping, index, 1, false);
> 
> doesn't look adequate for THP head pages... do_launder_page() is also
> doubtful but probably currently OK because THPs cannot be dirty at this
> moment. But how about THPs that are partialy inside start-end range? So far
> the function didn't care because it was operating on page basis so it
> didn't care but now it is probably relevant... At least it would warrant a
> comment in some changelog if you are convinced everything is safe.

You're right, it's inadequate.  It's safe to apply this series to the
mainline as-is because the only filesystem which creates THP today
is tmpfs and it won't call invalidate_inode_pages2_range() (afaics).
I have a followup patch which isn't part of this series which fixes it:

http://git.infradead.org/users/willy/pagecache.git/commitdiff/364283163847d1c106463223b858308c730592a1

There are other similar fixes which are also needed before we get to
allowing THPs to be added to the page cache for normal filesystems,
but I think I'm out of time for this merge window.  My plan is to submit
everything that's in this tree for the next merge window; the page cache
pieces through Andrew and the filesystem/iomap/XFS pieces through Darrick.
With good luck, all of this will be in place for 5.11.  I have about 50
patches in flight for 5.10 and it'll be about another 50 for 5.11.

Reviewer bandwidth is probably the biggest issue right now, and I
really appreciate your thoughtful comments.


  reply	other threads:[~2020-09-30 17:23 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-14 13:00 [PATCH v2 00/12] Overhaul multi-page lookups for THP Matthew Wilcox (Oracle)
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 [this message]
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=20200930172321.GS20115@casper.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).