|
|
Log in / Subscribe / Register

io_uring: extend bvec registration and add mem region lookup

From:  Joanne Koong <joannelkoong-AT-gmail.com>
To:  axboe-AT-kernel.dk
Subject:  [PATCH v4 0/5] io_uring: extend bvec registration and add mem region lookup
Date:  Fri, 27 Mar 2026 10:26:26 -0700
Message-ID:  <20260327172631.3380702-1-joannelkoong@gmail.com>
Cc:  csander-AT-purestorage.com, asml.silence-AT-gmail.com, io-uring-AT-vger.kernel.org
Archive-link:  Article

This series refactors and extends the io_uring registered buffers
infrastructure to allow external subsystems to register pre-existing bvec
arrays directly and get information about the ring's registered memory region. 

The motivation for the patches in this series is to make fuse zero-copy
possible. These patches are split out from a previous larger
fuse-over-io_uring series [1]. The fuse changes that build on this patchset
are in [2].

Thanks,
Joanne

[1] https://lore.kernel.org/linux-fsdevel/20260116233044.1532...
[2] https://lore.kernel.org/linux-fsdevel/20260324224532.3733...

Changelog:
v3: https://lore.kernel.org/io-uring/20260324221426.3436334-1... 
v3 -> v4:
* Add comment about io_uring_registered_mem_region_get() locking (Jens)
* Return info in a new struct io_uring_mem_region_info (Jens)

v2: https://lore.kernel.org/io-uring/20260324182157.990864-1-...
v2 -> v3:
* drop patch that makes buffer release callback optional
* add patch for renaming/exporting IO_IMU_DEST / IO_IMU_SOURCE

v1: https://lore.kernel.org/io-uring/20260324001007.1144471-1...
v1 -> v2:
* update io_kernel_buffer_init() to take bitmasked dir directly so callers can
  set both dest and source

Joanne Koong (5):
  io_uring/rsrc: rename
    io_buffer_register_bvec()/io_buffer_unregister_bvec()
  io_uring/rsrc: split io_buffer_register_request() logic
  io_uring/rsrc: add io_buffer_register_bvec()
  io_uring/rsrc: rename and export IO_IMU_DEST / IO_IMU_SOURCE
  io_uring/rsrc: add io_uring_registered_mem_region_get()

 Documentation/block/ublk.rst   |  14 +--
 drivers/block/ublk_drv.c       |  22 ++---
 include/linux/io_uring/cmd.h   |  53 ++++++++++--
 include/linux/io_uring_types.h |   5 ++
 io_uring/io_uring.c            |   2 +-
 io_uring/rsrc.c                | 152 +++++++++++++++++++++++++--------
 io_uring/rsrc.h                |   5 --
 7 files changed, 186 insertions(+), 67 deletions(-)

-- 
2.52.0




Copyright © 2026, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds