]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: always report starting heap size in gctrace
authorAustin Clements <austin@google.com>
Tue, 21 Jul 2015 15:38:14 +0000 (11:38 -0400)
committerAustin Clements <austin@google.com>
Mon, 27 Jul 2015 17:45:28 +0000 (17:45 +0000)
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/12452
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/mgc.go

index 8731dd85110fc6979fa589efbc078118dd997c59..889abfbbc9c3f9220bc565cb96d92a65b63fb45e 100644 (file)
@@ -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