open/accept directly into io_uring fixed file table
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest4 patches 2 repliesIn review
- v34 patches 7 repliesSuperseded
- v24 patches 13 repliesSuperseded
Earlier versions · 1
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v1 RFC | 4 patches | 6 replies | Superseded |
Changes in v4 from the cover letter
- separate u32 fields to internally store indexes (Jens, Josh)
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | net: add accept helper not installing fdinclude/ net/ | +40 | 1 reply | |
| 2/4 | io_uring: openat directly into fixed fd tablefs/ include/ | +70 | 0 replies | |
| 3/4 | io_uring: hand code io_accept() fd installingfs/ | +20 | 0 replies | |
| 4/4 | io_uring: accept directly into fixed file tablefs/ | +18 | 0 replies |
Reviews trailers per patch
1 of 4 patches has a Reviewed-by or Acked-by.
| Patch | Jakub Kicinski | David S. Miller |
|---|---|---|
| 1/4 | A-b | A-b |
| 2/4 | ||
| 3/4 | ||
| 4/4 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v4 0/4] open/accept directly into io_uring fixed file table
Add an optional feature to open/accept directly into io_uring's fixed file table bypassing the normal file table. Same behaviour if as the snippet below, but in one operation:
sqe = io_uring_[open|accept]_prep(); io_uring_submit(sqe);
// ... once we get a CQE back io_uring_register_files_update(uring_idx, (fd = cqe->res)); close((fd = cqe->res));
The idea is old, and was brough up and implemented a year ago by Josh Triplett, though haven't sought the light.
The behaviour is controlled by setting sqe->file_index, where 0 implies the old behaviour using normal file tables. If non-zero value is specified, then it will behave as described and place the file into a fixed file slot sqe->file_index - 1. A file table should be already created, the slot should be valid and empty, otherwise the operation will fail.
note: IOSQE_FIXED_FILE can't be used as a mode switch, because accept takes a file, and it already uses the flag with a different meaning.
v2, since RFC:
- added attribution
- updated descriptions
- rebased
v3:
- EBADF if slot is already used (Josh Triplett)
- alias index with splice_fd_in (Josh Triplett)
- fix a bound check bug
v4:
- separate u32 fields to internally store indexes (Jens, Josh)
Pavel Begunkov (4):
net: add accept helper not installing fd
io_uring: openat directly into fixed fd table
io_uring: hand code io_accept() fd installing
io_uring: accept directly into fixed file table
fs/io_uring.c | 115 +++++++++++++++++++++++++++++----- include/linux/socket.h | 3 + include/uapi/linux/io_uring.h | 5 +- net/socket.c | 71 +++++++++++---------- 4 files changed, 143 insertions(+), 51 deletions(-)
Signature · 1 line
2.32.0