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.

Reply via email to