IO scheduler based IO controller V10
efault at gmx.de
Mon Sep 28 10:51:14 PDT 2009
On Mon, 2009-09-28 at 17:35 +0200, Corrado Zoccolo wrote:
> 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
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
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.
More information about the Containers