]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: update triggerRatio in setGCPercent
authorAustin Clements <austin@google.com>
Mon, 14 Dec 2015 20:38:12 +0000 (15:38 -0500)
committerAustin Clements <austin@google.com>
Tue, 15 Dec 2015 17:58:38 +0000 (17:58 +0000)
Currently, runtime/debug.SetGCPercent does not adjust the controller
trigger ratio. As a result, runtime reductions of GOGC don't take full
effect until after one more concurrent cycle has happened, which
adjusts the trigger ratio to account for the new gcpercent.

Fix this by lowering the trigger ratio if necessary in setGCPercent.

Change-Id: I4d23e0c58d91939b86ac60fa5d53ef91d0d89e0c
Reviewed-on: https://go-review.googlesource.com/17813
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/mgc.go

index 756d74e4fd456f8d236f4becfb90e85572c9a874..01b72eea54fb999d0fa90ebc39f6bce8d573048a 100644 (file)
@@ -202,6 +202,9 @@ func setGCPercent(in int32) (out int32) {
        }
        gcpercent = in
        heapminimum = defaultHeapMinimum * uint64(gcpercent) / 100
+       if gcController.triggerRatio > float64(gcpercent)/100 {
+               gcController.triggerRatio = float64(gcpercent) / 100
+       }
        unlock(&mheap_.lock)
        return out
 }