mbox series

[liburing,v2,0/4] add basic zero copy receive support

Message ID 20250218220136.2238838-1-dw@davidwei.uk (mailing list archive)
Headers show
Series add basic zero copy receive support | expand

Message

David Wei Feb. 18, 2025, 10:01 p.m. UTC
Add basic support for io_uring zero copy receive in liburing. Besides
the mandatory syncing of necessary liburing.h headers, add a thin
wrapper around the registration op and a unit test.

Users still need to setup by hand e.g. mmap, setup the registration
structs, do the registration and then setup the refill queue struct
io_uring_zcrx_rq.

In the future, I'll add code to hide the implementation details. But for
now, this unblocks the kernel selftest.

Changes in v2:
--------------
* Split out linux/io_uring.h header sync changes
* Move exporting io_uring_register_ifq() to LIBURING_2.10 section

David Wei (4):
  liburing: sync io_uring headers
  zcrx: sync io_uring headers
  zcrx: add basic support
  zcrx: add unit test

 src/include/liburing.h          |  12 +
 src/include/liburing/io_uring.h |  62 ++-
 src/liburing-ffi.map            |   2 +
 src/liburing.map                |   2 +
 src/register.c                  |   6 +
 test/Makefile                   |   1 +
 test/zcrx.c                     | 918 ++++++++++++++++++++++++++++++++
 7 files changed, 1001 insertions(+), 2 deletions(-)
 create mode 100644 test/zcrx.c

Comments

Jens Axboe Feb. 18, 2025, 11:31 p.m. UTC | #1
On Tue, 18 Feb 2025 14:01:32 -0800, David Wei wrote:
> Add basic support for io_uring zero copy receive in liburing. Besides
> the mandatory syncing of necessary liburing.h headers, add a thin
> wrapper around the registration op and a unit test.
> 
> Users still need to setup by hand e.g. mmap, setup the registration
> structs, do the registration and then setup the refill queue struct
> io_uring_zcrx_rq.
> 
> [...]

Applied, thanks!

[1/4] liburing: sync io_uring headers
      commit: 48d8d54e524a9c37e0cc52921bb41070156a597f
[2/4] zcrx: sync io_uring headers
      commit: ce3a65747d43a405cc19a630d5f8a0f613293f5c
[3/4] zcrx: add basic support
      commit: d7ec4ce3421fbbdaba07426d589b72e204ac92e9
[4/4] zcrx: add unit test
      commit: 30bd7baa5627f066fc0bfbca293f950fdf3ef3f1

Best regards,