Hi Jens, Request queues are run asynchronously if BLK_MQ_F_BLOCKING has been set. This results in suboptimal performance. This patch series improves performance if BLK_MQ_F_BLOCKING has been set by running request queues synchronously whenever possible. Please consider this patch series for the next merge window. Thanks, Bart. Changes compared to v2: - Improved the descriptions of patches 1/3 and 2/3. - Added a comment in patch 2/3. - In patch 3/3, included a change for blk_execute_rq_nowait() since I noticed that this function may be called from a context where it is not allowed to sleep (nvme_uring_cmd_io() for NVMe over TCP). Changes compared to v1: - Fixed support for the combination BLK_MQ_F_BLOCKING + BLIST_SINGLELUN. Bart Van Assche (3): scsi: Inline scsi_kick_queue() scsi: Remove a blk_mq_run_hw_queues() call block: Improve performance for BLK_MQ_F_BLOCKING drivers block/blk-mq.c | 17 +++++++++++------ drivers/scsi/scsi_lib.c | 12 ++++-------- 2 files changed, 15 insertions(+), 14 deletions(-)