Hi uring-cmd lacks the ability to leverage the pre-registered buffers. This series adds that support in uring-cmd, and plumbs nvme passthrough to work with it. Patch 3 and 4 contains a bunch of general nvme cleanups, which got added along the iterations. Using registered-buffers showed 22-26% hike in peak IOPS (v8,in Jens setup). Changes since v8: - Split some patches further; now 7 patches rather than 5 (Christoph) - Applied a bunch of other suggested cleanups (Christoph) Changes since v7: - Patch 3: added many cleanups/refactoring suggested by Christoph - Patch 4: added copying-pages fallback for bounce-buffer/dma-alignment case (Christoph) Changes since v6: - Patch 1: fix warning for io_uring_cmd_import_fixed (robot) - Changes since v5: - Patch 4: newly addd, to split a nvme function into two - Patch 3: folded cleanups in bio_map_user_iov (Chaitanya, Pankaj) - Rebase to latest for-next Changes since v4: - Patch 1, 2: folded all review comments of Jens Changes since v3: - uring_cmd_flags, change from u16 to u32 (Jens) - patch 3, add another helper to reduce code-duplication (Jens) Changes since v2: - Kill the new opcode, add a flag instead (Pavel) - Fix standalone build issue with patch 1 (Pavel) Changes since v1: - Fix a naming issue for an exported helper Anuj Gupta (2): io_uring: add io_uring_cmd_import_fixed io_uring: introduce fixed buffer support for io_uring_cmd Kanchan Joshi (5): nvme: refactor nvme_add_user_metadata nvme: refactor nvme_alloc_request block: factor out bio_map_get helper block: introduce helper to map bvec iterator nvme: wire up fixed buffer support for nvme passthrough block/blk-map.c | 111 ++++++++++++++++++++--- drivers/nvme/host/ioctl.c | 160 ++++++++++++++++++++-------------- include/linux/blk-mq.h | 1 + include/linux/io_uring.h | 10 ++- include/uapi/linux/io_uring.h | 9 ++ io_uring/uring_cmd.c | 26 +++++- 6 files changed, 241 insertions(+), 76 deletions(-) -- 2.25.1