runtime: scheduler testing controls #54475
Labels
compiler/runtime
Issues related to the Go compiler and/or runtime.
NeedsFix
The path to resolution is known, but the work has not been done.
Milestone
Today, it is difficult to trigger specific conditions in the scheduler from a high level Go level. This is because certain behaviors or bugs only manifest via certain multi-threaded race conditions that are difficult or impossible to guarantee. As a result, fixes for bugs in the scheduler often either have strange probabilistic tests that try to entice the scheduler into a specific state (and likely degrade quickly), or they go untested entirely because they are too difficult to reproduce.
Scheduler maintainability could be greatly improved through some kind of testing framework that makes it possible to directly achieve some of these states. There are many forms this could take. e.g., the ability to construct a test scheduler with fake Ms, Ps, and Gs whose states can be explicitly transitioned.
The text was updated successfully, but these errors were encountered: