[RFC PATCH 0/2] io_uring/net: Add bundle support for multishot recvmsg
From: Clément Léger
Date: Thu Oct 22 2026 - 16:22:27 EST
IORING_RECVSEND_BUNDLE is currently supported for IORING_OP_RECV but
rejected with -EINVAL for IORING_OP_RECVMSG, since the recvmsg output
envelope (struct io_uring_recvmsg_out, name and control data) was never
accounted for when bundling a receive across multiple provided buffers.
This series enables bundles for multishot recvmsg. Patch 1 is a
preparatory refactor with no functional change. Patch 2 adds the bundle
path for multishot recvmsg.
Note that contrary to plain recv which handles retry and can append more
data to a bundle, recvmsg does not support that since each payload is
associated to an envelope. trying to enqueue more data in an existing
bundle would leave an envelope in the middle of some payload buffers
which is not expected at all. The envelope must remain at the start of
the buffer.
Clément Léger (2):
io_uring/net: Factor out receive buffer selection
io_uring/net: Add bundle support for multishot recvmsg
io_uring/net.c | 240 ++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 196 insertions(+), 44 deletions(-)
--
Clément Léger