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

From: Christoph Hellwig
Date: Fri May 01 2015 - 13:14:16 EST


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