Re: + fs-break-generic_file_buffered_read-up-into-multiple-functions.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 28, 2020 at 03:22:35PM -0700, Andrew Morton wrote:
> On Tue, 27 Oct 2020 13:35:51 +0000 Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> 
> > On Sun, Oct 25, 2020 at 03:08:17PM -0700, akpm@xxxxxxxxxxxxxxxxxxxx wrote:
> > > The patch titled
> > >      Subject: mm/filemap/c: freak generic_file_buffered_read up into multiple functions
> > > has been added to the -mm tree.  Its filename is
> > >      fs-break-generic_file_buffered_read-up-into-multiple-functions.patch
> > 
> > Can we back this out?  It really makes the THP patchset unhappy.  I think
> > we can do something like this afterwards, but doing it this way round is
> > ridiculously hard.
> 
> Two concerns:
> 
> : On my test box, 4k buffered random reads go from ~150k to ~250k iops,
> : and the improvements to big sequential reads are even bigger.
> 
> That's a big improvement!  We want that improvement.  Throwing it away
> on behalf of an as-yet-unmerged feature patchset hurts.  Can we expect that
> this improvement will be available post-that-patchset?  And when?

I agree we want that improvement!  I don't understand how this improves
4k buffered reads though.  It should improve 8k to 60k io sizes, but
it should be the same for 4k.  Honestly, it should be better for 4097
bytes on up (but nobody tests 4097 byte block sizes).

I've been working on redoing my patchset on top of current -next for the
past two days.  It's mostly there, but I've hit a problem when testing
with the readahead error injector.  The good news is that the performance
improvement should be cumulative -- Kent's improvement mean that we
get pages out of the page cache in batches, while mine will do fewer
atomic ops (on page->refcount).

Funnily, this has led to finding a bug in copy_page_to_iter_iovec()
and, honestly, a lot of the other iov_iter code, but I don't think
that's going to hold us up.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux