diff options
author | Michael Pratt <mpratt@google.com> | 2021-02-11 14:09:10 -0500 |
---|---|---|
committer | Michael Pratt <mpratt@google.com> | 2022-08-02 18:51:22 +0000 |
commit | 74cee276fe59013d042658f54c7340befa3ecad6 (patch) | |
tree | e0871d85590fa6f3b8fd28be03b2e41280543d7c | |
parent | 222799fde653358d9748ed24c133cffa18208951 (diff) | |
download | go-74cee276fe59013d042658f54c7340befa3ecad6.tar.gz go-74cee276fe59013d042658f54c7340befa3ecad6.zip |
runtime: tricky replacements of _g_ in trace.go
Like previous CLs, cases where the getg() G is used only to access the M
are replaced with direct uses of mp.
Change-Id: I4740c80d6b4997d051a52afcfa8c087e0317dab3
Reviewed-on: https://go-review.googlesource.com/c/go/+/418579
Reviewed-by: Austin Clements <austin@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Michael Pratt <mpratt@google.com>
-rw-r--r-- | src/runtime/trace.go | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/src/runtime/trace.go b/src/runtime/trace.go index 409f10c838..4793d191e8 100644 --- a/src/runtime/trace.go +++ b/src/runtime/trace.go @@ -232,14 +232,12 @@ func StartTrace() error { // - or GoSysExit appears for a goroutine for which we don't emit EvGoInSyscall below. // To instruct traceEvent that it must not ignore events below, we set startingtrace. // trace.enabled is set afterwards once we have emitted all preliminary events. - _g_ := getg() - _g_.m.startingtrace = true + mp := getg().m + mp.startingtrace = true // Obtain current stack ID to use in all traceEvGoCreate events below. - mp := acquirem() stkBuf := make([]uintptr, traceStackSize) stackID := traceStackID(mp, stkBuf, 2) - releasem(mp) profBuf := newProfBuf(2, profBufWordCount, profBufTagCount) // after the timestamp, header is [pp.id, gp.goid] trace.cpuLogRead = profBuf @@ -293,7 +291,7 @@ func StartTrace() error { trace.strings = make(map[string]uint64) trace.seqGC = 0 - _g_.m.startingtrace = false + mp.startingtrace = false trace.enabled = true // Register runtime goroutine labels. @@ -782,19 +780,18 @@ func traceReadCPU() { } func traceStackID(mp *m, buf []uintptr, skip int) uint64 { - _g_ := getg() - gp := mp.curg + gp := getg() + curgp := mp.curg var nstk int - if gp == _g_ { + if curgp == gp { nstk = callers(skip+1, buf) - } else if gp != nil { - gp = mp.curg - nstk = gcallers(gp, skip, buf) + } else if curgp != nil { + nstk = gcallers(curgp, skip, buf) } if nstk > 0 { nstk-- // skip runtime.goexit } - if nstk > 0 && gp.goid == 1 { + if nstk > 0 && curgp.goid == 1 { nstk-- // skip runtime.main } id := trace.stackTab.put(buf[:nstk]) |