Messages in this thread | | | From | Pavel Begunkov <> | Subject | [RFC 0/4] open/accept directly into io_uring fixed file table | Date | Wed, 7 Jul 2021 12:39:42 +0100 |
| |
Implement an old idea allowing open/accept io_uring requests to register a newly created file as a io_uring's fixed file instead of placing it into a task's file table. The switching is encoded in io_uring's SQEs by setting sqe->buf_index/file_index, so restricted to 2^16-1. Don't think we need more, but may be a good idea to scrap u32 somewhere instead.
From the net side only needs a function doing __sys_accept4_file() but not installing fd, see 2/4.
Only RFC for now, the new functionality is tested only for open yet. I hope we can remember the author of the idea to add attribution.
Pavel Begunkov (4): io_uring: allow open directly into fixed fd table net: add an accept helper not installing fd io_uring: hand code io_accept()' fd installing io_uring: accept directly into fixed file table
fs/io_uring.c | 113 +++++++++++++++++++++++++++++----- include/linux/socket.h | 3 + include/uapi/linux/io_uring.h | 2 + net/socket.c | 71 +++++++++++---------- 4 files changed, 138 insertions(+), 51 deletions(-)
-- 2.32.0
| |