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