From b8fad4b33d20224f2965a1e9cdbd931fda0ed636 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 19 Nov 2018 10:36:45 -0500 Subject: [PATCH] runtime: improve "P has cached GC work" debug info For #27993. Change-Id: I20127e8a9844c2c488f38e1ab1f8f5a27a5df03e Reviewed-on: https://go-review.googlesource.com/c/149968 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- src/runtime/mgc.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 2c7dd85b243..d4e5d055ded 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -1934,6 +1934,19 @@ func gcMark(start_time int64) { gcw := &p.gcw if !gcw.empty() { + printlock() + print("runtime: P ", p.id, " flushedWork ", gcw.flushedWork) + if gcw.wbuf1 == nil { + print(" wbuf1=") + } else { + print(" wbuf1.n=", gcw.wbuf1.nobj) + } + if gcw.wbuf2 == nil { + print(" wbuf2=") + } else { + print(" wbuf2.n=", gcw.wbuf2.nobj) + } + print("\n") throw("P has cached GC work at end of mark termination") } // There may still be cached empty buffers, which we