On 3/6/25 22:59, Jens Axboe wrote:
On 3/6/25 5:10 AM, Jens Axboe wrote:
On 3/6/25 5:01 AM, Jens Axboe wrote:
On Tue, 04 Mar 2025 15:40:21 +0000, Pavel Begunkov wrote:
Add registered buffer support for vectored io_uring operations. That
allows to pass an iovec, all entries of which must belong to and
point into the same registered buffer specified by sqe->buf_index.
The series covers zerocopy sendmsg and reads / writes. Reads and
writes are implemented as new opcodes, while zerocopy sendmsg
reuses IORING_RECVSEND_FIXED_BUF for the api.
[...]
Applied, thanks!
[1/9] io_uring: introduce struct iou_vec
commit: 32fd3277b4ae0f5e6f3a306b464f9b031e2408a8
[2/9] io_uring: add infra for importing vectored reg buffers
commit: 1a3339cbca2225dbcdc1f4da2b25ab83da818f1d
[3/9] io_uring/rw: implement vectored registered rw
commit: 7965e1cd6199cf9c87fa02e904cbc50c45c7310f
[4/9] io_uring/rw: defer reg buf vec import
commit: 5f0a1f815dad9490db822013a2f1feba3371f4d1
[5/9] io_uring/net: combine msghdr copy
commit: bc007e0aea60926b75b6a459ad8cf7ac357fb290
[6/9] io_uring/net: pull vec alloc out of msghdr import
commit: 8ff671f394f97e31bc6c1acec9ebbdb108177df9
[7/9] io_uring/net: convert to struct iou_vec
commit: 57b309177530bf99e59da21d1b1888ac4024072a
[8/9] io_uring/net: implement vectored reg bufs for zctx
commit: 6836bdad87cb83e96df0702d02d264224b0ffd2d
[9/9] io_uring: cap cached iovec/bvec size
commit: 0be2ba0a44e3670ac3f9eecd674341d77767288d
Note: the vectored fixed read/write opcodes got renumbered, as they
didn't sit on top of the epoll wait patches. Just a heads up, in terms
of the liburing side.
I'll get the basic epoll wait bits pushed up to liburing as well.
And one more note: this breaks 32-bit compiles due to a bad assumption
on iovec vs bio_vec sizing, so I've dropped it for now. Hopefully we can
get a v3 into the 6.15 branch.
I saw that, at least the build check did the job. I'm inclined
to the option in my reply to 2/9. It's generic in a sense that
it can be unconditional, might be a good idea to kill the
if and have extra memory consumption for now until improved.
--
Pavel Begunkov