linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/8] Improve zoned storage write performance
@ 2022-06-27 23:43 Bart Van Assche
  2022-06-27 23:43 ` [PATCH v3 1/8] block: Document blk_queue_zone_is_seq() and blk_rq_zone_is_seq() Bart Van Assche
                   ` (7 more replies)
  0 siblings, 8 replies; 25+ messages in thread
From: Bart Van Assche @ 2022-06-27 23:43 UTC (permalink / raw)
  To: Jens Axboe; +Cc: linux-block, Christoph Hellwig, Jaegeuk Kim, Bart Van Assche

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(-)


^ permalink raw reply	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2022-06-29  6:11 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-06-27 23:43 [PATCH v3 0/8] Improve zoned storage write performance Bart Van Assche
2022-06-27 23:43 ` [PATCH v3 1/8] block: Document blk_queue_zone_is_seq() and blk_rq_zone_is_seq() Bart Van Assche
2022-06-28  0:19   ` Chaitanya Kulkarni
2022-06-27 23:43 ` [PATCH v3 2/8] block: Introduce the blk_rq_is_seq_zone_write() function Bart Van Assche
2022-06-28  0:20   ` Chaitanya Kulkarni
2022-06-27 23:43 ` [PATCH v3 3/8] block: Introduce a request queue flag for pipelining zoned writes Bart Van Assche
2022-06-28  0:36   ` Chaitanya Kulkarni
2022-06-28  2:49     ` Bart Van Assche
2022-06-27 23:43 ` [PATCH v3 4/8] block/mq-deadline: Only use zone locking if necessary Bart Van Assche
2022-06-27 23:43 ` [PATCH v3 5/8] block/null_blk: Refactor null_queue_rq() Bart Van Assche
2022-06-28  0:37   ` Chaitanya Kulkarni
2022-06-27 23:43 ` [PATCH v3 6/8] block/null_blk: Add support for pipelining zoned writes Bart Van Assche
2022-06-28  0:39   ` Chaitanya Kulkarni
2022-06-28 16:17     ` Bart Van Assche
2022-06-27 23:43 ` [PATCH v3 7/8] nvme: Make the number of retries command specific Bart Van Assche
2022-06-28  0:48   ` Chaitanya Kulkarni
2022-06-28  2:48     ` Bart Van Assche
2022-06-27 23:43 ` [PATCH v3 8/8] nvme: Enable pipelining of zoned writes Bart Van Assche
2022-06-28  3:16   ` Keith Busch
2022-06-28  9:00     ` Chaitanya Kulkarni
2022-06-28 17:44     ` Bart Van Assche
2022-06-28  4:49   ` Christoph Hellwig
2022-06-28 16:30     ` Bart Van Assche
2022-06-29  5:51       ` Christoph Hellwig
2022-06-29  6:10       ` Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).