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@xxxxxxxxxxx/ [2] https://lore.kernel.org/linux-block/20220806152004.382170-1-axboe@xxxxxxxxx/ 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