]> Cypherpunks repositories - gostls13.git/commit
runtime: make next_gc ^0 when GC is disabled
authorAustin Clements <austin@google.com>
Thu, 29 Sep 2016 15:46:53 +0000 (11:46 -0400)
committerAustin Clements <austin@google.com>
Fri, 7 Oct 2016 18:32:51 +0000 (18:32 +0000)
commitfa9b57bb1d84bf81b49346341ad14297d0195187
tree3528fa3ae000ad5536a78edad938dc7b1ca2046f
parentf8a0c15e902cc6555610a32a6dbf36f4ff2c2682
runtime: make next_gc ^0 when GC is disabled

When GC is disabled, we set gcpercent to -1. However, we still use
gcpercent to compute several values, such as next_gc and gc_trigger.
These calculations are meaningless when gcpercent is -1 and result in
meaningless values. This is okay in a sense because we also never use
these values if gcpercent is -1, but they're confusing when exposed to
the user, for example via MemStats or the execution trace. It's
particularly unfortunate in the execution trace because it attempts to
plot the underflowed value of next_gc, which scales all useful
information in the heap row into oblivion.

Fix this by making next_gc ^0 when gcpercent < 0. This has the
advantage of being true in a way: next_gc is effectively infinite when
gcpercent < 0. We can also detect this special value when updating the
execution trace and report next_gc as 0 so it doesn't blow up the
display of the heap line.

Change-Id: I4f366e4451f8892a4908da7b2b6086bdc67ca9a9
Reviewed-on: https://go-review.googlesource.com/30016
Reviewed-by: Rick Hudson <rlh@golang.org>
src/runtime/mgc.go
src/runtime/mstats.go
src/runtime/trace.go