From: Austin Clements Date: Tue, 18 Jul 2017 15:21:15 +0000 (-0400) Subject: runtime: move tSweepTerm capture closer to STW X-Git-Tag: go1.9rc1~24 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=73d02735734e1ed1e4d1f5a7c534206596f3903a;p=gostls13.git runtime: move tSweepTerm capture closer to STW tSweepTerm and pauseStart are supposed to be when STW was triggered, but right now they're captured a bit before STW. Move these down to immediately before we trigger STW. Fixes #19590. Change-Id: Icd48a5c4d45c9b36187ff986e4f178b5064556c1 Reviewed-on: https://go-review.googlesource.com/49612 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 705fe697bb..111fa781e1 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -1248,13 +1248,13 @@ func gcStart(mode gcMode, trigger gcTrigger) { gcResetMarkState() - now := nanotime() work.stwprocs, work.maxprocs = gcprocs(), gomaxprocs - work.tSweepTerm = now work.heap0 = atomic.Load64(&memstats.heap_live) work.pauseNS = 0 work.mode = mode + now := nanotime() + work.tSweepTerm = now work.pauseStart = now systemstack(stopTheWorldWithSema) // Finish sweep before we start concurrent scan.