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

John Cuthbertson john.cuthbertson at oracle.com
Tue Feb 26 18:28:11 UTC 2013

Hi Everyone,

I've only received (and incorporated) comments from Vitaly Davidovich so 
I'm pinging the list again. Any takers? It's quite small - the main part 
of the fix is in G1CollectorPolicy::finalize_cset().



On 1/29/2013 1:35 PM, John Cuthbertson wrote:
> Hi Everyone,
> Here's a new webrev based upon feedback from Vitaly: 
> http://cr.openjdk.java.net/~johnc/8007036/webrev.1/
> JohnC
> On 1/28/2013 1:59 PM, John Cuthbertson wrote:
>> 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