Re: [RFC]cfq-iosched: fix a kbuild regression

From: Jens Axboe
Date: Fri Mar 19 2010 - 03:57:26 EST


On Thu, Mar 18 2010, Shaohua Li wrote:
> On Thu, Mar 18, 2010 at 02:24:10AM +0800, Corrado Zoccolo wrote:
> > On Wed, Mar 17, 2010 at 2:30 PM, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote:
> > > On Tue, Mar 16 2010, Shaohua Li wrote:
> > >> Alex Shi reported a kbuild regression which is about 10% performance lost.
> > >> He bisected to this commit: 3dde36ddea3e07dd025c4c1ba47edec91606fec0.
> > >> The reason is cfqq_close() can't find close cooperator. If we store the seek
> > >> distance to the value before the commit like below, the regression fully goes
> > >> away. If this is too invasive, just changing the cfq_rq_close() for the
> > >> !for_preempt is ok too.
> > >
> > > Corrado, any objections to widening the seek threshold?
> >
> > The previous seek threshold value was meant to be compared with the
> > average seek distance, so it was large to account for variations.
> > Since we handle the variations differently, we should have a smaller
> > value now (the 100 * 8 was the result of a benchmark run on several
> > disks).
> Our test doesn't find any issue with the seek threshold so far, so it proberly
> is ok.
>
> > I agreee, though, that for merging queues, it is now too small, so we
> > should have two thresholds, the current one used to determine if a
> > request causes a seek, and an other to be used inside cfq_close (with
> > the older value, regardless of for_preempt).
> That makes sense. Updated patch.
>
>
> Alex Shi reported a kbuild regression which is about 10% performance lost.
> He bisected to this commit: 3dde36ddea3e07dd025c4c1ba47edec91606fec0.
> The reason is cfqq_close() can't find close cooperator. Restoring
> cfq_rq_close()'s threshold to original value makes the regression go away.
>
> Since for_preempt parameter isn't used anymore, this patch deletes it.

Thanks, I have applied it.

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