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