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

GHC ghc-devs at haskell.org
Tue Feb 3 20:55:28 UTC 2015


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

Comment (by simonmar):

 Malloc is fine for ByteStrings, but we can't use it for heap-resident
 objects due to the way block descriptors work.  Our memory is always MB-
 aligned, so that we can put the block descriptors at the beginning of the
 MB.  Also the GC has to be able to distinguish heap memory from non-heap
 memory, and we currently take advantage of the fact that memory is
 allocated in MB chunks to reduce the granularity that we have to map the
 address space.  The contiguous-heap patch solves this in a different way
 (that is also incompatible with malloc).

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


More information about the ghc-tickets mailing list