From: Andrew Morton <akpm@linux-foundation.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk
Subject: Re: [PATCHSET v3 0/4] Submit ->readpages() IO as read-ahead
Date: Wed, 20 Jun 2018 12:58:01 -0700 [thread overview]
Message-ID: <20180620125801.6e563efc5ed6af2f12c27f07@linux-foundation.org> (raw)
In-Reply-To: <9b1d2225-104d-865f-d821-8670271d6d4a@kernel.dk>
On Wed, 20 Jun 2018 08:07:06 -0600 Jens Axboe <axboe@kernel.dk> wrote:
> On 6/19/18 5:56 PM, Andrew Morton wrote:
> > On Wed, 30 May 2018 08:42:05 -0600 Jens Axboe <axboe@kernel.dk> wrote:
> >
> >> The only caller of ->readpages() is from read-ahead, yet we don't
> >> submit IO flagged with REQ_RAHEAD. This means we don't see it in
> >> blktrace, for instance, which is a shame. We already make assumptions
> >> about ->readpages() just being for read-ahead in the mpage
> >> implementation, using readahead_gfp_mask(mapping) as out GFP mask of
> >> choice.
> >>
> >> This small series fixes up mpage_readpages() to submit with
> >> REQ_RAHEAD, which takes care of file systems using mpage_readpages().
> >> The first patch is a prep patch, that makes do_mpage_readpage() take
> >> an argument structure.
> >
> > Well gee. That sounds like a total fluke and I don't see anything
> > which prevents future code from using readpages for something other
> > than readahead.
>
> Nothing prevents it, but it's always been the case. So we need to
> embrace the fact one way or another.
All it will take is one simple (and desirable) cleanup to f2fs and this
will all break. Take that as an indication of the fragility of this
assumption.
> > And what's happening with the individual ->readpage() calls which
> > read_pages() does? Do they still not get REQ_RAHEAD treatment?
>
> They should, yes.
hm, how does that happen.
> > This is kinda dirty, but we could add a readahead flag to blk_plug, set
> > it in read_pages(), test it down in the block layer somewhere....
> > That's grubby, but at least it wouldn't increase sizeof(task_struct)?
>
> That sounds way too dirty for my liking, I'd really not want to mix that
> in with plugging.
That's the wrong way of thinking about it ;) Rename blk_plug to
blk_state or something and view it as a communication package between
the VFS level and the block layer and it all fits together pretty well.
> Why not just treat it like it is - readpages() is clearly just
> read-ahead. This isn't something new I'm inventing, it's always been so.
> Seems to me that we just need to make it explicit.
There's no reason at all why ->readpages() is exclusively for use by
readahead! I'm rather surprised that fsf2 is the only fs which is
(should be) using ->readpages internally.
Can we change blktrace instead? Rename REQ_RAHEAD to REQ_READPAGES?
Then everything will fit together OK.
next prev parent reply other threads:[~2018-06-20 19:58 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-30 14:42 [PATCHSET v3 0/4] Submit ->readpages() IO as read-ahead Jens Axboe
2018-05-30 14:42 ` [PATCH 1/4] mpage: add argument structure for do_mpage_readpage() Jens Axboe
2018-05-30 14:42 ` [PATCH 2/4] mpage: mpage_readpages() should submit IO as read-ahead Jens Axboe
2018-05-30 14:42 ` [PATCH 3/4] btrfs: readpages() " Jens Axboe
2018-05-30 14:42 ` [PATCH 4/4] ext4: " Jens Axboe
2018-06-19 23:56 ` [PATCHSET v3 0/4] Submit ->readpages() " Andrew Morton
2018-06-20 14:07 ` Jens Axboe
2018-06-20 19:58 ` Andrew Morton [this message]
2018-06-20 20:15 ` Chris Mason
2018-06-20 22:28 ` Jens Axboe
2018-06-20 23:23 ` Andrew Morton
2018-06-20 23:33 ` Jens Axboe
2018-06-20 23:45 ` Andrew Morton
2018-06-21 0:06 ` Jens Axboe
2018-06-21 12:21 ` Christoph Hellwig
2018-06-21 13:52 ` Jens Axboe
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=20180620125801.6e563efc5ed6af2f12c27f07@linux-foundation.org \
--to=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=linux-fsdevel@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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).