diff options
| author | Austin Clements <austin@google.com> | 2017-02-09 11:50:26 -0500 |
|---|---|---|
| committer | Austin Clements <austin@google.com> | 2017-02-14 15:52:51 +0000 |
| commit | c5ebcd2c8ac6c5bdf85ec0a346974efd4b0cbe49 (patch) | |
| tree | 35fd3a982fab5920e16f77b93783bf4f94a5dab1 /src/runtime/runtime2.go | |
| parent | 7aeb915d6b1f90657e67e4722d13624b7109b8d5 (diff) | |
| download | go-c5ebcd2c8ac6c5bdf85ec0a346974efd4b0cbe49.tar.xz | |
runtime: remove rescan list
With the hybrid barrier, rescanning stacks is no longer necessary so
the rescan list is no longer necessary. Remove it.
This leaves the gcrescanstacks GODEBUG variable, since it's useful for
debugging, but changes it to simply walk all of the Gs to rescan
stacks rather than using the rescan list.
We could also remove g.gcscanvalid, which is effectively a distributed
rescan list. However, it's still useful for gcrescanstacks mode and it
adds little complexity, so we'll leave it in.
Fixes #17099.
Updates #17503.
Change-Id: I776d43f0729567335ef1bfd145b75c74de2cc7a9
Reviewed-on: https://go-review.googlesource.com/36619
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
Diffstat (limited to 'src/runtime/runtime2.go')
| -rw-r--r-- | src/runtime/runtime2.go | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go index 8cf13e96d8..80395193da 100644 --- a/src/runtime/runtime2.go +++ b/src/runtime/runtime2.go @@ -365,7 +365,7 @@ type g struct { paniconfault bool // panic (instead of crash) on unexpected fault address preemptscan bool // preempted g does scan for gc gcscandone bool // g has scanned stack; protected by _Gscan bit in status - gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan; transition from true to false by calling queueRescan and false to true by calling dequeueRescan + gcscanvalid bool // false at start of gc cycle, true if G has not run since last scan; TODO: remove? throwsplit bool // must not split stack raceignore int8 // ignore race detection events sysblocktraced bool // StartTrace has emitted EvGoInSyscall about this goroutine @@ -388,13 +388,6 @@ type g struct { // Per-G GC state - // gcRescan is this G's index in work.rescan.list. If this is - // -1, this G is not on the rescan list. - // - // If gcphase != _GCoff and this G is visible to the garbage - // collector, writes to this are protected by work.rescan.lock. - gcRescan int32 - // gcAssistBytes is this G's GC assist credit in terms of // bytes allocated. If this is positive, then the G has credit // to allocate gcAssistBytes bytes without assisting. If this |
