block: stop wait rcu once we can ensure no io while elevator init
Offering: HULK hulk inclusion category: performance bugzilla: 174005 https://gitee.com/openeuler/kernel/issues/I4DDEL --------------------------- 'commit 737eb78e ("block: Delay default elevator initialization")' delay elevator init to fix some problem for special device like SMR. Also, the commit add the logic to ensure no IO can happened while blk_mq_init_sched. However, blk_mq_freeze_queue/blk_mq_quiesce_queue will add RCU Grace period which can lead some overhead(about 36 loop device try to mount which each Grace period around 20ms). For loop device, no io can happened while add_disk, so it's safe to skip this step. Add flag QUEUE_FLAG_NO_INIT_IO to identify this case. Signed-off-by: Nyangerkun <yangerkun@huawei.com> Reviewed-by: NHou Tao <houtao1@huawei.com> Signed-off-by: NChen Jun <chenjun102@huawei.com> Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
Showing
想要评论请 注册 或 登录