RFR: 8316297: GenShen: Degenerated GCs fail to make progress
Kelvin Nilsen
kdnilsen at openjdk.org
Thu Sep 14 14:38:42 UTC 2023
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.
-------------
Commit messages:
- Include memory reserved for Collector when computing evacuation budget
Changes: https://git.openjdk.org/shenandoah/pull/324/files
Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=324&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8316297
Stats: 18 lines in 3 files changed: 14 ins; 0 del; 4 mod
Patch: https://git.openjdk.org/shenandoah/pull/324.diff
Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/324/head:pull/324
PR: https://git.openjdk.org/shenandoah/pull/324
More information about the shenandoah-dev
mailing list