Re: [GIT PULL] block bits for 2.6.30-rc3

From: Jens Axboe
Date: Wed Apr 22 2009 - 08:47:19 EST


On Wed, Apr 22 2009, Jens Axboe wrote:
> On Wed, Apr 22 2009, Damien Wyart wrote:
> > Hello,
> >
> > > A collection of fixes for 2.6.30-rc3. It includes fixes for
> > > regressions and bug fixes in general, along with two buglets in CFQ.
> > > Please pull.
> >
> > What about this bug in CFQ: http://lkml.org/lkml/2009/4/20/68 ?
> >
> > Do you plan to have it fixed for 2.6.30 or will it wait until 2.6.31?
>
> Not sure. In theory we could just do the one-liner and make
> ->slice_resid negative (like below), but it needs some targetted
> testing. And given that it's been there for several releases, it's not
> really a rush to get it fixed for 2.6.30.
>
> But I'll definitely throw it into the testing mix, and if deemed safe
> enough, get it in there for 2.6.30.
>
> diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
> index 7e13f04..17549f7 100644
> --- a/block/cfq-iosched.c
> +++ b/block/cfq-iosched.c
> @@ -887,7 +887,7 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq,
> * store what was left of this slice, if the queue idled/timed out
> */
> if (timed_out && !cfq_cfqq_slice_new(cfqq)) {
> - cfqq->slice_resid = cfqq->slice_end - jiffies;
> + cfqq->slice_resid = jiffies - cfqq->slice_end;
> cfq_log_cfqq(cfqd, cfqq, "resid=%ld", cfqq->slice_resid);
> }

BTW, it doesn't even matter for preempted processes, since they get
front insertion always. The better fix is probably to just kill
->slice_resid, or at least rethink the logic.

I'll let it sit for 2.6.30 and come up with something alternative (or
kill it) for 2.6.31.

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