aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/traceruntime.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/runtime/traceruntime.go b/src/runtime/traceruntime.go
index 06e36fd802..7df6f68b70 100644
--- a/src/runtime/traceruntime.go
+++ b/src/runtime/traceruntime.go
@@ -29,6 +29,7 @@ type mTraceState struct {
buf [2][tracev2.NumExperiments]*traceBuf // Per-M traceBuf for writing. Indexed by trace.gen%2.
link *m // Snapshot of alllink or freelink.
reentered uint32 // Whether we've reentered tracing from within tracing.
+ entryGen uintptr // The generation value on first entry.
oldthrowsplit bool // gp.throwsplit upon calling traceLocker.writer. For debugging.
}
@@ -212,7 +213,7 @@ func traceAcquireEnabled() traceLocker {
// that it is.
if mp.trace.seqlock.Load()%2 == 1 {
mp.trace.reentered++
- return traceLocker{mp, trace.gen.Load()}
+ return traceLocker{mp, mp.trace.entryGen}
}
// Acquire the trace seqlock. This prevents traceAdvance from moving forward
@@ -240,6 +241,7 @@ func traceAcquireEnabled() traceLocker {
releasem(mp)
return traceLocker{}
}
+ mp.trace.entryGen = gen
return traceLocker{mp, gen}
}