]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: add execution tracer v2 behind GOEXPERIMENT=exectracer2
authorMichael Anthony Knyszek <mknyszek@google.com>
Mon, 8 May 2023 22:29:52 +0000 (22:29 +0000)
committerMichael Knyszek <mknyszek@google.com>
Fri, 10 Nov 2023 15:49:59 +0000 (15:49 +0000)
commit43ffe2a89230553efc9fc915e944b91438d9f1fd
treed96cda88c4247a2a9b4534f518bb52630ae92357
parentf7c5cbb82087c55aa82081e931e0142783700ce8
runtime: add execution tracer v2 behind GOEXPERIMENT=exectracer2

This change mostly implements the design described in #60773 and
includes a new scalable parser for the new trace format, available in
internal/trace/v2. I'll leave this commit message short because this is
clearly an enormous CL with a lot of detail.

This change does not hook up the new tracer into cmd/trace yet. A
follow-up CL will handle that.

For #60773.

Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest,gotip-linux-amd64-longtest-race
Change-Id: I5d2aca2cc07580ed3c76a9813ac48ec96b157de0
Reviewed-on: https://go-review.googlesource.com/c/go/+/494187
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
100 files changed:
src/cmd/compile/internal/test/inl_test.go
src/cmd/trace/annotations_test.go
src/cmd/trace/trace_unix_test.go
src/go/build/deps_test.go
src/internal/goexperiment/exp_exectracer2_off.go [new file with mode: 0644]
src/internal/goexperiment/exp_exectracer2_on.go [new file with mode: 0644]
src/internal/goexperiment/flags.go
src/internal/trace/v2/base.go [new file with mode: 0644]
src/internal/trace/v2/batch.go [new file with mode: 0644]
src/internal/trace/v2/batchcursor.go [new file with mode: 0644]
src/internal/trace/v2/batchcursor_test.go [new file with mode: 0644]
src/internal/trace/v2/event.go [new file with mode: 0644]
src/internal/trace/v2/event/event.go [new file with mode: 0644]
src/internal/trace/v2/event/go122/event.go [new file with mode: 0644]
src/internal/trace/v2/event/requirements.go [new file with mode: 0644]
src/internal/trace/v2/event_test.go [new file with mode: 0644]
src/internal/trace/v2/generation.go [new file with mode: 0644]
src/internal/trace/v2/internal/testgen/go122/trace.go [new file with mode: 0644]
src/internal/trace/v2/mkexp.bash [new file with mode: 0755]
src/internal/trace/v2/order.go [new file with mode: 0644]
src/internal/trace/v2/raw/doc.go [new file with mode: 0644]
src/internal/trace/v2/raw/event.go [new file with mode: 0644]
src/internal/trace/v2/raw/reader.go [new file with mode: 0644]
src/internal/trace/v2/raw/textreader.go [new file with mode: 0644]
src/internal/trace/v2/raw/textwriter.go [new file with mode: 0644]
src/internal/trace/v2/raw/writer.go [new file with mode: 0644]
src/internal/trace/v2/reader.go [new file with mode: 0644]
src/internal/trace/v2/reader_test.go [new file with mode: 0644]
src/internal/trace/v2/resources.go [new file with mode: 0644]
src/internal/trace/v2/testdata/README.md [new file with mode: 0644]
src/internal/trace/v2/testdata/cmd/gotraceraw/main.go [new file with mode: 0644]
src/internal/trace/v2/testdata/cmd/gotracevalidate/main.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generate.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-confuse-seq-across-generations.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-go-create-without-running-g.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-gen-boundary-bare-m.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-gen-boundary-reacquire-new-proc-bare-m.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-gen-boundary-reacquire-new-proc.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-gen-boundary.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-reacquire-new-proc-bare-m.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-reacquire-new-proc.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-simple-bare-m.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-simple.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-syscall-steal-proc-sitting-in-syscall.go [new file with mode: 0644]
src/internal/trace/v2/testdata/generators/go122-task-across-generations.go [new file with mode: 0644]
src/internal/trace/v2/testdata/mktests.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/annotations-stress.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/annotations.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/cgo-callback.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/cpu-profile.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/futile-wakeup.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/gc-stress.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/gomaxprocs.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/many-start-stop.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/stacks.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/stress-start-stop.go [new file with mode: 0644]
src/internal/trace/v2/testdata/testprog/stress.go [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-confuse-seq-across-generations.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-go-create-without-running-g.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-gen-boundary-bare-m.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-gen-boundary-reacquire-new-proc-bare-m.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-gen-boundary-reacquire-new-proc.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-gen-boundary.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-reacquire-new-proc-bare-m.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-reacquire-new-proc.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-simple-bare-m.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-simple.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-syscall-steal-proc-sitting-in-syscall.test [new file with mode: 0644]
src/internal/trace/v2/testdata/tests/go122-task-across-generations.test [new file with mode: 0644]
src/internal/trace/v2/testtrace/expectation.go [new file with mode: 0644]
src/internal/trace/v2/testtrace/format.go [new file with mode: 0644]
src/internal/trace/v2/testtrace/validation.go [new file with mode: 0644]
src/internal/trace/v2/trace_test.go [new file with mode: 0644]
src/internal/trace/v2/value.go [new file with mode: 0644]
src/internal/trace/v2/version/version.go [new file with mode: 0644]
src/runtime/crash_cgo_test.go
src/runtime/extern.go
src/runtime/lockrank_on.go
src/runtime/mgc.go
src/runtime/mgcmark.go
src/runtime/proc.go
src/runtime/runtime1.go
src/runtime/runtime2.go
src/runtime/sizeof_test.go
src/runtime/trace.go
src/runtime/trace/annotation_test.go
src/runtime/trace/trace_stack_test.go
src/runtime/trace/trace_test.go
src/runtime/trace2.go [new file with mode: 0644]
src/runtime/trace2buf.go [new file with mode: 0644]
src/runtime/trace2cpu.go [new file with mode: 0644]
src/runtime/trace2event.go [new file with mode: 0644]
src/runtime/trace2map.go [new file with mode: 0644]
src/runtime/trace2region.go [new file with mode: 0644]
src/runtime/trace2runtime.go [new file with mode: 0644]
src/runtime/trace2stack.go [new file with mode: 0644]
src/runtime/trace2status.go [new file with mode: 0644]
src/runtime/trace2string.go [new file with mode: 0644]
src/runtime/trace2time.go [new file with mode: 0644]
src/runtime/trace_cgo_test.go