aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Anthony Knyszek <mknyszek@google.com>2025-12-03 23:13:36 +0000
committerMichael Knyszek <mknyszek@google.com>2025-12-05 11:36:56 -0800
commitfe4952f1165c43dcd195ab8b024f79ac5beced8a (patch)
tree903df7affa1d06b6d0cfd6cf93aba1c55d2c902b
parent8947f092a8427674b7628003b873f57d3b6cdd83 (diff)
downloadgo-fe4952f1165c43dcd195ab8b024f79ac5beced8a.tar.xz
runtime: relax threadsSlack in TestReadMetricsSched
runtime.GC is called in the test and may spin up GOMAXPROCS (proportional to the initial count) new threads. We need to be robust to this, and it happens relatively frequently on some platforms. We didn't notice this earlier since the heap is so miniscule that runtime.GC essentially finished instantly without all the threads getting spun up. Fixes #76613. Change-Id: I2af02cb090d5c1c952e4db53ad35895b6f23f638 Reviewed-on: https://go-review.googlesource.com/c/go/+/726642 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
-rw-r--r--src/runtime/testdata/testprog/schedmetrics.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/runtime/testdata/testprog/schedmetrics.go b/src/runtime/testdata/testprog/schedmetrics.go
index 8e8abc4484..7fad95a976 100644
--- a/src/runtime/testdata/testprog/schedmetrics.go
+++ b/src/runtime/testdata/testprog/schedmetrics.go
@@ -91,8 +91,10 @@ func SchedMetrics() {
// threads through frequent scheduling, like mayMoreStackPreempt.
// A slack of 5 is arbitrary but appears to be enough to cover
// the leftovers plus any inflation from scheduling-heavy build
- // modes.
- const threadsSlack = 5
+ // modes. We then also add initialGMP to this slack, since we're
+ // about to call runtime.GC, and in the worst case this will
+ // spin up GOMAXPROCS new threads to run those workers.
+ threadsSlack := 5 + uint64(initialGMP)
// Make sure GC isn't running, since GC workers interfere with
// expected counts.