Re: stochastic fair queueing in the elevator [Re: [BENCHMARK] 2.4.20-ck3

Nick Piggin (piggin@cyberone.com.au)
Tue, 11 Feb 2003 00:19:34 +1100


Hans Reiser wrote:

> Is the following a fair summary?
>
> There is a certain minimum size required for the IOs to be cost
> effective. This can be determined by single reader benchmarking.
> Only readahead and not anticipatory scheduling addresses that.

Well as a rule you would gain efficiency the larger your request size gets.
There will be a point where you make the trade off. And no, anticipatory
scheduling will not make read request sizes bigger.

>
>
> Anticipatory scheduling does not address the application that spends
> one minute processing every read that it makes. Readahead does.

In the presence of other IO, anticipatory scheduling would help here. In the
absense of other IO, readahead would not help (past the efficiency problem
above). However anticipatory scheduling _would_ mean you don't need as much
RAM tied up doing nothing (or being discarded) for one minute before it
is needed.

>
>
> Anticipatory scheduling does address the application that reads
> multiple files that are near each other (because they are in the same
> directory), and current readahead implementations (excepting reiser4
> in progress vaporware) do not.

File readahead would not help. Anticipatory scheduling can.

>
>
> Anticipatory scheduling can do a better job of avoiding unnecessary
> reads for workloads with small time gaps between reads than readahead
> (it is potentially more accurate for some workloads).

It avoids seeks mainly, but the lesser need for readahead should mean
the readahead algorithm doesn't need to be very smart.

>
>
> Is this a fair summary?

Well I don't see it so much as readahead vs anticipatory scheduling.
I know readahead is important.

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