Hi Linus, On top of the block and io_uring branches, here are a set of updates for the passthrough support that was merged in the 6.0 kernel. With these changes, passthrough NVMe support over io_uring now performs at the same level as block device O_DIRECT, and in many cases 6-8% better. This pull request contains: - Add support for fixed buffers for passthrough (Anuj, Kanchan) - Enable batched allocations and freeing on passthrough, similarly to what we support on the normal storage path (me) - Fix from Geert fixing an issue with !CONFIG_IO_URING Please pull! The following changes since commit 30514bd2dd4e86a3ecfd6a93a3eadf7b9ea164a0: sbitmap: fix lockup while swapping (2022-09-29 17:58:17 -0600) are available in the Git repository at: git://git.kernel.dk/linux.git tags/for-6.1/passthrough-2022-10-04 for you to fetch changes up to 0e0abad2a71bcd7ba0f30e7975f5b4199ade4e60: io_uring: Add missing inline to io_uring_cmd_import_fixed() dummy (2022-10-04 08:13:20 -0600) ---------------------------------------------------------------- for-6.1/passthrough-2022-10-04 ---------------------------------------------------------------- Anuj Gupta (6): io_uring: add io_uring_cmd_import_fixed io_uring: introduce fixed buffer support for io_uring_cmd block: add blk_rq_map_user_io scsi: Use blk_rq_map_user_io helper nvme: Use blk_rq_map_user_io helper block: rename bio_map_put to blk_mq_map_bio_put Geert Uytterhoeven (1): io_uring: Add missing inline to io_uring_cmd_import_fixed() dummy Jens Axboe (8): Merge branch 'for-6.1/block' into for-6.1/passthrough Merge branch 'for-6.1/io_uring' into for-6.1/passthrough block: kill deprecated BUG_ON() in the flush handling block: enable batched allocation for blk_mq_alloc_request() block: change request end_io handler to pass back a return value block: allow end_io based requests in the completion batch handling nvme: split out metadata vs non metadata end_io uring_cmd completions nvme: enable batched completions of passthrough IO Kanchan Joshi (6): nvme: refactor nvme_add_user_metadata nvme: refactor nvme_alloc_request block: factor out blk_rq_map_bio_alloc helper block: extend functionality to map bvec iterator nvme: pass ubuffer as an integer nvme: wire up fixed buffer support for nvme passthrough block/blk-flush.c | 11 +- block/blk-map.c | 150 ++++++++++++++++--- block/blk-mq.c | 107 ++++++++++++-- drivers/md/dm-rq.c | 4 +- drivers/nvme/host/core.c | 6 +- drivers/nvme/host/ioctl.c | 227 +++++++++++++++++++---------- drivers/nvme/host/pci.c | 12 +- drivers/nvme/target/passthru.c | 5 +- drivers/scsi/scsi_error.c | 4 +- drivers/scsi/scsi_ioctl.c | 22 +-- drivers/scsi/sg.c | 31 +--- drivers/scsi/st.c | 4 +- drivers/target/target_core_pscsi.c | 6 +- drivers/ufs/core/ufshpb.c | 8 +- include/linux/blk-mq.h | 12 +- include/linux/io_uring.h | 10 +- include/uapi/linux/io_uring.h | 9 ++ io_uring/uring_cmd.c | 29 +++- 18 files changed, 476 insertions(+), 181 deletions(-) -- Jens Axboe