io_uring/net: support bundles for send
authorJens Axboe <axboe@kernel.dk>
Tue, 5 Mar 2024 20:10:04 +0000 (13:10 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 22 Apr 2024 17:26:05 +0000 (11:26 -0600)
commita05d1f625c7aa681d8816bc0f10089289ad07aad
treeed2c7807c31573f53f802550e24b3d98d87901ac
parent35c8711c8fc4c16ad2749b8314da5829a493e28e
io_uring/net: support bundles for send

If IORING_OP_SEND is used with provided buffers, the caller may also
set IORING_RECVSEND_BUNDLE to turn it into a multi-buffer send. The idea
is that an application can fill outgoing buffers in a provided buffer
group, and then arm a single send that will service them all. Once
there are no more buffers to send, or if the requested length has
been sent, the request posts a single completion for all the buffers.

This only enables it for IORING_OP_SEND, IORING_OP_SENDMSG is coming
in a separate patch. However, this patch does do a lot of the prep
work that makes wiring up the sendmsg variant pretty trivial. They
share the prep side.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/uapi/linux/io_uring.h
io_uring/net.c