Hello, The 1st patch replaces hctx_lock/hctx_unlock with blk_mq_run_dispatch_ops(), so that the fast dispatch code path gets optimized a bit. The 2nd patch moves srcu from hctx into request queue. The last two patches call blk_mq_run_dispatch_ops once in case of issuing directly from list. Ming Lei (4): blk-mq: remove hctx_lock and hctx_unlock blk-mq: move srcu from blk_mq_hw_ctx to request_queue blk-mq: pass request queue to blk_mq_run_dispatch_ops blk-mq: run dispatch lock once in case of issuing from list block/blk-core.c | 27 +++++++++-- block/blk-mq-sched.c | 3 +- block/blk-mq-sysfs.c | 2 - block/blk-mq.c | 105 +++++++++-------------------------------- block/blk-mq.h | 16 +++++++ block/blk-sysfs.c | 3 +- block/blk.h | 10 +++- block/genhd.c | 2 +- include/linux/blk-mq.h | 8 ---- include/linux/blkdev.h | 9 ++++ 10 files changed, 84 insertions(+), 101 deletions(-) -- 2.31.1