[GIT PULL] Passthrough updates for 6.1-rc1

Jens Axboe
2022-10-03T19:40:42Z

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