On Sun, 2017-09-17 at 20:40 +0800, Ming Lei wrote: > "if no request has completed before the delay has expired" can't be a > reason to rerun the queue, because the queue can still be busy. That statement of you shows that there are important aspects of the SCSI core and dm-mpath driver that you don't understand. > I suggest to understand the root cause, instead of keeping this > ugly random delay because run hw queue after 100ms may be useless > in 99.99% times. If you are still looking at removing the blk_mq_delay_run_hw_queue() calls then I think you are looking in the wrong direction. What kind of problem are you trying to solve? Is it perhaps that there can be a delay between dm-mpath request completion and the queueing of a new request? If so, adding a queue run call into the dm-mpath end_io callback is probably sufficient and probably can replace this entire patch series. Bart.