Allow registered buffers to be used with zerocopy sendmsg, where the passed iovec becomes a scatter list into the registered buffer specified by sqe->buf_index. See patches 3 and 4 for more details. To get performance out of it, it'll need a bit more work on top for optimising allocations and cleaning up send setups. We can also implement it for non zerocopy variants and reads/writes in the future. Tested by enabling it in test/send-zerocopy.c, which checks payloads, and exercises lots of corner cases, especially around send sizes, offsets and non aligned registered buffers. Pavel Begunkov (4): io_uring/net: introduce io_kmsg_set_iovec io_uring/net: allow mixed bvec/iovec caching io_uring: vectored registered buffer import io_uring/net: sendzc with vectored fixed buffers io_uring/net.c | 132 +++++++++++++++++++++++++++++++++--------------- io_uring/net.h | 4 +- io_uring/rsrc.c | 60 ++++++++++++++++++++++ io_uring/rsrc.h | 3 ++ 4 files changed, 156 insertions(+), 43 deletions(-) -- 2.46.0