From ecda82012d3cff21c758fa45eb5e86365015a131 Mon Sep 17 00:00:00 2001 From: Nicolas Hillegeer Date: Thu, 12 Dec 2024 08:35:17 -0800 Subject: [PATCH] runtime: only read pp.m in schedtrace if needed Change-Id: Iad3353431a2ef97c1e0c440bdd84b78cb5ea990e Reviewed-on: https://go-review.googlesource.com/c/go/+/635635 Reviewed-by: Michael Pratt Auto-Submit: Nicolas Hillegeer LUCI-TryBot-Result: Go LUCI --- src/runtime/proc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/proc.go b/src/runtime/proc.go index ce6cf88d0c..c9d04edd07 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -6391,11 +6391,11 @@ func schedtrace(detailed bool) { // Even if we hold schedlock, most data can be changed concurrently. // E.g. (p->m ? p->m->id : -1) can crash if p->m changes from non-nil to nil. for i, pp := range allp { - mp := pp.m.ptr() h := atomic.Load(&pp.runqhead) t := atomic.Load(&pp.runqtail) if detailed { print(" P", i, ": status=", pp.status, " schedtick=", pp.schedtick, " syscalltick=", pp.syscalltick, " m=") + mp := pp.m.ptr() if mp != nil { print(mp.id) } else { -- 2.50.0