Integrated: 8316297: GenShen: Degenerated GCs fail to make progress

Kelvin Nilsen kdnilsen at openjdk.org
Fri Sep 15 00:13:17 UTC 2023


On Thu, 14 Sep 2023 14:32:42 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

> A recent change to the implementation of ShenandoahYoungGeneration::available() resulted in a budgeting shortfall during degenerated GC.  The problem is that we degenerate after mutator allocations fail, at which time young available memory is in very short supply.  The change to available() caused us to only see the mutator budget, which has been depleted.  This resulted in a very high probability that degenerated GC would fail to make progress, forcing degenerated GC to upgrade to full GC.
> 
> This PR makes the Collector reserve memory visible to the function that computes evacuation budgets, thereby increasing the likelihood of a successful degenerated cycle and obviating the need for a Full GC.

This pull request has now been integrated.

Changeset: 88365d18
Author:    Kelvin Nilsen <kdnilsen at openjdk.org>
URL:       https://git.openjdk.org/shenandoah/commit/88365d181181e9d3fb267229691843e0c2971c00
Stats:     18 lines in 3 files changed: 14 ins; 0 del; 4 mod

8316297: GenShen: Degenerated GCs fail to make progress

Reviewed-by: wkemper

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

PR: https://git.openjdk.org/shenandoah/pull/324


More information about the shenandoah-dev mailing list