From: Michael Pratt Date: Wed, 15 Mar 2023 17:58:44 +0000 (-0400) Subject: runtime: pass M to traceReleaseBuffer X-Git-Tag: go1.21rc1~1265 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=07a25a9f6e46e83a6335d43b0174dfb250bca960;p=gostls13.git runtime: pass M to traceReleaseBuffer This change is a no-op, but makes the acquire-release pair traceAcquireBuffer / traceReleaseBuffer more explicit, since the former does acquirem and the latter releasm. Change-Id: If8a5b1ba8709bf6f39c8ff27b2d3e0c0b0da0e58 Reviewed-on: https://go-review.googlesource.com/c/go/+/476575 Auto-Submit: Michael Pratt TryBot-Result: Gopher Robot Reviewed-by: Michael Knyszek Run-TryBot: Michael Pratt --- diff --git a/src/runtime/trace.go b/src/runtime/trace.go index b5ba2f503d..174875264c 100644 --- a/src/runtime/trace.go +++ b/src/runtime/trace.go @@ -312,7 +312,7 @@ func StartTrace() error { for i, label := range gcMarkWorkerModeStrings[:] { trace.markWorkerLabels[i], bufp = traceString(bufp, pid, label) } - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) unlock(&trace.bufLock) @@ -676,7 +676,7 @@ func traceEvent(ev byte, skip int, args ...uint64) { // // Note trace_userTaskCreate runs the same check. if !trace.enabled && !mp.startingtrace { - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) return } @@ -686,7 +686,7 @@ func traceEvent(ev byte, skip int, args ...uint64) { } } traceEventLocked(0, mp, pid, bufp, ev, 0, skip, args...) - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) } // traceEventLocked writes a single event of type ev to the trace buffer bufp, @@ -907,11 +907,11 @@ func traceAcquireBuffer() (mp *m, pid int32, bufp *traceBufPtr) { } // traceReleaseBuffer releases a buffer previously acquired with traceAcquireBuffer. -func traceReleaseBuffer(pid int32) { +func traceReleaseBuffer(mp *m, pid int32) { if pid == traceGlobProc { unlock(&trace.bufLock) } - releasem(getg().m) + releasem(mp) } // lockRankMayTraceFlush records the lock ranking effects of a @@ -1499,13 +1499,13 @@ func trace_userTaskCreate(id, parentID uint64, taskType string) { // Same as in traceEvent. mp, pid, bufp := traceAcquireBuffer() if !trace.enabled && !mp.startingtrace { - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) return } typeStringID, bufp := traceString(bufp, pid, taskType) traceEventLocked(0, mp, pid, bufp, traceEvUserTaskCreate, 0, 3, id, parentID, typeStringID) - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) } //go:linkname trace_userTaskEnd runtime/trace.userTaskEnd @@ -1521,13 +1521,13 @@ func trace_userRegion(id, mode uint64, name string) { mp, pid, bufp := traceAcquireBuffer() if !trace.enabled && !mp.startingtrace { - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) return } nameStringID, bufp := traceString(bufp, pid, name) traceEventLocked(0, mp, pid, bufp, traceEvUserRegion, 0, 3, id, mode, nameStringID) - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) } //go:linkname trace_userLog runtime/trace.userLog @@ -1538,7 +1538,7 @@ func trace_userLog(id uint64, category, message string) { mp, pid, bufp := traceAcquireBuffer() if !trace.enabled && !mp.startingtrace { - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) return } @@ -1561,7 +1561,7 @@ func trace_userLog(id uint64, category, message string) { buf.varint(uint64(slen)) buf.pos += copy(buf.arr[buf.pos:], message[:slen]) - traceReleaseBuffer(pid) + traceReleaseBuffer(mp, pid) } // the start PC of a goroutine for tracing purposes. If pc is a wrapper,