1. 23 Sep, 2020 1 commit
    • Max Kellermann's avatar
      input/uring: safe cancellation · 85bab670
      Max Kellermann authored
      My concept with `class CancellableOperation` doesn't work properly,
      because the kernel may continue to write to the given buffer as soon
      as the read finishes.
      
      To fix this, this commit adds `class ReadOperation` which owns the
      buffer and the `struct iovec`.  Instances of this class persist until
      the read really finishes, even if the operation is canceled.
      85bab670
  2. 21 Sep, 2020 2 commits
  3. 16 Sep, 2020 2 commits
  4. 07 Sep, 2020 1 commit
  5. 14 Aug, 2020 1 commit
  6. 20 Jul, 2020 4 commits
  7. 06 Jul, 2020 1 commit
  8. 01 Jul, 2020 2 commits
  9. 30 May, 2020 1 commit
  10. 05 May, 2020 3 commits
    • 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
    • Max Kellermann's avatar
      */plugins/meson.build: define feature macros in Features.h · 8f178401
      Max Kellermann authored
      This makes ccache more efficient when recompiling with different
      plugins.
      8f178401
    • Max Kellermann's avatar
      system/FileDescriptor: move to io/ · 9815d101
      Max Kellermann authored
      9815d101
  11. 26 Mar, 2020 2 commits
  12. 17 Mar, 2020 1 commit
  13. 16 Mar, 2020 2 commits
  14. 13 Mar, 2020 2 commits
  15. 12 Mar, 2020 2 commits
  16. 17 Feb, 2020 1 commit
  17. 04 Feb, 2020 1 commit
  18. 02 Feb, 2020 2 commits
  19. 01 Feb, 2020 3 commits
  20. 18 Jan, 2020 3 commits
  21. 24 Dec, 2019 1 commit
  22. 04 Nov, 2019 1 commit
  23. 26 Aug, 2019 1 commit