]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: merge {bgMark,assist}StartTime
authorAustin Clements <austin@google.com>
Wed, 2 Mar 2016 22:27:59 +0000 (17:27 -0500)
committerAustin Clements <austin@google.com>
Mon, 7 Mar 2016 00:22:42 +0000 (00:22 +0000)
We used to start background mark workers and assists at different
times, so we needed to keep track of these separately. They're now set
to exactly the same time, so clean things up by merging them in to one
value, markStartTime.

Change-Id: I17c9843c3ed2d6f07b4c8cd0b2c438fc6de23b53
Reviewed-on: https://go-review.googlesource.com/20143
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

index e9d420f0f02702eeafdd26e6e9f5f5d87915c852..a8f460b42873da7c23f839afe5ac9b4be92ef5b3 100644 (file)
@@ -340,13 +340,9 @@ type gcControllerState struct {
        // the cycle.
        idleMarkTime int64
 
-       // bgMarkStartTime is the absolute start time in nanoseconds
-       // that the background mark phase started.
-       bgMarkStartTime int64
-
-       // assistTime is the absolute start time in nanoseconds that
-       // mutator assists were enabled.
-       assistStartTime int64
+       // markStartTime is the absolute start time in nanoseconds
+       // that assists and background mark workers started.
+       markStartTime int64
 
        // heapGoal is the goal memstats.heap_live for when this cycle
        // ends. This is computed at the beginning of each cycle.
@@ -542,7 +538,7 @@ func (c *gcControllerState) endCycle() {
        // technically isn't comparable to the trigger ratio.
        goalGrowthRatio := float64(gcpercent) / 100
        actualGrowthRatio := float64(memstats.heap_live)/float64(memstats.heap_marked) - 1
-       assistDuration := nanotime() - c.assistStartTime
+       assistDuration := nanotime() - c.markStartTime
 
        // Assume background mark hit its utilization goal.
        utilization := gcGoalUtilization
@@ -700,7 +696,7 @@ func (c *gcControllerState) findRunnableGCWorker(_p_ *p) *g {
                // TODO(austin): Shorter preemption interval for mark
                // worker to improve fairness and give this
                // finer-grained control over schedule?
-               now := nanotime() - gcController.bgMarkStartTime
+               now := nanotime() - gcController.markStartTime
                then := now + gcForcePreemptNS
                timeUsed := c.fractionalMarkTime + gcForcePreemptNS
                if then > 0 && float64(timeUsed)/float64(then) > c.fractionalUtilizationGoal {
@@ -1002,8 +998,7 @@ func gcStart(mode gcMode, forceTrigger bool) {
 
                // Assists and workers can start the moment we start
                // the world.
-               gcController.assistStartTime = now
-               gcController.bgMarkStartTime = now
+               gcController.markStartTime = now
 
                // Concurrent mark.
                systemstack(startTheWorldWithSema)