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. -- Jens Axboe