Re: [PATCHv3 15/41] filemap: handle huge pages in do_generic_file_read()

From: Christoph Hellwig
Date: Wed Nov 02 2016 - 10:38:00 EST


On Wed, Nov 02, 2016 at 11:32:04AM +0300, Kirill A. Shutemov wrote:
> Yes, buffer_head list doesn't scale. That's the main reason (along with 4)
> why syscall-based IO sucks. We spend a lot of time looking for desired
> block.
>
> We need to switch to some other data structure for storing buffer_heads.
> Is there a reason why we have list there in first place?
> Why not just array?
>
> I will look into it, but this sounds like a separate infrastructure change
> project.

We're working on it with the iomap code. And yes, it's really something
that needs to be done before we can consider the THP patches. Same for
the biovec thing were we really need the > PAGE_SIZE bio_vecs first.