From 1e436ba668f5988ca8fbeb68734800b9dcf33dbc Mon Sep 17 00:00:00 2001 From: Carlos Amedee Date: Wed, 30 Apr 2025 15:17:45 -0400 Subject: runtime: only poll network from one P at a time in findRunnable This change reintroduces CL 564197. It was reverted due to a failing benchmark. That failure has been resolved. For #65064 Change-Id: Ic88841d2bc24c2717ad324873f0f52699f21dc66 Reviewed-on: https://go-review.googlesource.com/c/go/+/669235 LUCI-TryBot-Result: Go LUCI Reviewed-by: Mauri de Souza Meneguzzo Reviewed-by: Michael Knyszek Reviewed-by: Michael Pratt --- src/runtime/runtime2.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/runtime/runtime2.go') diff --git a/src/runtime/runtime2.go b/src/runtime/runtime2.go index da6791f9d2..920437882d 100644 --- a/src/runtime/runtime2.go +++ b/src/runtime/runtime2.go @@ -760,9 +760,10 @@ type p struct { } type schedt struct { - goidgen atomic.Uint64 - lastpoll atomic.Int64 // time of last network poll, 0 if currently polling - pollUntil atomic.Int64 // time to which current poll is sleeping + goidgen atomic.Uint64 + lastpoll atomic.Int64 // time of last network poll, 0 if currently polling + pollUntil atomic.Int64 // time to which current poll is sleeping + pollingNet atomic.Int32 // 1 if some P doing non-blocking network poll lock mutex -- cgit v1.3