From: Austin Clements Date: Mon, 14 Sep 2015 18:28:09 +0000 (-0400) Subject: runtime: minor clarifications of markroot X-Git-Tag: go1.6beta1~1086 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4ac4085f8e75a92bf622622ad10f7aecdda5afdc;p=gostls13.git runtime: minor clarifications of markroot This puts the _Root* indexes in a more friendly order and tweaks markrootSpans to use a for-range loop instead of its own indexing. Change-Id: I2c18d55c9a673ea396b6424d51ef4997a1a74825 Reviewed-on: https://go-review.googlesource.com/14548 Reviewed-by: Rick Hudson --- diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 7fdd93b600..848e8f6992 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -126,13 +126,14 @@ const ( _DebugGC = 0 _ConcurrentSweep = true _FinBlockSize = 4 * 1024 + _RootData = 0 _RootBss = 1 _RootFinalizers = 2 - _RootSpans0 = 3 + _RootFlushCaches = 3 + _RootSpans0 = 4 _RootSpansShards = 128 - _RootFlushCaches = _RootSpans0 + _RootSpansShards - _RootCount = _RootFlushCaches + 1 + _RootCount = _RootSpans0 + _RootSpansShards // sweepMinHeapDistance is a lower bound on the heap distance // (in bytes) reserved for concurrent sweeping between GC diff --git a/src/runtime/mgcmark.go b/src/runtime/mgcmark.go index 128a163297..c8f8a66b45 100644 --- a/src/runtime/mgcmark.go +++ b/src/runtime/mgcmark.go @@ -121,8 +121,7 @@ func markrootSpans(gcw *gcWork, shard int) { sg := mheap_.sweepgen startSpan := shard * len(work.spans) / _RootSpansShards endSpan := (shard + 1) * len(work.spans) / _RootSpansShards - for spanidx := startSpan; spanidx < endSpan; spanidx++ { - s := work.spans[spanidx] + for _, s := range work.spans[startSpan:endSpan] { if s.state != mSpanInUse { continue }