diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2021-03-04 10:16:07 +0000 |
---|---|---|
committer | Matthew Pickering <matthewtpickering@gmail.com> | 2021-03-07 19:31:38 +0000 |
commit | 7d4473b1c0887b18ee6424ac97fbe3e7afa69f66 (patch) | |
tree | 93b802d3ed1324dfc1b0ec456034bbf9164f3584 /validate | |
parent | cf65cf16c89414273c4f6b2d090d4b2fffb90759 (diff) | |
download | haskell-wip/ghc-allocate-pinned.tar.gz |
rts: Use a separate free block list for allocatePinnedwip/ghc-allocate-pinned
The way in which allocatePinned took blocks out of the nursery was
leading to horrible fragmentation in some workloads.
The strategy now is that a separate free block list is reserved for each
capability and blocks are taken from there. When it's empty the global
SM lock is taken and a fresh block of size PINNED_EMPTY_SIZE is allocated.
Fixes #19481
Diffstat (limited to 'validate')
0 files changed, 0 insertions, 0 deletions