On Fri, May 21, 2021 at 01:20:16PM +0200, Jan Kara wrote: > On Fri 21-05-21 09:29:33, Ming Lei wrote: > > On Thu, May 20, 2021 at 01:25:28PM +0200, Jan Kara wrote: > > > Provided the device driver does not implement dispatch budget accounting > > > (which only SCSI does) the loop in __blk_mq_do_dispatch_sched() pulls > > > requests from the IO scheduler as long as it is willing to give out any. > > > That defeats scheduling heuristics inside the scheduler by creating > > > false impression that the device can take more IO when it in fact > > > cannot. > > > > So hctx->dispatch_busy isn't set as true in this case? > > No. blk_mq_update_dispatch_busy() has: > > if (hctx->queue->elevator) > return; ooops, the above check should have been killed in commit 6e6fcbc27e77 ("blk-mq: support batching dispatch in case of io"), :-( Thanks, Ming