Commit 77fcf36a authored by Austin Clements's avatar Austin Clements

runtime: don't use cached wbuf in markroot

Currently markroot fetches the wbuf to fill from the per-M wbuf
cache. The wbuf cache is primarily meant for the write barrier because
it produces very little work on each call. There's little point to
using the cache in mark root, since each call to markroot is likely to
produce a large amount of work (so the slight win on getting it from
the cache instead of from the central wbuf lists doesn't matter), and
markroot does not dispose the wbuf back to the cache (so most markroot
calls won't get anything from the wbuf cache anyway).

Instead, just get the wbuf from the central wbuf lists like other work
producers. This will simplify later changes.

Change-Id: I07a18a4335a41e266a6d70aa3a0911a40babce23
Reviewed-on: https://go-review.googlesource.com/7732Reviewed-by: 's avatarRick Hudson <rlh@golang.org>
parent fa2f9c2c
...@@ -56,7 +56,6 @@ var oneptr = [...]uint8{typePointer} ...@@ -56,7 +56,6 @@ var oneptr = [...]uint8{typePointer}
//go:nowritebarrier //go:nowritebarrier
func markroot(desc *parfor, i uint32) { func markroot(desc *parfor, i uint32) {
var gcw gcWorkProducer var gcw gcWorkProducer
gcw.initFromCache()
// Note: if you add a case here, please also update heapdump.go:dumproots. // Note: if you add a case here, please also update heapdump.go:dumproots.
switch i { switch i {
......
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