• Max Kellermann's avatar
    input/uring: new input plugin using io_uring · dae8da70
    Max Kellermann authored
    This is the final piece of the series to establish io_uring support on
    Linux.
    
    MPD doesn't need io_uring for its efficient bulk I/O support, but to
    allow file I/O to be cancelled.  This is a big problem on CIFS/NFS
    mounts where processes sleep uninterruptable if the file server
    disappears, deadlocking MPD.
    
    With io_uring, a flaky NFS connection allows MPD to continue to work
    (even though there are still deadlocks inside MPD which need to be
    addressed).
    
    This plugin does not yet use cancellable `open()` using
    `IORING_OP_OPENAT`.  This will be implemented later.
    
    Lots of other optimization opportunities for io_uring are still
    missing as well - for example the database update could benefit a lot,
    but unfortunately, io_uring doesn't have `readdir()` support just yet.
    dae8da70
Name
Last commit
Last update
.github Loading commit data...
android Loading commit data...
build Loading commit data...
doc Loading commit data...
python/build Loading commit data...
src Loading commit data...
systemd Loading commit data...
test Loading commit data...
win32 Loading commit data...
.gitignore Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
NEWS Loading commit data...
README.md Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
mpd.svg Loading commit data...
valgrind.suppressions Loading commit data...