RFR (S): 8048112: G1 Full GC needs to support the case when the very first region is not available
thomas.schatzl at oracle.com
Mon Jul 7 13:53:54 UTC 2014
for support to uncommit regions (JDK-8038423: G1: Uncommit regions
within the heap) within the heap G1 Full GC needs to support the case
when the first region is not available (uncommitted).
Otherwise the VM simply crashes trying to move data into the
So to allow uncommit of regions within the heap, G1 Full GC should
correctly handle the case when the very first region is not available
The change is baesed on two ideas: lazily initialize the compaction
point during iteration of the list of heap regions - as the (serial)
heap iteration is in-order by definition and will never use
non-available regions. Further refactor the code to let the
G1CollectedHeap handle finding the next region to compact into as imo
this is the correct place to find that next region (as it "owns" the
region list at this time).
Without JDK-8038423 this is merely some imo reasonable refactoring.
JPRT, many full ad-hoc runs with JDK-8038423
More information about the hotspot-gc-dev