RFR: 8295871: G1: Use different explicit claim marks for CLDs

Thomas Schatzl tschatzl at openjdk.org
Wed Nov 9 16:12:59 UTC 2022


On Wed, 9 Nov 2022 13:17:03 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:

>> Hi all,
>> 
>>   can I have reviews for this follow-up to [JDK-8295118](https://bugs.openjdk.org/browse/JDK-8295118) that removes the need to clear CLD claim marks for every full gc phase by using different claim values for the different phases.
>> 
>> Some comments:
>> * I used new g1 specific claim values instead of overloading the existing ones, which is imho clearer. I am open to better names, but something like `_claim_strong_2/3` seemed too cryptic. Then again, there is now a collector specific name in the enum. Maybe the enum values should be made collector-specific in some way? Currently they already are (e.g. `_claim_finalizable` is only used in ZGC) as G1 does not need the values except for (multiple) `_claim_strong`.
>> * I moved the CLD mark verification for the mark phase from `prepare_collection` to the constructor of `G1FullGCMarker`; I think this place is more fitting as directly above there is the use in the `CLDToOopClosure`. Also this pattern aligns with the use in the `G1FullGCAdjustTask`.
>> 
>> Testing: tier1-5
>> 
>> Thanks,
>>   Thomas
>
> If the same technique can be used by Serial/Parallel (I believe so), I'd prefer sth more generic, `_claim_stw_fullgc_mark/adjust`.
> 
> (I am surprised that `_claim_finalizable` is used only by ZGC -- this essentially mirrors finalizable/strong marking, needed for conc ref-processing.)

@albertnetymk : I'll change the names according your suggestions and implement the optimization for serial/parallel gc too. Currently testing.

-------------

PR: https://git.openjdk.org/jdk/pull/10989


More information about the hotspot-dev mailing list