Re: [PATCH][CFT] new IO scheduler for 2.4.20

Andrea Arcangeli
2003-04-21T11:22:33Z

On Thu, Apr 17, 2003 at 10:28:19AM -0700, Neil Schemenauer wrote:
> Hi all,
>
> Recently I was bitten badly by bad IO scheduler behavior on an important
> Linux server. An easy way to trigger this problem is to start a
> streaming write process:
>
> while :
> do
> dd if=/dev/zero of=foo bs=1M count=512 conv=notrunc
> done
>
> and then try doing a bunch of small reads:
>
> time (find kernel-tree -type f | xargs cat > /dev/null)

can you try the above on 2.4.21pre5aa2? I also spent effort to fix it
some month ago.

The interesting patch is this:

http://www.us.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.4/2.4.21pre5aa2/9981_elevator-lowlatency-4

the reason 2.4 mainline stalls so much is that the size of the queue is
overkill for no good reason, so no matter the elvtune numbers, you're
going to wait several dozen mbytes to be read or written before you can
read or write the next 1k from another task.

the above patch is fairly old and it basically fixes the showstopper
problem for me, contest looks fine now and throughput still is the best.

I don't like special "read hacks" for generic kernels that are critical
with O_SYNC and journaling responsiveness too.

So I recommend to apply the above 2.4 patch if you suffer any I/O
latency issue.

Andrea