[dm-devel] Re: Do not overload dispatch queue (Was: Re: IO scheduler based IO controller V10)

Jens Axboe jens.axboe at oracle.com
Sat Oct 3 17:35:32 UTC 2009


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




More information about the dm-devel mailing list