Re: [RFC][PATCH] Disabling read-ahead makes I/O of large readssmall

From: Wu Fengguang
Date: Wed Dec 30 2009 - 00:18:00 EST


Andi,

On Wed, Dec 30, 2009 at 02:04:43AM +0800, Andi Kleen wrote:
> Quentin Barnes <qbarnes+nfs@xxxxxxxxxxxxx> writes:
>
> cc fengguang who is Mr.Readahead. The full description+patch
> is in the archives.

Thank you for the CC.

> > In porting some application code to Linux, its performance over
> > NFSv3 on Linux is terrible. I'm posting this note to LKML since
> > the problem was actually tracked back to the VFS layer.
> [...]
> > I have no idea if my patch is the appropriate fix. I'm well out of
> > my area in this part of the kernel. It solves this one problem, but
> > I have no idea how many boundary cases it doesn't cover or even if
> > it is the right way to go about addressing this issue.
> >
> > Is this behavior of shorting I/O of read(2) considered a bug? And
> > is this approach for a fix approriate?
>
> It sounds like a (performance) bug to me.

Yes it's a bug. It hit my mind in some early days.. I should be blamed
to lose track of it.

> >From a quick look your fix looks reasonable to me.

Yes, it's reasonable to directly call force_page_cache_readahead() in
this case.

However the ra_pages=0 trick in fadvise also asks for fix. We'd better
let it set a readahead flag, because ra_pages=0 is used in many other
places to really disable the (heuristic|force) readahead. See the
second patch's description for more details.

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/