Re: [PATCH V2 06/20] blk-mq-sched: don't dequeue request until all in ->dispatch are flushed

Ming Lei
2017-08-24T06:18:46Z

On Tue, Aug 22, 2017 at 08:09:32PM +0000, Bart Van Assche wrote:
> On Sat, 2017-08-05 at 14:56 +0800, Ming Lei wrote:
> > + /*
> > + * Wherever DISPATCH_BUSY is set, blk_mq_run_hw_queue()
> > + * will be run to try to make progress, so it is always
> > + * safe to check the state here.
> > + */
> > + if (test_bit(BLK_MQ_S_DISPATCH_BUSY, &hctx->state))
> > + return;
>
> The comment above test_bit() is useful but does not explain the purpose of
> the early return. Is the purpose of the early return perhaps to serialize
> blk_mq_sched_dispatch_requests() calls? If so, please mention this.

If the bit is set, that means there are requests in hctx->dispatch, so
return early for avoiding to dequeue requests from sw/scheduler queue
unnecessarily.

I thought the code is self-comment, so not explain it, will add the
comment.

--
Ming