RFR(S): 7185699: G1: Prediction model discrepancies
john.cuthbertson at oracle.com
Tue Jul 24 18:15:27 UTC 2012
Can I have a couple of volunteers to review the changes for this CR? The
webrev can be found at: http://cr.openjdk.java.net/~johnc/7185699/webrev.0/.
While I was going through the code for the current mixed GC policy and
the code that adds non-young regions to the collection set, I found a
couple of minor bugs associated with the prediction code. The first was
the calculation of the number of unprocessed dirty card at the start of
the GC - this was using routines that return a number of bytes rather
than the number of entries. As a result we were vastly overestimating
the base pause time. The second was in the code that calculates the GC
efficiency of a non-young region. The GC efficiency of a region is
calculated at the end of marking. The code, however, was using the wrong
routine to predict the number of cards for a given RSet length. It was
using the data collected for young GCs when it should have been using
the data collected for mixed GCs.
The other changes are minor cleanups. These help to slightly increase
the amount of inlining with the Solaris Studio compiler and save an
iteration over the collection set.
Dacapo2006 with Ergonomic output enabled; Dacapo2006 with
PrintLivenessInfo enabled (before and after); GC test suite with
More information about the hotspot-gc-dev