The GC now handles the root marking jobs as part of general marking,
so work.markfor is no longer used.
Change-Id: I6c3b23fed27e4e7ea6430d6ca7ba25ae4d04ed14
Reviewed-on: https://go-review.googlesource.com/16811
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
throw("size of Workbuf is suboptimal")
}
- work.markfor = parforalloc(_MaxGcproc)
_ = setGCPercent(readgogc())
for datap := &firstmoduledata; datap != nil; datap = datap.next {
datap.gcdatamask = progToPointerMask((*byte)(unsafe.Pointer(datap.gcdata)), datap.edata-datap.data)
nwait uint32
ndone uint32
alldone note
- markfor *parfor
// Number of roots of various root types. Set by gcMarkRootPrepare.
nDataRoots, nBSSRoots, nSpanRoots, nStackRoots int
// Preemption must be disabled (because this uses a gcWork).
//
//go:nowritebarrier
-func markroot(desc *parfor, i uint32) {
+func markroot(i uint32) {
// TODO: Consider using getg().m.p.ptr().gcw.
var gcw gcWork
break
}
// TODO: Pass in gcw.
- markroot(nil, job)
+ markroot(job)
}
}