Re: [PATCH 13/18] io_uring: add file set registration
From: Jens Axboe <axboe@kernel.dk>
Date: 2019-02-06 13:41:06
Also in:
linux-api, linux-fsdevel
On 2/5/19 5:56 PM, Al Viro wrote:
On Tue, Feb 05, 2019 at 12:08:25PM -0700, Jens Axboe wrote:quoted
Proof is in the pudding, here's the main commit introducing io_uring and now wiring it up to the AF_UNIX garbage collection: http://git.kernel.dk/cgit/linux-block/commit/?h=io_uring&id=158e6f42b67d0abe9ee84886b96ca8c4b3d3dfd5 How does that look?In a word - wrong. Some theory: garbage collector assumes that there is a subset of file references such that * for all files with such references there's an associated unix_sock. * all such references are stored in SCM_RIGHTS datagrams that can be found by the garbage collector (currently: for data-bearing AF_UNIX sockets - queued SCM_RIGHTS datagrams, for listeners - SCM_RIGHTS datagrams sent via yet-to-be-accepted connections). * there is an efficient way to count those references for given file (->inflight of the corresponding unix_sock). * removal of those references would render the graph acyclic. * file can _NOT_ be subject to syscalls unless there are references to it outside of that subset.
IOW, we cannot use fget() for registering files, and we still need fget/fput in the fast path to retain safe use of the file. If I'm understanding you correctly? Just trying to ensure that I understand what you're saying here, as it seems to refer to the file registration part, not the main patch (which did get reworked, though). -- Jens Axboe