Re: [CFT] delayed allocation and multipage I/O patches for 2.5.6.

Daniel Phillips (phillips@bonn-fries.net)
Tue, 12 Mar 2002 21:40:02 +0100


On March 12, 2002 09:29 pm, Andrew Morton wrote:
> Daniel Phillips wrote:
> >
> > On March 12, 2002 07:00 am, Andrew Morton wrote:
> > > Identifies readahead thrashing.
> > >
> > > Currently, it just performs a shrink on the readahead window when thrashing
> > > occurs. This greatly reduces the amount of pointless I/O which we perform,
> > > and will reduce the CPU load. The idea is that the readahead window
> > > dynamically adjusts to a sustainable size. It improves things, but not
> > > hugely, experimentally.
> >
> > The question is, does it wipe out a nasty corner case? If so then the improvement
> > for the averge case is just a nice fringe benefit. A carefully constructed test
> > that triggers the corner case would be most interesting.
>
> There are many test scenarios. The one I use is:
>
> - 64 megs of memory.
>
> - Process A loops across N 10-megabyte files, reading 4k from each one
> and terminates when all N files are fully read.
>
> - Process B loops, repeatedly reading a one gig file off another disk.
>
> The total wallclock time for process A exhibits *massive* step jumps
> as you vary N. In stock 2.5.6 the runtime jumps from 40 seconds to
> ten minutes when N is increased from 40 to 60.
>
> With my changes, the rate of increase of runtime-versus-N is lower,
> and happens at later N. But it's still very sudden and very bad.
>
> Yes, it's a known-and-nasty corner case. Worth fixing if the
> fix is clean. But IMO the problem is not common enough to
> justify significantly compromising the common case.

It's a given the common case should be optimal. I'm sure there's an algorithm that
fixes up your test case, which by the way isn't that uncommon - it's Rik's '100 ftp
processes' case. I'll buy the suggestion it isn't common enough to drop everything
right now and go fix it.

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