Messages in this thread | | | From | Miklos Szeredi <> | Date | Thu, 23 Apr 2020 11:20:44 +0200 | Subject | Re: [PATCH v5 2/3] fs: openat2: Extend open_how to allow userspace-selected fds |
| |
On Thu, Apr 23, 2020 at 9:57 AM Miklos Szeredi <miklos@szeredi.hu> wrote: > > On Thu, Apr 23, 2020 at 9:45 AM Miklos Szeredi <miklos@szeredi.hu> 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
| |