All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHSET 0/4] Add support for list issue
@ 2021-11-17  3:38 Jens Axboe
  2021-11-17  3:38 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
                   ` (3 more replies)
  0 siblings, 4 replies; 36+ messages in thread
From: Jens Axboe @ 2021-11-17  3:38 UTC (permalink / raw)
  To: linux-block; +Cc: hch

Hi,

With the support in 5.16-rc1 for allocating and completing batches of
IO, the one missing piece is passing down a list of requests for issue.
Drivers can take advantage of this by defining an mq_ops->queue_rqs()
hook.

This implements it for NVMe, allowing copy of multiple commands in one
swoop.

This is good for around a 500K IOPS/core improvement in my testing,
which is around a 5-6% improvement in efficiency.

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 36+ messages in thread
* [PATCHSET v2 0/4] Add support for list issue
@ 2021-12-03 21:45 Jens Axboe
  2021-12-03 21:45 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
  0 siblings, 1 reply; 36+ messages in thread
From: Jens Axboe @ 2021-12-03 21:45 UTC (permalink / raw)
  To: linux-block, linux-nvme

Hi,

With the support in 5.16-rc1 for allocating and completing batches of
IO, the one missing piece is passing down a list of requests for issue.
Drivers can take advantage of this by defining an mq_ops->queue_rqs()
hook.

This implements it for NVMe, allowing copy of multiple commands in one
swoop.

This is good for around a 500K IOPS/core improvement in my testing,
which is around a 5-6% improvement in efficiency.

Changes since v1:

- Addressed review comments
- Rebase on top of Ming's hctx lock change
- Clean ups
- Bypass for shared tags

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 36+ messages in thread
* [PATCHSET v3 0/4] Add support for list issue
@ 2021-12-15 16:24 Jens Axboe
  2021-12-15 16:24 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
  0 siblings, 1 reply; 36+ messages in thread
From: Jens Axboe @ 2021-12-15 16:24 UTC (permalink / raw)
  To: io-uring, linux-nvme

Hi,

With the support in 5.16-rc1 for allocating and completing batches of
IO, the one missing piece is passing down a list of requests for issue.
Drivers can take advantage of this by defining an mq_ops->queue_rqs()
hook.

This implements it for NVMe, allowing copy of multiple commands in one
swoop.

This is good for around a 500K IOPS/core improvement in my testing,
which is around a 5-6% improvement in efficiency.

No changes since v3 outside of a comment addition.

Changes since v2:
- Add comment on why shared tags are currently bypassed
- Add reviewed-by's

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 36+ messages in thread
* [PATCHSET v4 0/4] Add support for list issue
@ 2021-12-16 16:05 Jens Axboe
  2021-12-16 16:05 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
  0 siblings, 1 reply; 36+ messages in thread
From: Jens Axboe @ 2021-12-16 16:05 UTC (permalink / raw)
  To: io-uring, linux-block, linux-nvme

With the support in 5.16-rc1 for allocating and completing batches of
IO, the one missing piece is passing down a list of requests for issue.
Drivers can take advantage of this by defining an mq_ops->queue_rqs()
hook.

This implements it for NVMe, allowing copy of multiple commands in one
swoop.

This is good for around a 500K IOPS/core improvement in my testing,
which is around a 5-6% improvement in efficiency.

Note to Christoph - I kept the copy helper, since it's used in 3
spots and I _think_ you ended up being fine with that...

Changes since v3:
- Use nvme_sq_copy_cmd() in nvme_submit_cmds()
- Add reviewed-by's

-- 
Jens Axboe



^ permalink raw reply	[flat|nested] 36+ messages in thread
* [PATCHSET v5 0/4] Add support for list issue
@ 2021-12-16 16:38 Jens Axboe
  2021-12-16 16:38 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
  0 siblings, 1 reply; 36+ messages in thread
From: Jens Axboe @ 2021-12-16 16:38 UTC (permalink / raw)
  To: io-uring, linux-block, linux-nvme

Hi,

With the support in 5.16-rc1 for allocating and completing batches of
IO, the one missing piece is passing down a list of requests for issue.
Drivers can take advantage of this by defining an mq_ops->queue_rqs()
hook.

This implements it for NVMe, allowing copy of multiple commands in one
swoop.

This is good for around a 500K IOPS/core improvement in my testing,
which is around a 5-6% improvement in efficiency.

Note to Christoph - I kept the copy helper, since it's used in 3
spots and I _think_ you ended up being fine with that...

Changes since v4:
- Get rid of nvme_submit_cmd()
- Check for prev == NULL for batched issue



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

end of thread, other threads:[~2021-12-20 20:47 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-17  3:38 [PATCHSET 0/4] Add support for list issue Jens Axboe
2021-11-17  3:38 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
2021-11-17  6:25   ` Christoph Hellwig
2021-11-17 15:41     ` Jens Axboe
2021-11-17  8:20   ` Ming Lei
2021-11-17 15:43     ` Jens Axboe
2021-11-17 20:48       ` Keith Busch
2021-11-17 23:59         ` Ming Lei
2021-11-17 20:41   ` Keith Busch
2021-11-18  0:18     ` Ming Lei
2021-11-18  2:02       ` Keith Busch
2021-11-18  2:14         ` Ming Lei
2021-11-17  3:38 ` [PATCH 2/4] nvme: split command copy into a helper Jens Axboe
2021-11-17  6:15   ` Christoph Hellwig
2021-11-17 15:44     ` Jens Axboe
2021-11-18  7:54   ` Chaitanya Kulkarni
2021-11-17  3:38 ` [PATCH 3/4] nvme: separate command prep and issue Jens Axboe
2021-11-17  6:17   ` Christoph Hellwig
2021-11-17 15:45     ` Jens Axboe
2021-11-18  7:59     ` Chaitanya Kulkarni
2021-11-17  3:38 ` [PATCH 4/4] nvme: add support for mq_ops->queue_rqs() Jens Axboe
2021-11-17  8:39   ` Christoph Hellwig
2021-11-17 15:55     ` Jens Axboe
2021-11-17 15:58       ` Jens Axboe
2021-11-17 19:41   ` Keith Busch
  -- strict thread matches above, loose matches on Subject: below --
2021-12-03 21:45 [PATCHSET v2 0/4] Add support for list issue Jens Axboe
2021-12-03 21:45 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
2021-12-04 10:43   ` Hannes Reinecke
2021-12-04 20:13     ` Jens Axboe
2021-12-05  9:07       ` Hannes Reinecke
2021-12-05 13:09         ` Jens Axboe
2021-12-15 16:24 [PATCHSET v3 0/4] Add support for list issue Jens Axboe
2021-12-15 16:24 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
2021-12-16  9:01   ` Christoph Hellwig
2021-12-20 20:36   ` Keith Busch
2021-12-20 20:47     ` Jens Axboe
2021-12-16 16:05 [PATCHSET v4 0/4] Add support for list issue Jens Axboe
2021-12-16 16:05 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe
2021-12-16 16:38 [PATCHSET v5 0/4] Add support for list issue Jens Axboe
2021-12-16 16:38 ` [PATCH 1/4] block: add mq_ops->queue_rqs hook Jens Axboe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.