RFR (S): 8201527: Bump default value of G1RefProcDrainInterval

Stefan Johansson stefan.johansson at oracle.com
Mon Apr 16 08:58:56 UTC 2018

Hi Thomas,

Thanks for the details, changing the default value sounds reasonable. 


On 2018-04-13 11:10, Thomas Schatzl wrote:
> Hi all,
>    can I have reviews for this change that bumps the default value of
> G1RefProcDrainInterval to 1000?
> The G1RefProcDrainInterval flag determines the frequency at which new
> marks are actually processed while keeping alive references during
> reference processing.
> The current value is 10, i.e. every ten references we try to drain the
> mark stack. However, due to how expensive setup and teardown of G1
> marking is, this seriously inhibits performance.
> Tests showed that with a significantly higher value, 1000, reference
> processing time can halve.
> There is a graph attached to the CR showing that somewhere between 500
> and 1000 the improvement levels out, so I chose the higher value. Users
> may still try out higher values if they want. Also, we might want to
> change this back if/when somebody fixes marking, but that seems to be a
> much larger effort than changing this default value :)
> There is no issue with filling up the mark stack during reference
> processing, by default it may contains 128k entries. So no worries
> here.
> This improvement is in addition to the other improvements to reference
> processing posted just recently.
> Internal perf runs are on its way, however they typically do not
> exercise reference processing, so there should be no issue.
> I will do the CSR work as soon as I have reviews for this (trivial)
> change.
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8201527
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8201527/webrev/
> Testing:
> kitchensink reference processing stress test for many hours with
> different values; hs-tier1-3
> Thanks,
>    Thomas

More information about the hotspot-gc-dev mailing list