1
0
mirror of https://github.com/golang/go synced 2024-11-12 13:00:57 -07:00
go/src/cmd/trace
Austin Clements b0392159f6 runtime,cmd/trace: trace GC STW events
Right now we only kind of sort of trace GC STW events. We emit events
around mark termination, but those start well after stopping the world
and end before starting it again, and we don't emit any events for
sweep termination.

Fix this by generalizing EvGCScanStart/EvGCScanDone. These were
already re-purposed to indicate mark termination (despite the names).
This commit renames them to EvGCSTWStart/EvGCSTWDone, adds an argument
to indicate the STW reason, and shuffles the runtime to generate them
right before stopping the world and right after starting the world,
respectively.

These events will make it possible to generate precise minimum mutator
utilization (MMU) graphs and could be useful in detecting
non-preemptible goroutines (e.g., #20792).

Change-Id: If95783f370781d8ef66addd94886028103a7c26f
Reviewed-on: https://go-review.googlesource.com/55411
Reviewed-by: Rick Hudson <rlh@golang.org>
2017-08-29 21:54:55 +00:00
..
doc.go cmd/trace: document that trace viewer is only tested on chromium 2017-04-20 16:44:55 +00:00
goroutines.go
main.go cmd/trace: add -d that prints parsed traces 2017-08-28 20:40:49 +00:00
pprof.go runtime/pprof/internal/profile: move internal/pprof/profile here 2017-02-24 20:45:21 +00:00
trace_test.go
trace.go runtime,cmd/trace: trace GC STW events 2017-08-29 21:54:55 +00:00