RFR(M) 8150721: Don't explicitly manage G1 young regions in YoungList
Mikael Gerdin
mikael.gerdin at oracle.com
Thu Apr 28 12:37:47 UTC 2016
Hi,
Please review this change to change G1 to stop explicit tracking of all
young regions in the YoungList class.
With JDK-8150393 the survivor regions are tracked in a GrowableArray.
This removes the final dependency on keeping a linked list of young
regions in YoungList and this change is a cleanup to get rid of a lot of
code related to that.
There are a few notable changes due to this cleanup:
* During full GCs, calls to uninstall the surv rate group for young
regions were moved to TearDownRegionSetsClosure
* The young RSet sampling thread can no longer iterate over the young
list to sample RSets, it must instead walk the incremental collection
set. I would argue that this is more correct anyway since eden regions
which had not yet been added to the collection set would not have any
interesting RSets anyway.
I decided to make eden and survivors two different classes for now,
since it's more clear that they are actually distinct that way.
The reason for keeping G1EdenRegions around when it's practically empty
is that I plan to move the eden SurvRateGroup object these YoungList
replacements to get rid of set_region_{eden,survivor}
Webrevs:
Webrev for entire change
http://cr.openjdk.java.net/~mgerdin/8150721/webrev.0.full/
Webrev for not tracking regions in YoungList
http://cr.openjdk.java.net/~mgerdin/8150721/webrev.0.notrack/
Webrev for splitting and renaming the remains of YoungList
http://cr.openjdk.java.net/~mgerdin/8150721/webrev.0.rename/
Bug: https://bugs.openjdk.java.net/browse/JDK-8150721
Testing: RBT GC Testing, Aurora performance testing shows no significant
regressions
Thanks
/Mikael
More information about the hotspot-gc-dev
mailing list