[RFC PATCH v4 0/2] Async nvme passthrough via io_uring
Kanchan Joshi
joshi.k at samsung.com
Thu Mar 25 17:05:38 GMT 2021
This series adds async passthrough capability for nvme block-dev over
io_uring.
The patches are on top of Jens uring-cmd series:
https://lore.kernel.org/linux-nvme/20210317221027.366780-1-axboe@kernel.dk/
https://git.kernel.dk/cgit/linux-block/log/?h=io_uring-fops.v4
The tree contains nvme-5.13 updates (pdu-enhancement patches of Keith)
as well.
Application is expected to allocate passthrough command structure, set
it up traditionally, and pass its address via
"block_uring_cmd->unused2[0]" field.
On completion, CQE is posted with completion-status after any ioctl
specific buffer/field update.
Tests are done by transforming fio io_uring read/write into
passthrough:
https://github.com/joshkan/fio/tree/uring_cmd_nvme_v4
Changes from v3:
1. Moved to v4 branch of Jens, adapted to interface changes
2. Extended support for NVME_IOCTL_IO_CMD64
3. Applied nvme feedback - hch, Keith
4. Appiled io_uring feedback - Jens, Stefan
Changes from v2:
1. Rebase against latest uring-cmd branch of Jens
2. Remove per-io nvme_command allocation
3. Disallow passthrough commands with non-zero command effects
Change from v1:
1. Rewire the work on top of Jens uring-cmd interface
2. Support only passthrough, and not other nvme ioctls
Kanchan Joshi (2):
io_uring: add helpers for io_uring_cmd completion in submitter-task.
nvme: wire up support for async passthrough
drivers/nvme/host/core.c | 194 +++++++++++++++++++++++++++++++++------
drivers/nvme/host/nvme.h | 3 +
drivers/nvme/host/pci.c | 1 +
fs/io_uring.c | 23 +++++
include/linux/io_uring.h | 12 +++
5 files changed, 206 insertions(+), 27 deletions(-)
--
2.25.1
More information about the Linux-nvme
mailing list