diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2021-03-04 10:16:07 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-03-08 18:24:42 -0500 |
commit | 47d6acd3be1fadc0c59b7b4d4e105242c0ae0b90 (patch) | |
tree | 8696b191951e5bd9fbb5441f4eb0ba8e5ab23084 /rts/eventlog | |
parent | daa6363f49df0dceb2c460da500461e564aa9ea2 (diff) | |
download | haskell-47d6acd3be1fadc0c59b7b4d4e105242c0ae0b90.tar.gz |
rts: Use a separate free block list for allocatePinned
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 'rts/eventlog')
0 files changed, 0 insertions, 0 deletions