mbox series

[PATCHv5,00/11] ublk zero copy support

Message ID 20250224213116.3509093-1-kbusch@meta.com (mailing list archive)
Headers show
Series ublk zero copy support | expand

Message

Keith Busch Feb. 24, 2025, 9:31 p.m. UTC
From: Keith Busch <kbusch@kernel.org>

Changes from v4:

  A few cleanup prep patches from me and Pavel are at the beginning of
  this series.

  Uses Pavel's combined buffer lookup and import. This simplifies
  utilizing fixed buffers a bit later in the series, and obviates any
  need to generically handle fixed buffers. This also fixes up the net
  zero-copy notif assignemnet that Ming pointed out.

  Included the nvme uring_cmd fix for using kernel registered bvecs from
  Xinyu.

  Used speculative safe array indexes when registering a new bvec
  (Pavel).

  Encode the allowed direction as bit flags (Caleb, Pavel).

  Incorporated various cleanups suggested by Caleb.

Keith Busch (7):
  io_uring/rsrc: remove redundant check for valid imu
  io_uring/nop: reuse req->buf_index
  io_uring/rw: move fixed buffer import to issue path
  io_uring: add support for kernel registered bvecs
  ublk: zc register/unregister bvec
  io_uring: add abstraction for buf_table rsrc data
  io_uring: cache nodes and mapped buffers

Pavel Begunkov (3):
  io_uring/net: reuse req->buf_index for sendzc
  io_uring/nvme: pass issue_flags to io_uring_cmd_import_fixed()
  io_uring: combine buffer lookup and import

Xinyu Zhang (1):
  nvme: map uring_cmd data even if address is 0

 drivers/block/ublk_drv.c       | 117 +++++++++----
 drivers/nvme/host/ioctl.c      |  12 +-
 include/linux/io_uring/cmd.h   |  13 +-
 include/linux/io_uring_types.h |  24 ++-
 include/uapi/linux/ublk_cmd.h  |   4 +
 io_uring/fdinfo.c              |   8 +-
 io_uring/filetable.c           |   2 +-
 io_uring/net.c                 |  25 +--
 io_uring/nop.c                 |   7 +-
 io_uring/opdef.c               |   8 +-
 io_uring/register.c            |   2 +-
 io_uring/rsrc.c                | 304 +++++++++++++++++++++++++++------
 io_uring/rsrc.h                |  16 +-
 io_uring/rw.c                  |  52 +++---
 io_uring/rw.h                  |   4 +-
 io_uring/uring_cmd.c           |  28 +--
 16 files changed, 433 insertions(+), 193 deletions(-)

Comments

Pavel Begunkov Feb. 25, 2025, 2:10 p.m. UTC | #1
On 2/24/25 21:31, Keith Busch wrote:
> From: Keith Busch <kbusch@kernel.org>
> 
> Changes from v4:

Should we pick the first 3 patches so that you don't have to carry
them around? Probably even [1-5] if we have the blessing from nvme
and Keith.
Jens Axboe Feb. 25, 2025, 2:47 p.m. UTC | #2
On 2/25/25 7:10 AM, Pavel Begunkov wrote:
> On 2/24/25 21:31, Keith Busch wrote:
>> From: Keith Busch <kbusch@kernel.org>
>>
>> Changes from v4:
> 
> Should we pick the first 3 patches so that you don't have to carry
> them around? Probably even [1-5] if we have the blessing from nvme
> and Keith.

Yep I think 1-5 are good to go, I'll run a bit of testing and queue
it up. Last bits look pretty close too, but indeed easier to manage
a shrinking series for a v6 posting that can hopefully wrap it up.
Jens Axboe Feb. 25, 2025, 3:07 p.m. UTC | #3
On Mon, 24 Feb 2025 13:31:05 -0800, Keith Busch wrote:
> Changes from v4:
> 
>   A few cleanup prep patches from me and Pavel are at the beginning of
>   this series.
> 
>   Uses Pavel's combined buffer lookup and import. This simplifies
>   utilizing fixed buffers a bit later in the series, and obviates any
>   need to generically handle fixed buffers. This also fixes up the net
>   zero-copy notif assignemnet that Ming pointed out.
> 
> [...]

Applied, thanks!

[01/11] io_uring/rsrc: remove redundant check for valid imu
        commit: 559d80da74a0d61a92fffa085db165eea6431ee8
[02/11] io_uring/nop: reuse req->buf_index
        commit: ee993fe7a5f6641d0e02fbc5d6378d77b2f39d08
[03/11] io_uring/net: reuse req->buf_index for sendzc
        commit: 1a917a2d5c7ea5ea1640b260c280c2f805c94854
[04/11] io_uring/nvme: pass issue_flags to io_uring_cmd_import_fixed()
        commit: 7323341f44c17b27e5622d66460fa9726e44321a
[05/11] io_uring: combine buffer lookup and import
        commit: 82cbf420496cffbb8e228ebd065851155978bab6

Best regards,