RFR(S): 8007036: G1: Too many old regions added to last mixed GC

John Cuthbertson john.cuthbertson at oracle.com
Mon Jan 28 21:59:45 UTC 2013


Hi Everyone,

Can I have a couple of volunteers look over the changes for this CR? The 
webrev is at: http://cr.openjdk.java.net/~johnc/8007036/webrev.0/

Summary:
When adding old regions to the collection set we don't take into account 
whether the old regions added so far take us below the 
G1HeapWastePercent. As a result we could end up adding (and collecting) 
many more regions than we needed to. The actual number added was the 
minimum between the number of candidate regions / G1MixedGCCountTarget 
and 10% of the heap.

Currently the calculation of the reclaimable bytes as a percentage of 
the uses exact arithmetic. It might make sense, at some point in the 
future, to use inexact arithmetic (rounding) in the decision on whether 
to continue mixed GCs and use exact arithmetic when adding regions.

As part of this change I've also moved a couple routines from 
CollectionSetChooser to G1CollectorPolicy. I think they "fit" better in 
G1CollectorPolicy.

Testing:
GCOld with tenuring threshold = 1 and a marking threshold = 10.

Many thanks to Monica for identifying the issue.

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list