Commit 7eeeae2a authored by Austin Clements's avatar Austin Clements

runtime: always report starting heap size in gctrace

Currently the gctrace output reports the trigger heap size, rather
than the actual heap size at the beginning of GC. Often these are the
same, or at least very close. However, it's possible for the heap to
already have exceeded this trigger when we first check the trigger and
start GC; in this case, this output is very misleading. We've
encountered this confusion a few times when debugging and this
behavior is difficult to document succinctly.

Change the gctrace output to report the actual heap size when GC
starts, rather than the trigger.

Change-Id: I246b3ccae4c4c7ea44c012e70d24a46878d7601f
Reviewed-on: https://go-review.googlesource.com/12452Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent cc6ed285
......@@ -884,14 +884,7 @@ func gc(mode int) {
if debug.gctrace > 0 {
stwprocs, maxprocs = gcprocs(), gomaxprocs
tSweepTerm = now
if mode == gcBackgroundMode {
// We started GC when heap_live == next_gc,
// but the mutator may have allocated between
// then and now. Report heap when GC started.
heap0 = memstats.next_gc
} else {
heap0 = memstats.heap_live
}
heap0 = memstats.heap_live
}
pauseStart = now
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment