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