[GHC] #15665: Break up the stable pointer table
GHC
ghc-devs at haskell.org
Mon Sep 24 23:08:40 UTC 2018
#15665: Break up the stable pointer table
-------------------------------------+-------------------------------------
Reporter: dfeuer | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone: 8.6.1
Component: Compiler | Version: 8.4.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #7670 | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by dfeuer):
Ah, I think I do see one. Start by using one free list per block, and
tracking the number of free list entries both per block and per
capability. When adding an entry to the free list for a block, check
whether both of the following are true: 1. The block has "sufficient" free
entries (to be worth the synchronization overhead) and 2. The capability
has "sufficient" other free entries (so it's not going to have to jump
straight from the donor line to the recipient line). In that case, the
capability relinquishes the block to a shared list. Any capability that
runs out of free entries can try to get a (partially used) block from that
list and only allocate a fresh one if that fails.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15665#comment:8>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list