Skip to content

Draft: Implement I/O based on io_uring

Ben Gamari requested to merge wip/ghc-io-uring into master

This is a rather rough extension of @WJWH's !3794 exploring the possibility of introducing support for the read and write RawIO operations. At the moment this is really more of a sketch than anything else, but I think it does demonstrate a rather simple implementation strategy. The interesting changes are in GHC.IO.FD and GHC.IO.URing.

See #18390.


  • Make URingMgr per-capability (as EventManagers currently are)
  • Teach EventManager to dispatch polling via URingMgr
  • Proper feature detection
  • Handle SQ overflow
  • Dynamically increase uring count to match IO demand
Edited by Ben Gamari

Merge request reports