From: Matthew Wilcox <willy@infradead.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: linux-fsdevel@vger.kernel.org, linux-xfs@vger.kernel.org,
Wang Yugui <wangyugui@e16-tech.com>,
Dave Chinner <david@fromorbit.com>,
Christoph Hellwig <hch@infradead.org>,
"Darrick J . Wong" <djwong@kernel.org>,
Kent Overstreet <kent.overstreet@linux.dev>,
Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH v4 7/9] filemap: Allow __filemap_get_folio to allocate large folios
Date: Tue, 11 Jul 2023 01:07:37 +0100 [thread overview]
Message-ID: <ZKydSZM70Fd2LW/q@casper.infradead.org> (raw)
In-Reply-To: <ZKybP22DRs1w4G3a@bombadil.infradead.org>
On Mon, Jul 10, 2023 at 04:58:55PM -0700, Luis Chamberlain wrote:
> > @@ -1914,26 +1916,44 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index,
> > gfp &= ~GFP_KERNEL;
> > gfp |= GFP_NOWAIT | __GFP_NOWARN;
> > }
> > -
> > - folio = filemap_alloc_folio(gfp, 0);
> > - if (!folio)
> > - return ERR_PTR(-ENOMEM);
> > -
> > if (WARN_ON_ONCE(!(fgp_flags & (FGP_LOCK | FGP_FOR_MMAP))))
> > fgp_flags |= FGP_LOCK;
> >
> > - /* Init accessed so avoid atomic mark_page_accessed later */
> > - if (fgp_flags & FGP_ACCESSED)
> > - __folio_set_referenced(folio);
> > + if (!mapping_large_folio_support(mapping))
> > + order = 0;
> > + if (order > MAX_PAGECACHE_ORDER)
> > + order = MAX_PAGECACHE_ORDER;
>
> Curious how this ended up being the heuristic used to shoot for the
> MAX_PAGECACHE_ORDER sky first, and then go down 1/2 each time. I don't
> see it explained on the commit log but I'm sure there's has to be
> some reasonable rationale. From the cover letter, I could guess that
> it means the gains of always using the largest folio possible means
> an implied latency savings through other means, so the small latencies
> spent looking seem to no where compare to the saving in using. But
> I rather understand a bit more for the rationale.
You've completely misunderstood this patch. The caller hints at the
folio size it wants, and this code you're highlighting limits it to be
less than MAX_PAGECACHE_ORDER.
next prev parent reply other threads:[~2023-07-11 0:07 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-10 13:02 [PATCH v4 0/9] Create large folios in iomap buffered write path Matthew Wilcox (Oracle)
2023-07-10 13:02 ` [PATCH v4 1/9] iov_iter: Handle compound highmem pages in copy_page_from_iter_atomic() Matthew Wilcox (Oracle)
2023-07-10 23:43 ` Luis Chamberlain
2023-07-11 0:03 ` Matthew Wilcox
2023-07-11 6:30 ` Christoph Hellwig
2023-07-11 20:05 ` Kent Overstreet
2023-07-13 4:42 ` Darrick J. Wong
2023-07-13 13:46 ` Matthew Wilcox
2023-07-10 13:02 ` [PATCH v4 2/9] iov_iter: Add copy_folio_from_iter_atomic() Matthew Wilcox (Oracle)
2023-07-11 6:31 ` Christoph Hellwig
2023-07-11 20:46 ` Matthew Wilcox
2023-07-24 15:56 ` Darrick J. Wong
2023-07-10 13:02 ` [PATCH v4 3/9] iomap: Remove large folio handling in iomap_invalidate_folio() Matthew Wilcox (Oracle)
2023-07-10 13:02 ` [PATCH v4 4/9] doc: Correct the description of ->release_folio Matthew Wilcox (Oracle)
2023-07-13 4:43 ` Darrick J. Wong
2023-07-10 13:02 ` [PATCH v4 5/9] iomap: Remove unnecessary test from iomap_release_folio() Matthew Wilcox (Oracle)
2023-07-13 4:45 ` Darrick J. Wong
2023-07-13 5:25 ` Ritesh Harjani
2023-07-13 5:33 ` Darrick J. Wong
2023-07-13 5:51 ` Ritesh Harjani
2023-07-10 13:02 ` [PATCH v4 6/9] filemap: Add fgf_t typedef Matthew Wilcox (Oracle)
2023-07-13 4:47 ` Darrick J. Wong
2023-07-13 5:08 ` Kent Overstreet
2023-07-10 13:02 ` [PATCH v4 7/9] filemap: Allow __filemap_get_folio to allocate large folios Matthew Wilcox (Oracle)
2023-07-10 23:58 ` Luis Chamberlain
2023-07-11 0:07 ` Matthew Wilcox [this message]
2023-07-11 0:21 ` Luis Chamberlain
2023-07-11 0:42 ` Matthew Wilcox
2023-07-11 0:47 ` Dave Chinner
2023-07-11 0:13 ` Kent Overstreet
2023-07-13 4:50 ` Darrick J. Wong
2023-07-13 5:04 ` Kent Overstreet
2023-07-13 14:42 ` Matthew Wilcox
2023-07-13 15:19 ` Kent Overstreet
2023-07-10 13:02 ` [PATCH v4 8/9] iomap: Create large folios in the buffered write path Matthew Wilcox (Oracle)
2023-07-13 4:56 ` Darrick J. Wong
2023-07-10 13:02 ` [PATCH v4 9/9] iomap: Copy larger chunks from userspace Matthew Wilcox (Oracle)
2023-07-13 4:58 ` Darrick J. Wong
2023-07-10 22:55 ` [PATCH v4 0/9] Create large folios in iomap buffered write path Luis Chamberlain
2023-07-10 23:53 ` Matthew Wilcox
2023-07-11 0:01 ` Dave Chinner
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=ZKydSZM70Fd2LW/q@casper.infradead.org \
--to=willy@infradead.org \
--cc=david@fromorbit.com \
--cc=djwong@kernel.org \
--cc=hch@infradead.org \
--cc=hch@lst.de \
--cc=kent.overstreet@linux.dev \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=wangyugui@e16-tech.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).