On Thu, Apr 23, 2020 at 9:57 AM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Thu, Apr 23, 2020 at 9:45 AM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > > > I would prefer to not introduce that limitation in the first place, and > > > instead open normal file descriptors. > > > > > > > The point of O_SPECIFIC_FD is to be able to perform short > > > > sequences of open/dosomething/close without having to block and having > > > > to issue separate syscalls. > > > > > > "close" is not a required component. It's entirely possible to use > > > io_uring to open a file descriptor, do various things with it, and then > > > leave it open for subsequent usage via either other io_uring chains or > > > standalone syscalls. > > > > If this use case arraises, we could add an op to dup/move a private > > descriptor to a public one. io_uring can return values, right? > > > > Still not convinced... > > Oh, and we haven't even touched on the biggest advantage of a private > fd table: not having to dirty a cacheline on fdget/fdput due to the > possibility of concurrent close() in a MT application. > > I believe this is a sticking point in some big enterprise apps and it > may even be a driving force for io_uring. https://lwn.net/Articles/787473/ And an interesting (very old) article referenced from above, that gives yet a new angle on fd allocation issues: https://lwn.net/Articles/236843/ A private fd space would be perfect for libraries such as glibc. Thanks, Miklos