Integrated: Do not apply evacuation budgets in non-generational mode
William Kemper
wkemper at openjdk.org
Fri Nov 18 19:52:42 UTC 2022
On Thu, 17 Nov 2022 23:15:28 GMT, William Kemper <wkemper at openjdk.org> wrote:
> CSet selection for non-generational mode was using a value configured on the young generation. In non-generational modes we do not maintain all the attributes of the young generation (instead we maintain the _global_ generation). This caused many cycles in which the maximum CSet was zero (or close to it). This, in turn, caused the collector to run much more frequently (approximately 3x on specjbb) which caused severe performance regression in critical jops.
>
> I'm not sure why the diff algorithm is struggling so much with these changes. I pulled up the `mode()->is_generational()` out of `compute_evacuation_budgets` and `adjust_evacuation_budgets` into the caller and replaced the check with an assert (re-indenting the code in the method).
This pull request has now been integrated.
Changeset: fe51a9bb
Author: William Kemper <wkemper at openjdk.org>
URL: https://git.openjdk.org/shenandoah/commit/fe51a9bb089787bc82f96c33b950fe5ac1f4149d
Stats: 721 lines in 2 files changed: 210 ins; 219 del; 292 mod
Do not apply evacuation budgets in non-generational mode
Reviewed-by: kdnilsen
-------------
PR: https://git.openjdk.org/shenandoah/pull/171
More information about the shenandoah-dev
mailing list