diff options
author | Michael Anthony Knyszek <mknyszek@google.com> | 2022-03-24 18:06:47 +0000 |
---|---|---|
committer | Michael Knyszek <mknyszek@google.com> | 2022-04-26 22:09:56 +0000 |
commit | d8cf2243e0ed1c498ed405432c10f9596815a582 (patch) | |
tree | 232932540973750ad335a8c65d606e068722460e /src/runtime/export_test.go | |
parent | 13b18ec947c9589b47f058d7e7b95e60fcdb3fc9 (diff) | |
download | go-d8cf2243e0ed1c498ed405432c10f9596815a582.tar.gz go-d8cf2243e0ed1c498ed405432c10f9596815a582.zip |
runtime: disable idle mark workers with at least one dedicated worker
This change completes the proposal laid out in #44163. With #44313
resolved, we now ensure that stopped Ms are able to wake up and become
dedicated GC workers. As a result, idle GC workers are in theory no
longer required to be a proxy for scheduling dedicated mark workers.
And, with at least one dedicated mark worker running (which is
non-preemptible) we ensure the GC makes progress in all circumstances
when at least one is running. Currently we ensure at least one idle mark
worker is available at all times because it's possible before #44313
that a dedicated worker doesn't ever get scheduled, leading to a
deadlock if user goroutines block on a GC completing. But now that extra
idle mark worker should be unnecessary to ensure GC progress when at
least one dedicated mark worker is going to be scheduled.
Fixes #44163.
Change-Id: I62889ef2db4e69d44da883e8e6eebcfe5398c86d
Reviewed-on: https://go-review.googlesource.com/c/go/+/395634
Reviewed-by: Michael Pratt <mpratt@google.com>
Run-TryBot: Michael Knyszek <mknyszek@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/runtime/export_test.go')
0 files changed, 0 insertions, 0 deletions