RFR: 8342382: Implementation of JEP G1: Improve Application Throughput with a More Efficient Write-Barrier [v5]
Ivan Walulya
iwalulya at openjdk.org
Tue Mar 4 09:43:54 UTC 2025
On Tue, 4 Mar 2025 08:26:10 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:
>> src/hotspot/share/gc/g1/g1CollectionSet.cpp line 310:
>>
>>> 308: verify_young_cset_indices();
>>> 309:
>>> 310: size_t card_rs_length = _policy->analytics()->predict_card_rs_length(in_young_only_phase);
>>
>> Why are we using a prediction here? Additionally, won't this prediction also include cards from the old gen regions in case of mixed gcs? How do we reconcile that when we are adding old gen regions to c-set?
>
>> Why are we using a prediction here?
>
> Quickly checking again, do we have the actual count here from somewhere?
>
>> Additionally, won't this prediction also include cards from the old gen regions in case of mixed gcs? How do we reconcile that when we are adding old gen regions to c-set?
>
> The predictor contents changed to (supposedly) only contain cards containing young gen references. See g1Policy.cpp:934:
>
> _analytics->report_card_rs_length(total_cards_scanned - total_non_young_rs_cards, is_young_only_pause);
Fair, I missed that details on young RS have been removed.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23739#discussion_r1979022900
More information about the core-libs-dev
mailing list