Re: [RFC 0/4] open/accept directly into io_uring fixed file table

From: Hao Xu
Date: Wed Jul 21 2021 - 03:17:34 EST


在 2021/7/7 下午7:39, Pavel Begunkov 写道:
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.

Great feature! I believe this one leverages linked sqes, we may need to
remind users to be careful when they use this feature in shared sqthread
mode since linked sqes may be splited.
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(-)