Hi Jens, Measurements have shown that limiting the queue depth to one per sequential zone has a significant negative performance impact for zoned UFS devices. Hence this patch series that increases the queue depth for write commands for sequential zones when using the mq-deadline scheduler. Please consider this patch series for kernel v5.20. Thanks, Bart. Changes compared to v2: - Included the patches again that enable write pipelining for NVMe ZNS SSDs. - Disabled merging in the null_blk test script. As a result, the test script now shows a 14x improvement with pipelining enabled. - Renamed blk_rq_is_zoned_seq_write() into blk_rq_is_seq_zone_write(). Changes compared to v1: - Left out the patch for the UFS driver. - Included patches for the null_blk driver. Bart Van Assche (8): block: Document blk_queue_zone_is_seq() and blk_rq_zone_is_seq() block: Introduce the blk_rq_is_seq_zone_write() function block: Introduce a request queue flag for pipelining zoned writes block/mq-deadline: Only use zone locking if necessary block/null_blk: Refactor null_queue_rq() block/null_blk: Add support for pipelining zoned writes nvme: Make the number of retries command specific nvme: Enable pipelining of zoned writes block/blk-zoned.c | 17 +++-------------- block/mq-deadline.c | 18 ++++++++++++------ drivers/block/null_blk/main.c | 30 ++++++++++++++++++++---------- drivers/block/null_blk/null_blk.h | 3 +++ drivers/block/null_blk/zoned.c | 13 ++++++++++++- drivers/nvme/host/core.c | 9 ++++++++- drivers/nvme/host/nvme.h | 1 + drivers/nvme/host/zns.c | 2 ++ include/linux/blk-mq.h | 30 ++++++++++++++++++++++++++++++ include/linux/blkdev.h | 16 ++++++++++++++++ 10 files changed, 107 insertions(+), 32 deletions(-)