Re: Random file I/O regressions in 2.6

Ram Pai
2004-05-03T21:52:15Z

On Mon, 2004-05-03 at 14:37, Peter Zaitsev wrote:
> On Mon, 2004-05-03 at 13:57, Andrew Morton wrote:
> > Ram Pai <linuxram@us.ibm.com> wrote:
> > >
> > > > The place which needs attention is handle_ra_miss(). But first I'd like to
> > > > reacquaint myself with the intent behind the lazy-readahead patch. Was
> > > > never happy with the complexity and special-cases which that introduced.
> > >
> > > lazy-readahead has no role to play here.
> >
>
> Andrew,
>
> Could you please clarify how this things become to be dependent on
> read-ahead at all.
>
> At my understanding read-ahead it to catch sequential (or other) access
> pattern and do some advance reading, so instead of 16K request we do
> 128K request, or something similar.
>
> But how could read-ahead disabled end up in 16K request converted to
> several sequential synchronous 4K requests ?

When the readahead window gets closed,the code goes into slow-read mode.
In this mode, all requests are broken to page-size. Hence a 16k request
gets broken into 4 4K-requests. This continues to the point where
enough number of sequential i/os are requested(i.e around ra->ra_pages
number of pages), at which point the readahead window gets
re-activated.

Looking at it the other way, without readahead code, all requests
satisfied through 4k i/os. Readahead helps in generating larger size
i/os.

RP