Re: Do not overload dispatch queue (Was: Re: IO scheduler based IOcontroller V10)

From: Jens Axboe
Date: Sat Oct 03 2009 - 13:36:58 EST


On Sat, Oct 03 2009, Mike Galbraith wrote:
> On Sat, 2009-10-03 at 17:14 +0200, Jens Axboe wrote:
> > On Sat, Oct 03 2009, Mike Galbraith wrote:
> > > On Sat, 2009-10-03 at 16:28 +0200, Jens Axboe wrote:
> > > > On Sat, Oct 03 2009, Mike Galbraith wrote:
> > > > > On Sat, 2009-10-03 at 09:56 -0400, Vivek Goyal wrote:
> > > > >
> > > > > > I have kept the overload delay period as "cfq_slice_sync" same as Mike had
> > > > > > done. We shall have to experiment what is a good waiting perioed. Is 100ms
> > > > > > too long if we are waiting for a request from same process which recently
> > > > > > finished IO and we did not enable idle on it.
> > > > > >
> > > > > > I guess we can tweak the delay period as we move along.
> > > > >
> > > > > I kept the delay period very short to minimize possible damage. Without
> > > > > the idle thing, it wasn't enough, but with, worked a treat, as does your
> > > > > patch.
> > > >
> > > > Can you test the current line up of patches in for-linus? It has the
> > > > ramp up I talked about included as well.
> > >
> > > Well, it hasn't hit git.kernel.org yet, it's at...
> > >
> > > * block-for-linus 1d22351 cfq-iosched: add a knob for desktop interactiveness
> >
> > It's the top three patches here, kernel.org sync sometimes takes a
> > while...
> >
> > http://git.kernel.dk/?p=linux-2.6-block.git;a=shortlog;h=refs/heads/for-linus
>
> Ok, already had the first two in, added the last.
>
> Entered uncharted territory for konsole -e exit, but lost a bit of
> throughput for home-brew concurrent git test.
>
> perf stat 1.70 1.94 1.32 1.89 1.87 1.7 fairness=1 overload_delay=1
> 1.55 1.79 1.38 1.53 1.57 1.5 desktop=1 +last_end_sync
> 1.09 0.87 1.11 0.96 1.11 1.0 block-for-linus

So that's pure goodness, at least.

> perf stat testo.sh Avg
> 108.12 106.33 106.34 97.00 106.52 104.8 1.000 fairness=0 overload_delay=0
> 93.98 102.44 94.47 97.70 98.90 97.4 .929 fairness=0 overload_delay=1
> 90.87 95.40 95.79 93.09 94.25 93.8 .895 fairness=1 overload_delay=0
> 89.93 90.57 89.13 93.43 93.72 91.3 .871 fairness=1 overload_delay=1
> 89.81 88.82 91.56 96.57 89.38 91.2 .870 desktop=1 +last_end_sync
> 92.61 94.60 92.35 93.17 94.05 93.3 .890 block-for-linus

Doesn't look too bad, all things considered. Apart from "stock" cfq,
it's consistent. And being consistent is a Good Thing. Performance wise,
it's losing out to "stock" but looks pretty competetive otherwise.

So far that looks like a winner. The dictator wanted good latency, he's
getting good latency. I'll continue working on this on monday, while I'm
waiting for delivery of the Trabant.

--
Jens Axboe

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