runtime: make gcEffectiveGrowthRatio a method on gcControllerState

For #44167.

Change-Id: Ie3cf8d2960c843a782ec85426fa73c279adaed64
Reviewed-on: https://go-review.googlesource.com/c/go/+/306605
Trust: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
Michael Anthony Knyszek 2021-04-01 19:12:02 +00:00 committed by Michael Knyszek
parent e9cc31e736
commit 7ec7a3cf33

View File

@ -471,7 +471,7 @@ func (c *gcControllerState) endCycle(userForced bool) float64 {
// growth if we had the desired CPU utilization). The
// difference between this estimate and the GOGC-based goal
// heap growth is the error.
goalGrowthRatio := gcEffectiveGrowthRatio()
goalGrowthRatio := c.effectiveGrowthRatio()
actualGrowthRatio := float64(c.heapLive)/float64(c.heapMarked) - 1
assistDuration := nanotime() - c.markStartTime
@ -779,7 +779,7 @@ func (c *gcControllerState) commit(triggerRatio float64) {
gcPaceScavenger()
}
// gcEffectiveGrowthRatio returns the current effective heap growth
// effectiveGrowthRatio returns the current effective heap growth
// ratio (GOGC/100) based on heapMarked from the previous GC and
// heapGoal for the current GC.
//
@ -788,10 +788,10 @@ func (c *gcControllerState) commit(triggerRatio float64) {
// heapMinimum, this can be higher than gcPercent/100.
//
// mheap_.lock must be held or the world must be stopped.
func gcEffectiveGrowthRatio() float64 {
func (c *gcControllerState) effectiveGrowthRatio() float64 {
assertWorldStoppedOrLockHeld(&mheap_.lock)
egogc := float64(atomic.Load64(&gcController.heapGoal)-gcController.heapMarked) / float64(gcController.heapMarked)
egogc := float64(atomic.Load64(&c.heapGoal)-c.heapMarked) / float64(c.heapMarked)
if egogc < 0 {
// Shouldn't happen, but just in case.
egogc = 0