go/src/internal
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
..
cpu all: fix easy-to-miss typos 2017-08-23 03:07:12 +00:00
nettrace net, net/http: don't trace DNS dials 2016-05-14 00:14:25 +00:00
poll internal/poll: add tests for Windows file and serial ports 2017-08-11 04:10:13 +00:00
race testing: mark tests and benchmarks failed if a race occurs during execution 2016-11-03 18:19:49 +00:00
singleflight
syscall internal/syscall/windows: add GetModuleFileName 2016-11-07 22:18:24 +00:00
testenv cmd/link: skip TestDWARF when cgo is disabled 2017-03-30 22:32:33 +00:00
trace runtime,cmd/trace: trace GC STW events 2017-08-29 21:54:55 +00:00