|
|
Log in / Subscribe / Register

open/accept directly into io_uring fixed file table

From:  Pavel Begunkov <asml.silence-AT-gmail.com>
To:  Jens Axboe <axboe-AT-kernel.dk>, io-uring-AT-vger.kernel.org
Subject:  [RFC 0/4] open/accept directly into io_uring fixed file table
Date:  Wed, 07 Jul 2021 12:39:42 +0100
Message-ID:  <cover.1625657451.git.asml.silence@gmail.com>
Cc:  "David S . Miller" <davem-AT-davemloft.net>, Jakub Kicinski <kuba-AT-kernel.org>, linux-kernel-AT-vger.kernel.org, netdev-AT-vger.kernel.org
Archive-link:  Article

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



Copyright © 2021, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds