Re: [PATCH v11 05/25] mm: Add new readahead_control API

From: Matthew Wilcox
Date: Wed Apr 15 2020 - 07:24:01 EST


On Tue, Apr 14, 2020 at 09:56:16PM -0700, Andrew Morton wrote:
> On Tue, 14 Apr 2020 19:18:08 -0700 Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> > Hmm. They don't seem that big to me.
>
> They're really big!

v5.7-rc1: 11636 636 224 12496 30d0 fs/iomap/buffered-io.o
readahead_v11: 11528 636 224 12388 3064 fs/iomap/buffered-io.o

> > __readahead_batch is much bigger, but it's only used by btrfs and fuse,
> > and it seemed unfair to make everybody pay the cost for a function only
> > used by two filesystems.
>
> Do we expect more filesystems to use these in the future?

I'm honestly not sure. I think it'd be nice to be able to fill a bvec
from the page cache directly, but I haven't tried to write that function
yet. If so, then it'd be appropriate to move that functionality into
the core.

> > > The code adds quite a few (inlined!) VM_BUG_ONs. Can we plan to remove
> > > them at some stage? Such as, before Linus shouts at us :)
> >
> > I'd be happy to remove them. Various reviewers said things like "are you
> > sure this can't happen?"
>
> Yeah, these things tend to live for ever. Please add a todo to remove
> them after the code has matured?

Sure! I'm touching this code some more in the large pages patch set, so
I can get rid of it there.