]> Cypherpunks.ru repositories - gostls13.git/commit
runtime/trace: add missing events for the locked g in extra M.
authordoujiang24 <doujiang24@gmail.com>
Sat, 24 Sep 2022 11:15:43 +0000 (11:15 +0000)
committerGopher Robot <gobot@golang.org>
Tue, 27 Sep 2022 16:37:51 +0000 (16:37 +0000)
commitfb6c210dc3c3f1f211b469214f0ec1c881fd088e
tree279ae833c523b347467dc29397b1623c509558e4
parent48a58c5d2c24bcba9cd141b3c3d6344d52274bbd
runtime/trace: add missing events for the locked g in extra M.

Extra Ms may lead to the "no consistent ordering of events possible" error when parsing trace file with cgo enabled, since:
1. The gs in the extra Ms may be in `_Gdead` status while starting trace by invoking `runtime.StartTrace`,
2. and these gs will trigger `traceEvGoSysExit` events in `runtime.exitsyscall` when invoking go functions from c,
3. then, the events of those gs are under non-consistent ordering, due to missing the previous events.

Add two events, `traceEvGoCreate` and `traceEvGoInSyscall`, in `runtime.StartTrace`, will make the trace parser happy.

Fixes #29707

Change-Id: I2fd9d1713cda22f0ddb36efe1ab351f88da10881
GitHub-Last-Rev: 7bbfddb81b70041250e3c59ce53bea44f7afd2c3
GitHub-Pull-Request: golang/go#54974
Reviewed-on: https://go-review.googlesource.com/c/go/+/429858
Run-TryBot: Michael Pratt <mpratt@google.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Run-TryBot: xie cui <523516579@qq.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Michael Pratt <mpratt@google.com>
src/internal/trace/goroutines.go
src/runtime/crash_cgo_test.go
src/runtime/proc.go
src/runtime/runtime2.go
src/runtime/testdata/testprogcgo/issue29707.go [new file with mode: 0644]
src/runtime/trace.go