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