Re: [PATCH 2/3] cfq-iosched: Implement a new tunable group_idle

From: Vivek Goyal
Date: Mon Jul 19 2010 - 17:04:49 EST


On Mon, Jul 19, 2010 at 01:54:53PM -0700, Divyesh Shah wrote:
> On Mon, Jul 19, 2010 at 10:14 AM, Vivek Goyal <vgoyal@xxxxxxxxxx> wrote:
> > @@ -3420,7 +3453,10 @@ static void cfq_completed_request(struct request_queue *q, struct request *rq)
> >                 * the queue.
> >                 */
> >                if (cfq_should_wait_busy(cfqd, cfqq)) {
> > -                       cfqq->slice_end = jiffies + cfqd->cfq_slice_idle;
> > +                       unsigned long extend_sl = cfqd->cfq_slice_idle;
> > +                       if (!cfqd->cfq_slice_idle)
> > +                               extend_sl = cfqd->cfq_group_idle;
> > +                       cfqq->slice_end = jiffies + extend_sl;
> >                        cfq_mark_cfqq_wait_busy(cfqq);
> >                        cfq_log_cfqq(cfqd, cfqq, "will busy wait");
> >                }
>
> Vivek, I haven't looked at this particular code snippet for some time.
> Can you tell me why we add the slice_idle (or w/ your change
> extend_sl) to slice_end instead of arming the idle timer with that
> amount of time?

Divyesh,

With wait busy we do arm the slice time also. wait busy is just saying
that extend the slice a bit so that we do arm the timer and select_queue()
does not expire the queue right away.

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