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>
Sat, 20 Apr 2024 15:47:51 +0000 (09:47 -0600)
commitbe6c58d858be3d41e33b98a46bd1ce2e3e7d4e92
treeed2c7807c31573f53f802550e24b3d98d87901ac
parent3aff40d4066ea52eb76cce240574ff09b310d9ef
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