mbox series

[v3,0/8] Improve zoned storage write performance

Message ID 20220627234335.1714393-1-bvanassche@acm.org (mailing list archive)
Headers show
Series Improve zoned storage write performance | expand

Message

Bart Van Assche June 27, 2022, 11:43 p.m. UTC
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(-)