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

GHC ghc-devs at haskell.org
Tue Feb 4 17:11:36 UTC 2014


#8733: I/O manager causes unnecessary syscalls in send/recv loops
--------------------------------------------+------------------------------
        Reporter:  tibbe                    |            Owner:  simonmar
            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):

 Replying to [comment:5 etrepum]:
 > Is the IO manager the right layer to be approaching this from? Not all
 protocols are going to be strictly request/response with no pipelining or
 multiplexing like vanilla HTTP is.
 >
 > Why not implement this at a higher level in a library that encapsulates
 these best practices for various sorts of protocols?

 Good question. I considered this before filing the bug. One argument for
 why this should work without user interaction, in addition to the standard
 "it's nice if it just works" argument, is that if we didn't use the I/O
 manager but instead normal blocking syscalls, we'd end up with better
 behavior in this case.

 > A good start may be to add this to the Performance Resource:
 http://www.haskell.org/haskellwiki/Performance (which looks old but that's
 what came up when I searched). Erlang publishes an Efficiency Guide that
 is nice (but doesn't cover any networking topics)
 http://erlang.org/doc/efficiency_guide/users_guide.html

 I'm planning to add a note to the network package's docs when I find the
 time.

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


More information about the ghc-tickets mailing list