RFR: 8352091: GenShen: assert(!(request.generation->is_old() && _heap->old_generation()->is_doing_mixed_evacuations())) failed: Old heuristic should not request cycles while it waits for mixed evacuation

Roman Kennke rkennke at openjdk.org
Fri Mar 21 15:56:21 UTC 2025


On Fri, 14 Mar 2025 23:45:28 GMT, William Kemper <wkemper at openjdk.org> wrote:

> Consider the following:
> 1. Regulator thread sees that control thread is `idle` and requests an old cycle
> 2. Regulator thread waits until control thread is not `idle`
> 3. Control thread starts old cycle and notifies the Regulator thread (as expected)
> 4. Regulator thread stays off CPU for a _long_ time
> 5. Control thread _completes_ old marking and returns to `idle` state
> 6. Regulator thread finally wakes up and sees that Control thread is _still_ idle
> 7. In fact, the control thread has completed old marking and the regulator thread should not request another cycle

Looks reasonable.

-------------

Marked as reviewed by rkennke (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/24069#pullrequestreview-2706448918


More information about the shenandoah-dev mailing list