Commit 0168c267 authored by Austin Clements's avatar Austin Clements

runtime: use only per-P gcWork

Currently most uses of gcWork use the per-P gcWork, but there are two
places that still use a stack-based gcWork. Simplify things by making
these instead use the per-P gcWork.

Change-Id: I712d012cce9dd5757c8541824e9641ac1c2a329c
Reviewed-on: https://go-review.googlesource.com/19636Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 7b229001
...@@ -1555,8 +1555,8 @@ func gcMark(start_time int64) { ...@@ -1555,8 +1555,8 @@ func gcMark(start_time int64) {
gchelperstart() gchelperstart()
var gcw gcWork gcw := &getg().m.p.ptr().gcw
gcDrain(&gcw, gcDrainBlock) gcDrain(gcw, gcDrainBlock)
gcw.dispose() gcw.dispose()
gcMarkRootCheck() gcMarkRootCheck()
...@@ -1798,8 +1798,8 @@ func gchelper() { ...@@ -1798,8 +1798,8 @@ func gchelper() {
// Parallel mark over GC roots and heap // Parallel mark over GC roots and heap
if gcphase == _GCmarktermination { if gcphase == _GCmarktermination {
var gcw gcWork gcw := &_g_.m.p.ptr().gcw
gcDrain(&gcw, gcDrainBlock) // blocks in getfull gcDrain(gcw, gcDrainBlock) // blocks in getfull
gcw.dispose() gcw.dispose()
} }
......
...@@ -44,14 +44,6 @@ func (wp wbufptr) ptr() *workbuf { ...@@ -44,14 +44,6 @@ func (wp wbufptr) ptr() *workbuf {
// //
// A gcWork can be used on the stack as follows: // A gcWork can be used on the stack as follows:
// //
// var gcw gcWork
// disable preemption
// .. call gcw.put() to produce and gcw.get() to consume ..
// gcw.dispose()
// enable preemption
//
// Or from the per-P gcWork cache:
//
// (preemption must be disabled) // (preemption must be disabled)
// gcw := &getg().m.p.ptr().gcw // gcw := &getg().m.p.ptr().gcw
// .. call gcw.put() to produce and gcw.get() to consume .. // .. call gcw.put() to produce and gcw.get() to consume ..
......
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