[PATCH for-next v2 0/4] fixed-buffer for uring-cmd/passthrough
Kanchan Joshi
joshi.k at samsung.com
Fri Aug 19 20:06:16 PDT 2022
Hi,
Currently uring-cmd lacks the ability to leverage the pre-registered
buffers. This series adds new fixed-buffer variant of uring command
IORING_OP_URING_CMD_FIXED, and plumbs nvme passthrough to work with
that.
Patch 1, 3 = prep/infrastructure
Patch 2 = expand io_uring command to use registered-buffers
Patch 4 = expand nvme passthrough to use registered-buffers
Using registered-buffers showed 9-12% IOPS gain in my setup.
QD Without With
8 853 928
32 1370 1528
128 1505 1631
This series is prepared on top of:
for-next + iopoll-passthru series [1] + passthru optimization series [2].
A unified branch with all that is present here:
https://github.com/OpenMPDK/linux/commits/feat/pt_fixedbufs_v1
Fio that can use IORING_OP_URING_CMD_FIXED (on specifying fixedbufs=1)
is here -
https://github.com/joshkan/fio/commit/300f1187f75aaf2c502c180041943c340670d0ac
Changes since v1:
- Fix a naming issue for an exported helper
[1] https://lore.kernel.org/linux-block/20220807183607.352351-1-joshi.k@samsung.com/
[2] https://lore.kernel.org/linux-block/20220806152004.382170-1-axboe@kernel.dk/
Anuj Gupta (2):
io_uring: introduce io_uring_cmd_import_fixed
io_uring: introduce fixed buffer support for io_uring_cmd
Kanchan Joshi (2):
block: add helper to map bvec iterator for passthrough
nvme: wire up fixed buffer support for nvme passthrough
block/blk-map.c | 71 +++++++++++++++++++++++++++++++++++
drivers/nvme/host/ioctl.c | 38 +++++++++++++------
include/linux/blk-mq.h | 1 +
include/linux/io_uring.h | 10 +++++
include/uapi/linux/io_uring.h | 1 +
io_uring/opdef.c | 10 +++++
io_uring/rw.c | 3 +-
io_uring/uring_cmd.c | 26 +++++++++++++
8 files changed, 147 insertions(+), 13 deletions(-)
--
2.25.1
More information about the Linux-nvme
mailing list