Re: [PATCH v3 0/4] open/accept directly into io_uring fixed file table
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-08-22 02:18:19
Also in:
lkml, netdev
On 8/21/21 9:52 AM, Pavel Begunkov wrote:
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 = prep_[open,accept](...); cqe = submit_and_wait(sqe); io_uring_register_files_update(uring_idx, (fd = cqe->res)); close((fd = cqe->res)); The idea in pretty old, and was brough up and implemented a year ago by Josh Triplett, though haven't sought the light for some reasons. The behaviour is controlled by setting sqe->file_index, where 0 implies the old behaviour. 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. we can't use IOSQE_FIXED_FILE to switch between modes, because accept takes a file, and it already uses the flag with a different meaning. since RFC: - added attribution - updated descriptions - rebased since v1: - EBADF if slot is already used (Josh Triplett) - alias index with splice_fd_in (Josh Triplett) - fix a bound check bug
With the prep series, this looks good to me now. Josh, what do you think? And we need the net folks to sign off on the first patch, of course. -- Jens Axboe