[GHC] #8400: Migrate the RTS to use libuv (or libev, or libevent)

GHC ghc-devs at haskell.org
Tue Aug 15 09:32:35 UTC 2017


#8400: Migrate the RTS to use libuv (or libev, or libevent)
-------------------------------------+-------------------------------------
        Reporter:  schyler           |                Owner:  (none)
            Type:  feature request   |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Runtime System    |              Version:
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  635, 7353         |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by winter):

 I share the same concerns above, so my experiment is still under going, so
 far the results are: the libuv I/O system's performance is slightly
 better(~10%), and allocate slightly less(~10%~20%), the GC pause is much
 lower(~30%). we test it under different load, we also did a test on a
 36-core 512G RAM server accorading to the MIO paper.

 We(I and a student in BHU who used to work as an intern under my
 supervision) are planning to write a paper about this new I/O system
 design, collecting all the result above, and do some analysis. Since this
 year's HIW submission is closed already. We're looking forward to submit
 this paper in next year's HIW. So we still have plenty of time to polish
 our work. We would much appreciate if someone can recommend some places to
 submit a paper like this ; )

 If we somehow choose to use libuv in GHC, the libuv dependency should be
 managed like libffi IMO, it's easy to build and we should ship it with GHC
 to help user get started(just like node.js).

 As for correctness, i think switch to libuv is actually helpful to reduce
 bugs since we don't need to interface different OS event backend. A
 regression test suite is definitely helpful, i'll try to make one.

-- 
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8400#comment:23>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list