Messages in this thread | | | Date | Fri, 1 May 2015 11:05:52 -0700 | From | Shaohua Li <> | Subject | Re: [PATCH 2/5] sched: always use blk_schedule_flush_plug in io_schedule_out |
| |
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
| |