[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