diff options
author | Duncan Coutts <duncan@well-typed.com> | 2012-02-22 18:25:27 +0000 |
---|---|---|
committer | Duncan Coutts <duncan@well-typed.com> | 2012-04-04 19:10:45 +0100 |
commit | 1f809ce6df1dca54b977c6cac8f2b1c745683cf9 (patch) | |
tree | 889ba5ffb8c739988e552e9e9df87f6f87724606 /rts/Trace.h | |
parent | e88f1625a234e5316e903f84ae4d3349fec4bf3d (diff) | |
download | haskell-1f809ce6df1dca54b977c6cac8f2b1c745683cf9.tar.gz |
Emit final heap alloc events and rearrange code to calculate alloc totals
In stat_exit we want to emit a final EVENT_HEAP_ALLOCATED for each cap
so that we get the same total allocation count as reported via +RTS -s.
To do so we need to update the per-cap total_allocated counts.
Previously we had a single calcAllocated(rtsBool) function that counted
the large allocations and optionally the nurseries for all caps. The GC
would always call it with false, and the stat_exit always with true.
The reason for these two modes is that the GC counts the nurseries via
clearNurseries() (which also updates the per-cap total_allocated
counts), so it's only the stat_exit() path that needs to count them.
We now split the calcAllocated() function into two: countLargeAllocated
and updateNurseriesStats. As the name suggests, the latter now updates
the per-cap total_allocated counts, in additon to returning a total.
Diffstat (limited to 'rts/Trace.h')
0 files changed, 0 insertions, 0 deletions