Integrated: 8329528: G1 does not update TAMS correctly when dropping retained regions during Concurrent Start pause
Thomas Schatzl
tschatzl at openjdk.org
Thu Apr 11 11:37:51 UTC 2024
On Tue, 9 Apr 2024 12:44:51 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
> Hi all,
>
> please review this change to fix the problem that when g1 ages out regions from the retained region collection set candidate list during a concurrent start gc, the `TAMS`es of these regions are not set correctly.
>
> The change achieves this by changing the order of some calculations in `G1YoungCollector::pre_evacuate_collection_set`: instead of setting `TAMS`es before collection set calculation, do it later, adjusting the predicate determining whether to update the `TAMS`es at concurrent start pause start to exclude regions in the collection set.
>
> Several attempts for different fixes were tried, one of them is still viewable by only considering the changesets before the "alternate implementation" commit. However they quickly grew to fairly large size and complicated the code a lot.
>
> Testing: tier1-3, test case not failing any more
>
> Thanks,
> Thomas
This pull request has now been integrated.
Changeset: ff5c9a4d
Author: Thomas Schatzl <tschatzl at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/ff5c9a4ddecbe3ee453a30fcfd49fd677c174f06
Stats: 85 lines in 4 files changed: 77 ins; 5 del; 3 mod
8329528: G1 does not update TAMS correctly when dropping retained regions during Concurrent Start pause
Reviewed-by: ayang, iwalulya
-------------
PR: https://git.openjdk.org/jdk/pull/18692
More information about the hotspot-gc-dev
mailing list