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

GHC ghc-devs at haskell.org
Wed Feb 5 00:30:24 UTC 2014


#8732: Global big object heap allocator lock causes contention
--------------------------------------------+------------------------------
        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 ezyang):

 It is a good thing that these blocks are considered big blocks, since we
 don't really want to be copying the buffers around. So one thought might
 be to make the large block list in generation-0 per-thread, and perform
 allocations from a thread-local block list. But you have to be careful:
 objects that are larger than a block need contiguous blocks, so unless you
 are only going to enable this for large objects that still fit in a single
 block, you'll have to maintain multiple lists with the sizes you want.

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


More information about the ghc-tickets mailing list