RFR(S): 7185699: G1: Prediction model discrepancies

John Cuthbertson john.cuthbertson at oracle.com
Tue Jul 24 18:15:27 UTC 2012

Hi Everyone,

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 
verification; jprt.



More information about the hotspot-gc-dev mailing list