]> Cypherpunks repositories - gostls13.git/commit
runtime: rationalize triggerRatio
authorAustin Clements <austin@google.com>
Fri, 31 Mar 2017 21:09:41 +0000 (17:09 -0400)
committerAustin Clements <austin@google.com>
Fri, 21 Apr 2017 17:41:53 +0000 (17:41 +0000)
commit49a412a5b7f2b7ca6278da199b812bac3c683046
treeec2f7a927067cfe78d4e6e49291f3d9d382ac069
parent9d36163c0b35ddd384534f850fb04170e0d0c7c4
runtime: rationalize triggerRatio

gcController.triggerRatio is the only field in gcController that
persists across cycles. As global mutable state, the places where it
written and read are spread out, making it difficult to see that
updates and downstream calculations are done correctly.

Improve this situation by doing two things:

1) Move triggerRatio to memstats so it lives with the other
trigger-related fields and makes gcController entirely transient
state.

2) Commit the new trigger ratio during mark termination when we
compute other next-cycle controls, including the absolute trigger.
This forces us to explicitly thread the new trigger ratio from
gcController.endCycle to mark termination, so we're not just pulling
it out of global state.

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