The Go execution tracer currently provides a per-P view (default, via /trace) or a per-G view (via /goroutines).
When investigating issues with the scheduler I've frequently found myself wanting a per-M view, as that is the level that the scheduler truly operates on. This makes it easier to see when Ps switch between Ms, when Ms stop, etc.
For #43997, I found the need compelling enough that I built a one-off CL for it in http://golang.org/cl/286972. That CL adds an argument to (almost) every trace type, so I don't think it is acceptable as a general solution, but it would be nice to have a more complete version we could include for real.