On Tue, Jul 31, 2018 at 01:19:42PM +0800, jianchao.wang wrote: > Hi Ming > > On 07/31/2018 12:58 PM, Ming Lei wrote: > > On Tue, Jul 31, 2018 at 12:02:15PM +0800, Jianchao Wang wrote: > >> Currently, we will always set SCHED_RESTART whenever there are > >> requests in hctx->dispatch, then when request is completed and > >> freed the hctx queues will be restarted to avoid IO hang. This > >> is unnecessary most of time. Especially when there are lots of > >> LUNs attached to one host, the RR restart loop could be very > >> expensive. > > > > The big RR restart loop has been killed in the following commit: > > > > commit 97889f9ac24f8d2fc8e703ea7f80c162bab10d4d > > Author: Ming Lei <ming.lei@xxxxxxxxxx> > > Date: Mon Jun 25 19:31:48 2018 +0800 > > > > blk-mq: remove synchronize_rcu() from blk_mq_del_queue_tag_set() > > > > > > Oh, sorry, I didn't look into this patch due to its title when iterated the mail list, > therefore I didn't realize the RR restart loop has already been killed. :) > > The RR restart loop could ensure the fairness of sharing some LLDD resource, > not just avoid IO hung. Is it OK to kill it totally ? Yeah, it is, also the fairness might be improved a bit by the way in commit 97889f9ac24f8d2fc, especially inside driver tag allocation algorithem. Thanks, Ming