]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: disable gcMarkRootCheck debugging check during STW
authorAustin Clements <austin@google.com>
Wed, 2 Mar 2016 02:30:26 +0000 (21:30 -0500)
committerAndrew Gerrand <adg@golang.org>
Thu, 14 Apr 2016 05:23:56 +0000 (05:23 +0000)
gcMarkRootCheck takes ~10ns per goroutine. This is just a debugging
check, so disable it (plus, if something is going to go wrong, it's
more likely to go wrong during concurrent mark).

We may be able to re-enable this later, or move it to after we've
started the world again. (But not for 1.6.x.)

For 1.6.x.

Fixes #14419.

name / 95%ile-time/markTerm          old          new  delta
500kIdleGs-12                24.0ms ± 0%  18.9ms ± 6%  -21.46%  (p=0.000 n=15+20)

Change-Id: Idb2a2b1771449de772c159ef95920d6df1090666
Reviewed-on: https://go-review.googlesource.com/20148
Reviewed-by: Rick Hudson <rlh@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-on: https://go-review.googlesource.com/22044
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/mgc.go

index 1b95df9cbeceb22cb7a3421ca732863c87b92d7b..ab099d82004ef913d3b59b7bfe792de6fc8b3cce 100644 (file)
@@ -1560,7 +1560,8 @@ func gcMark(start_time int64) {
        gcDrain(&gcw, gcDrainBlock)
        gcw.dispose()
 
-       gcMarkRootCheck()
+       // TODO: Re-enable once this is cheap.
+       //gcMarkRootCheck()
        if work.full != 0 {
                throw("work.full != 0")
        }