[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200610010800.GA4070152@moria.home.lan>
Date: Tue, 9 Jun 2020 21:08:00 -0400
From: Kent Overstreet <kent.overstreet@...il.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
viro@...iv.linux.org.uk, linux-mm@...ck.org,
linux-fsdevel@...r.kernel.org
Subject: Re: [PATCH 2/2] fs: generic_file_buffered_read() now uses
find_get_pages_contig
On Tue, Jun 09, 2020 at 05:47:53PM -0700, Matthew Wilcox wrote:
> On Tue, Jun 09, 2020 at 08:10:36PM -0400, Kent Overstreet wrote:
> > @@ -2275,83 +2287,93 @@ static ssize_t generic_file_buffered_read(struct kiocb *iocb,
> > struct iov_iter *iter, ssize_t written)
> > {
> > struct file *filp = iocb->ki_filp;
> > + struct file_ra_state *ra = &filp->f_ra;
> > struct address_space *mapping = filp->f_mapping;
> > struct inode *inode = mapping->host;
> > - struct file_ra_state *ra = &filp->f_ra;
> > size_t orig_count = iov_iter_count(iter);
> > - pgoff_t last_index;
> > - int error = 0;
> > + struct page *pages[64];
>
> That's 512 bytes which seems like a lot of stack space. Would 16 be
> enough to see a significant fraction of the benefit?
Ah right, we do call into fs code for readahead from here. I'll switch it to
kmalloc the page array if it's more than 16.
Powered by blists - more mailing lists