RFR(S): 8155209: Move setting of young index in cset to G1CollectionSet

Mikael Gerdin mikael.gerdin at oracle.com
Wed Apr 27 10:08:32 UTC 2016

Hi all,

Please review this change to how _young_index_in_cset is set in HeapRegions.

G1 maintains a numbering of all young regions in the collection set in 
order to record the amount of bytes copied from each young region in a 
convenient fashion.
This done by having a _young_index_in_cset member in each HeapRegion 
which is -1 for non-young and >= 0 for young regions.

This change moves the responsibility for setting this value to 
G1CollectionSet, where it's easier to verify that the indices are set in 
the correct manner for survivor and eden regions instead of relying on 
YoungList and its state changes to ensure that the indices are correct 
and unique.

The new code is in my mind much more straightforward in how the indices 
are set up but still I've added some verification code to ensure that 
there are no collisions in the numbering.

This change is part of an effort to simplify the YoungList code.

Testing: JPRT
Bug: https://bugs.openjdk.java.net/browse/JDK-8155209
Webrev: http://cr.openjdk.java.net/~mgerdin/8155209/webrev.0/


More information about the hotspot-gc-dev mailing list