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

GHC ghc-devs at haskell.org
Wed Feb 5 22:29:31 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 AndreasVoellmy):

 I would be interested to know what the source of the overhead is when
 making the recvfrom call that fails. I.e. is due to having more syscalls
 or from invoking the IO manager (Haskell-land) code to register the
 callback (requires taking an MVar, etc). If it is the sys call, then we
 would have to do something like you describe where you avoid making the
 recvfrom call right after the send. If, OTOH it is IO manager overhead,
 then we may be able to fix it by streamlining the IO manager. E.g. we
 could try to avoid taking any MVars to register callbacks.  We've also
 talked about integrating the IO manager more closely with the threaded RTS
 and writing it in C. I think we could easily reduce the overhead if we go
 down that route.

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


More information about the ghc-tickets mailing list