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) 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-03 for you to fetch changes up to 23fd22e55b767be9c31fda57205afb2023cd6aad: nvme: wire up fixed buffer support for nvme passthrough (2022-09-30 07:51:13 -0600) ---------------------------------------------------------------- for-6.1/passthrough-2022-10-03 ---------------------------------------------------------------- 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 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