]> Cypherpunks.ru repositories - gostls13.git/commitdiff
runtime: hide trace lock init details
authorMichael Anthony Knyszek <mknyszek@google.com>
Tue, 9 May 2023 19:48:29 +0000 (19:48 +0000)
committerGopher Robot <gobot@golang.org>
Thu, 11 May 2023 19:07:04 +0000 (19:07 +0000)
This change is in service of hiding more execution trace implementation
details for big changes to come.

Change-Id: I49b9716a7bf285d23c86b58912a05eff4ddc2213
Reviewed-on: https://go-review.googlesource.com/c/go/+/494182
Reviewed-by: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>

src/runtime/proc.go
src/runtime/trace.go

index db4eb21cb856b9e418c398fc25ce1448db6b23c4..4fb4595a50cad5ed2789351795d4fe5ed889e1c9 100644 (file)
@@ -691,11 +691,8 @@ func schedinit() {
        lockInit(&allpLock, lockRankAllp)
        lockInit(&reflectOffs.lock, lockRankReflectOffs)
        lockInit(&finlock, lockRankFin)
-       lockInit(&trace.bufLock, lockRankTraceBuf)
-       lockInit(&trace.stringsLock, lockRankTraceStrings)
-       lockInit(&trace.lock, lockRankTrace)
        lockInit(&cpuprof.lock, lockRankCpuprof)
-       lockInit(&trace.stackTab.lock, lockRankTraceStackTab)
+       traceLockInit()
        // Enforce that this lock is always a leaf lock.
        // All of this lock's critical sections should be
        // extremely short.
index 5eb68271d10e6c36c49d2cadf9bea3873c4fdcfa..860b53bdbb974e502cd817777c332666347dce21 100644 (file)
@@ -168,6 +168,14 @@ var trace struct {
        buf     traceBufPtr // global trace buffer, used when running without a p
 }
 
+// traceLockInit initializes global trace locks.
+func traceLockInit() {
+       lockInit(&trace.bufLock, lockRankTraceBuf)
+       lockInit(&trace.stringsLock, lockRankTraceStrings)
+       lockInit(&trace.lock, lockRankTrace)
+       lockInit(&trace.stackTab.lock, lockRankTraceStackTab)
+}
+
 // traceBufHeader is per-P tracing buffer.
 type traceBufHeader struct {
        link      traceBufPtr             // in trace.empty/full