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

Andrew Morton (akpm@zip.com.au)
Tue, 12 Mar 2002 12:29:56 -0800


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.

-
-
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/