[GHC] #8732: Global big object heap allocator lock causes contention

GHC ghc-devs at haskell.org
Tue Feb 4 05:42:36 UTC 2014


#8732: Global big object heap allocator lock causes contention
-------------------------------------+------------------------------------
        Reporter:  tibbe             |            Owner:  simonmar
            Type:  bug               |           Status:  new
        Priority:  normal            |        Milestone:
       Component:  Runtime System    |          Version:  7.6.3
      Resolution:                    |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown      |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:
-------------------------------------+------------------------------------
Description changed by tibbe:

Old description:

> The lock allocate() takes when allocating big objects hurts scalability
> of I/O bound application. Network.Socket.ByteString.recv is typically
> called with a buffer size of 4096, which causes a ByteString of that size
> to be allocate. The size of this ByteString causes it to be allocated
> from the big object space, which causes contention of the global lock
> that guards that space.
>
> See http://www.yesodweb.com/blog/2014/02/new-warp for a real world
> example.

New description:

 The lock `allocate` takes when allocating big objects hurts scalability of
 I/O bound application. `Network.Socket.ByteString.recv` is typically
 called with a buffer size of 4096, which causes a `ByteString` of that
 size to be allocated. The size of this `ByteString` causes it to be
 allocated from the big object space, which causes contention of the global
 lock that guards that space.

 See http://www.yesodweb.com/blog/2014/02/new-warp for a real world
 example.

--

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


More information about the ghc-tickets mailing list