RFR: 8275056: Virtualize G1CardSet containers over heap region [v8]
Thomas Schatzl
tschatzl at openjdk.java.net
Mon Nov 15 08:45:50 UTC 2021
On Sun, 14 Nov 2021 22:40:26 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:
>> Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains eight commits:
>>
>> - Merge branch 'master' into 8275056-virtualize-g1cardset-containers2
>> - ayang review1
>> - Limit ergonomics to 32m regions
>> - sjohanss review
>> - Fix assert after merge - the assert depends on current heap region configuration, so move it to the correct constructor
>> - Merge branch 'master' into 8275056-virtualize-g1cardset-containers2
>> - 32 bit compatibility - limit region size to 32M there as before. Fix test.
>> - Virtual heap regions in remembered sets
>
> src/hotspot/share/gc/g1/heapRegionRemSet.inline.hpp line 105:
>
>> 103: region_idx >> _log_card_regions_per_region,
>> 104: (region_idx & _card_regions_per_region_mask) << _log_card_region_size);
>> 105: _card_set->iterate_cards_or_ranges_in_container(card_set, cl);
>
> `region_idx` is actually `card_region_idx`, right? If so, `card_region_idx >> _log_card_regions_per_region` ==> `region_idx` (the second arg of `G1ContainerCardsOrRanges` constructor) makes sense to me.
Yes, that is the unchanged "region" that the hash table for the containers sees, which is the `card_region_idx` at this level.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6059
More information about the hotspot-gc-dev
mailing list