]> Cypherpunks repositories - gostls13.git/commit
runtime: use only dedicated mark workers at reasonable GOMAXPROCS
authorAustin Clements <austin@google.com>
Wed, 4 Oct 2017 21:07:09 +0000 (17:07 -0400)
committerAustin Clements <austin@google.com>
Fri, 13 Oct 2017 20:52:55 +0000 (20:52 +0000)
commit315c28b788285e1a683057e4a90eacbfc401d1be
tree281b18d14d66f58673a4d1deb2758ef26d840b0f
parent27923482fa0b9684a2b672b3f88267d9858e3e79
runtime: use only dedicated mark workers at reasonable GOMAXPROCS

When GOMAXPROCS is not small, fractional workers don't add much to
throughput, but they do add to the latency of individual goroutines.
In this case, it makes sense to just use dedicated workers, even if we
can't exactly hit the 25% CPU goal with dedicated workers.

This implements this logic by computing the number of dedicated mark
workers that will us closest to the 25% target. We only fall back to
fractional workers if that would be more than 30% off of the target
(less than 17.5% or more than 32.5%, which in practice happens for
GOMAXPROCS <= 3 and GOMAXPROCS == 6).

Updates #21698.

Change-Id: I484063adeeaa1190200e4ef210193a20e635d552
Reviewed-on: https://go-review.googlesource.com/68571
Reviewed-by: Rick Hudson <rlh@golang.org>
src/runtime/mgc.go