]> Cypherpunks repositories - gostls13.git/commit
runtime: improve work stealing randomness
authorKeith Randall <khr@golang.org>
Tue, 7 Dec 2021 17:22:33 +0000 (09:22 -0800)
committerKeith Randall <khr@golang.org>
Tue, 1 Mar 2022 18:43:08 +0000 (18:43 +0000)
commit510ad4561f859f66e5a2d22a73ce8253d19ede3e
treee878180529be323c4928561b32a894ee8254b4c8
parentd9fd9201ad214e8da769a9338b9d3a5f3e1bc980
runtime: improve work stealing randomness

For certain values of GOMAXPROCS, the current code is less random than
it looks. For example with GOMAXPROCS=12, there are 4 coprimes: 1 5 7 11.
That's bad, as 12 and 4 are not relatively prime. So if pos == 2, then we
always pick 7 as the inc. We want to pick pos and inc independently
at random.

Change-Id: I5c7e4f01f9223cbc2db12a685dc0bced2cf39abf
Reviewed-on: https://go-review.googlesource.com/c/go/+/369976
Run-TryBot: Keith Randall <khr@golang.org>
Trust: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
src/runtime/proc.go
src/runtime/proc_runtime_test.go