construct
construct copied to clipboard
Implement io_uring for supporting kernels.
Without RWF_NOWAIT (since Linux 4.14) the call to io_submit(2) in ircd/fs_aio.cc is liable to block the entire daemon under certain conditions. A non-blocking use of this call allows the daemon to continue making progress in other contexts during that time.
I'm starting to believe this isn't feasible. Even if we can get the -EAGAIN and start a readahead(2)/posix_fadvise(2) and then context-switch to something else, there is no facility I'm aware of for the kernel to indicate when we would no longer get -EAGAIN. Adding that fd into the epoll doesn't work (still?). So this might have to be redirected into just implementing io_uring on Linux 5.1.