Re: [linux-audio-dev] Re: [announce] [patch] Voluntary Kernel Preemption Patch

Lee Revell
2004-07-24T04:07:33Z

On Tue, 2004-07-20 at 08:19, Jens Axboe wrote:
> On Tue, Jul 20 2004, Ingo Molnar wrote:
> > > How much I/O do you allow to be in flight at once? It seems like by
> > > decreasing the maximum size of I/O that you handle in one interrupt
> > > you could improve this quite a bit. Disk throughput is good enough,
> > > anyone in the real world who would feel a 10% hit would just throw
> > > hardware at the problem.
> >
> > i'm not sure whether this particular value (max # of sg-entries per IO
> > op) is runtime tunable. Jens? Might make sense to enable elvtune-alike
> > tunability of this value.
>
> elvtune is long dead :-)
>
> it's not tweakable right now, but if you wish to experiment you just
> need to add a line to ide-disk.c:idedisk_setup() - pseudo patch:
>
> + blk_queue_max_sectors(drive->queue, 32);
> +
> printk("%s: max request size: %dKiB\n", drive->name, drive->queue->max_sectors / 2);
>
> /* Extract geometry if we did not already have one for the drive */
>
> above will limit max request to 16kb, experiment as you see fit.

I tested this and the improvement is drastic. With the default value of
1024KB, running 'bonnie' produced XRUNS of 10+ ms. When this is changed
to 16KB, running bonnie only produces latency spikes of up to about 90
usecs, I did not see a single one hit 100usecs.

According to hdparm, the throughput is still quite good (42MB/sec on a
sub-$100 IDE drive).

This should definitely be made tunable, I would imagine this would be
easy to put in /proc. The default could stay at 1024KB, and users with
low latency requirements could lower it.

I am currently testing the effect on throughput and will have some
better numbers soon.

Lee