Re: IO scheduler based IO controller V10

From: Mike Galbraith
Date: Mon Sep 28 2009 - 13:51:31 EST


On Mon, 2009-09-28 at 17:35 +0200, Corrado Zoccolo wrote:

> Great.
> Can you try the attached patch (on top of 2.6.31)?
> It implements the alternative approach we discussed privately in july,
> and it addresses the possible latency increase that could happen with
> your patch.
>
> To summarize for everyone, we separate sync sequential queues, sync
> seeky queues and async queues in three separate RR strucutres, and
> alternate servicing requests between them.
>
> When servicing seeky queues (the ones that are usually penalized by
> cfq, for which no fairness is usually provided), we do not idle
> between them, but we do idle for the last queue (the idle can be
> exited when any seeky queue has requests). This allows us to allocate
> disk time globally for all seeky processes, and to reduce seeky
> processes latencies.
>
> I tested with 'konsole -e exit', while doing a sequential write with
> dd, and the start up time reduced from 37s to 7s, on an old laptop
> disk.

I was fiddling around trying to get IDLE class to behave at least, and
getting a bit frustrated. Class/priority didn't seem to make much if
any difference for konsole -e exit timings, and now I know why. I saw
the reference to Vivek's patch, and gave it a shot. Makes a large
difference.
Avg
perf stat 12.82 7.19 8.49 5.76 9.32 8.7 anticipatory
16.24 175.82 154.38 228.97 147.16 144.5 noop
43.23 57.39 96.13 148.25 180.09 105.0 deadline
9.15 14.51 9.39 15.06 9.90 11.6 cfq fairness=0 dd=nice 0
12.22 9.85 12.55 9.88 15.06 11.9 cfq fairness=0 dd=nice 19
9.77 13.19 11.78 17.40 9.51 11.9 cfq fairness=0 dd=SCHED_IDLE
4.59 2.74 4.70 3.45 4.69 4.0 cfq fairness=1 dd=nice 0
3.79 4.66 2.66 5.15 3.03 3.8 cfq fairness=1 dd=nice 19
2.79 4.73 2.79 4.02 2.50 3.3 cfq fairness=1 dd=SCHED_IDLE

I'll give your patch a spin as well.

-Mike

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