[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