Messages in this thread | | | Date | Wed, 22 Apr 2009 14:47:03 +0200 | From | Jens Axboe <> | Subject | Re: [GIT PULL] block bits for 2.6.30-rc3 |
| |
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
| |