
#8400: Migrate the RTS to use libuv (or libev, or libevent) ----------------------------+---------------------------------------------- Reporter: schyler | Owner: simonmar Type: feature | Status: new request | Milestone: Priority: normal | Version: Component: Runtime | Keywords: System | Architecture: Unknown/Multiple Resolution: | Difficulty: Project (more than a week) Operating System: | Blocked By: Unknown/Multiple | Related Tickets: 635, 7353 Type of failure: | None/Unknown | Test Case: | Blocking: | ----------------------------+---------------------------------------------- Comment (by tibbe): You might want to start by reading the 3 papers of the I/O manager's evolution and implementation: Extending the Haskell Foreign Function Interface with Concurrency http://community.haskell.org/~simonmar/papers/conc-ffi.pdf Scalable I/O Event Handling for GHC http://research.google.com/pubs/archive/36841.pdf Mio: A High-Performance Multicore IO Manager for GHC http://haskell.cs.yale.edu/wp-content/uploads/2013/08/hask035-voellmy.pdf We briefly considered using libev when we did the first I/O manager rewrite, but any library that relies on callbacks will not work well as callbacks from C to Haskell are expensive. I have thought about integrating the I/O manager, which now runs in a separate thread, into the scheduler this might (or might not) give us lower latency and somewhat better request/s performance per core. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8400#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler