Commit 4ac4085f authored by Austin Clements's avatar Austin Clements

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/14548Reviewed-by: default avatarRick Hudson <rlh@golang.org>
parent a1cad70a
...@@ -126,13 +126,14 @@ const ( ...@@ -126,13 +126,14 @@ const (
_DebugGC = 0 _DebugGC = 0
_ConcurrentSweep = true _ConcurrentSweep = true
_FinBlockSize = 4 * 1024 _FinBlockSize = 4 * 1024
_RootData = 0 _RootData = 0
_RootBss = 1 _RootBss = 1
_RootFinalizers = 2 _RootFinalizers = 2
_RootSpans0 = 3 _RootFlushCaches = 3
_RootSpans0 = 4
_RootSpansShards = 128 _RootSpansShards = 128
_RootFlushCaches = _RootSpans0 + _RootSpansShards _RootCount = _RootSpans0 + _RootSpansShards
_RootCount = _RootFlushCaches + 1
// sweepMinHeapDistance is a lower bound on the heap distance // sweepMinHeapDistance is a lower bound on the heap distance
// (in bytes) reserved for concurrent sweeping between GC // (in bytes) reserved for concurrent sweeping between GC
......
...@@ -121,8 +121,7 @@ func markrootSpans(gcw *gcWork, shard int) { ...@@ -121,8 +121,7 @@ func markrootSpans(gcw *gcWork, shard int) {
sg := mheap_.sweepgen sg := mheap_.sweepgen
startSpan := shard * len(work.spans) / _RootSpansShards startSpan := shard * len(work.spans) / _RootSpansShards
endSpan := (shard + 1) * len(work.spans) / _RootSpansShards endSpan := (shard + 1) * len(work.spans) / _RootSpansShards
for spanidx := startSpan; spanidx < endSpan; spanidx++ { for _, s := range work.spans[startSpan:endSpan] {
s := work.spans[spanidx]
if s.state != mSpanInUse { if s.state != mSpanInUse {
continue continue
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment