Re: [PATCH 2/5] sched: always use blk_schedule_flush_plug in io_schedule_out

From: Shaohua Li
Date: Fri May 01 2015 - 14:06:31 EST


On Fri, May 01, 2015 at 07:14:10PM +0200, Christoph Hellwig wrote:
> On Thu, Apr 30, 2015 at 10:45:15AM -0700, Shaohua Li wrote:
> > long __sched io_schedule_timeout(long timeout)
> > {
> > - int old_iowait = current->in_iowait;
> > struct rq *rq;
> > long ret;
> >
> > current->in_iowait = 1;
> > - if (old_iowait)
> > - blk_schedule_flush_plug(current);
> > - else
> > - blk_flush_plug(current);
> > + blk_schedule_flush_plug(current);
> >
> > delayacct_blkio_start();
> > rq = raw_rq();
> > atomic_inc(&rq->nr_iowait);
> > ret = schedule_timeout(timeout);
> > - current->in_iowait = old_iowait;
> > + current->in_iowait = 0;
>
> Always clearing ->in_iowait is behavior change not mentioned in the
> changelog. Even if it was intentional it would better be done in
> a separate patch.

9cff8adeaa34b5d28 changes to use blk_schedule_flush_plug for recursive
io_schedule with old_iowait for recurse detection. Since we always use
blk_schedule_flush_plug now, I thought we don't need the recurse
detection any more. I agree it's better to do it in another patch.

Thanks,
Shaohua
--
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/