[GHC] #8400: Migrate the RTS to use libuv (or libev, or libevent)
GHC
ghc-devs
Thu Oct 3 00:35:11 UTC 2013
#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
More information about the ghc-tickets
mailing list