Skip to content

io_uring: ensure all needed read/write data is stable

Jens Axboe io-uring netdev 2 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v2 Latest5 patches 0 repliesNew
  2. v12 patches 0 repliesSuperseded

Changes in v2 from the cover letter

- Get rid of REQ_F_PREPPED, just use req->io
- Add sendmsg/recvmsg and connect
- Add IORING_FEAT_SUBMIT_STABLE to userspace can tell kernels with this "feature" apart from older ones

Patches in v2 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/5io_uring: add general async offload contextfs/io_uring.c+32 -240 replies
2/5io_uring: ensure async punted read/write requests copy iovecfs/io_uring.c+179 -620 replies
3/5io_uring: ensure async punted sendmsg/recvmsg requests copy datafs/io_uring.c include/linux/socket.h net/socket.c+152 -680 replies
4/5io_uring: ensure async punted connect requests copy datafs/io_uring.c include/linux/socket.h net/socket.c+53 -150 replies
5/5io_uring: mark us with IORING_FEAT_SUBMIT_STABLEfs/io_uring.c include/uapi/linux/io_uring.h+3 -10 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.

Read the v2 thread

Cover letter [PATCHSET v2 0/5] io_uring: ensure all needed read/write data is stable

Currently we don't copy the associated iovecs when we punt to async context, and this can prove problematic if the caller only ensures the iovec is valid for the submission. This is a perfectly valid assumption, and I think io_uring should make sure that this is safe to do.

First patch is a prep patch, the following patches add support for the various opcodes that need it.

Also see: https://github.com/axboe/liburing/issues/27

 fs/io_uring.c                 | 466 ++++++++++++++++++++++++++--------
 include/linux/socket.h        |  20 +-
 include/uapi/linux/io_uring.h |   1 +
 net/socket.c                  |  76 ++----
 4 files changed, 406 insertions(+), 157 deletions(-)

Changes since v1:

- Get rid of REQ_F_PREPPED, just use req->io
- Add sendmsg/recvmsg and connect
- Add IORING_FEAT_SUBMIT_STABLE to userspace can tell kernels with this "feature" apart from older ones

Signature · 1 line
Jens Axboe