summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2019-06-06 14:07:06 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-06-27 10:42:29 -0400
commit07cffc49d031df71702be3bf9006e0ad006414e2 (patch)
treeee392cff58057155beb76c3d7f609dd464e90cc8 /.gitlab-ci.yml
parented4cbd932651bb2a2673e62aad4e5cc6492c6735 (diff)
downloadhaskell-07cffc49d031df71702be3bf9006e0ad006414e2.tar.gz
rts: Do not traverse nursery for dead closures in LDV profile
It is important that `heapCensus` and `LdvCensusForDead` traverse the same areas. `heapCensus` increases the `not_used` counter which tracks how many closures are live but haven't been used yet. `LdvCensusForDead` increases the `void_total` counter which tracks how many dead closures there are. The `LAG` is then calculated by substracting the `void_total` from `not_used` and so it is essential that `not_used >= void_total`. This fact is checked by quite a few assertions. However, if a program has low maximum residency but allocates a lot in the nursery then these assertions were failing (see #16753 and #15903) because `LdvCensusForDead` was observing dead closures from the nursery which totalled more than the `not_used`. The same closures were not counted by `heapCensus`. Therefore, it seems that the correct fix is to make `LdvCensusForDead` agree with `heapCensus` and not traverse the nursery for dead closures. Fixes #16100 #16753 #15903 #8982
Diffstat (limited to '.gitlab-ci.yml')
0 files changed, 0 insertions, 0 deletions