[GHC] #8733: I/O manager causes unnecessary syscalls in send/recv loops

GHC ghc-devs at haskell.org
Mon Feb 10 14:20:14 UTC 2014


#8733: I/O manager causes unnecessary syscalls in send/recv loops
--------------------------------------------+------------------------------
        Reporter:  tibbe                    |            Owner:
            Type:  bug                      |           Status:  new
        Priority:  normal                   |        Milestone:  7.10.1
       Component:  Runtime System           |          Version:  7.6.3
      Resolution:                           |         Keywords:
Operating System:  Unknown/Multiple         |     Architecture:
 Type of failure:  Runtime performance bug  |  Unknown/Multiple
       Test Case:                           |       Difficulty:  Unknown
        Blocking:                           |       Blocked By:
                                            |  Related Tickets:
--------------------------------------------+------------------------------

Comment (by tibbe):

 > In contrast, in the pre-7.8 IO manager, the IO manager thread always did
 a blocking epoll call, so it could use the earliest timeout as the timeout
 for the epoll call. It would then have to wait for at most one Haskell
 thread to finish after the foreign epoll call returns in order to grab the
 HEC and dispatch callbacks.

 We don't guarantee to wake the thread up exactly after N milliseconds, so
 unless the new I/O manager seriously delays wake-ups, I'd prefer it if we
 could skip having a completely separate timeout manager.

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


More information about the ghc-tickets mailing list