RFR (XXS): 8049051: Use of during_initial_mark_pause() in G1CollectorPolicy::record_collection_pause_end() prevents use of seperate object copy time prediction during marking

Thomas Schatzl thomas.schatzl at oracle.com
Thu Jul 10 09:09:24 UTC 2014


Hi Erik,

On Mon, 2014-07-07 at 16:05 +0200, Erik Helin wrote:
> On Wednesday 02 July 2014 14:33:10 PM Thomas Schatzl wrote:
> > Hi all,
> > 
> >   some apparent bug in the G1 pause time prediction logic: when ending
> > an initial mark pause, G1 is supposed to switch to different predictors
> > for the object copy time.
> > 
> > Since the code that sets the flag to indicate to the prediction that the
> > other predictor should be used for object copy time prediction wrongly
> > reuses during_initial_mark_pause() that has been unconditionally set to
> > false before, G1 never switches predictors.
> > 
> > The fix is to use the backup ("last_pause_included_initial_mark") value
> > for during_initial_mark_pause() already used in several places in that
> > method.
> > 
> > Bug:
> > https://bugs.openjdk.java.net/browse/JDK-8049051
> > 
> > Webrev:
> > http://cr.openjdk.java.net/~tschatzl/8049051/webrev/
> 
> Looks good, Reviewed!

  thanks for the review. Please also have a look at the new webrev in
the answer to Bengt.

Thanks,
  Thomas



More information about the hotspot-gc-dev mailing list