RFR (S): Avoid evacuation if concurrent GC was cancelled

Aleksey Shipilev shade at redhat.com
Mon Dec 5 16:00:52 UTC 2016


Hi,

Currently, when concurrent GC is canceled, we still enter the VM operation for
concurrent evacuation, only to exit it quickly and slide into the full GC. This
causes *two* back-to-back safepoints: one short from evac, and another large for
full GC. While short one is normally short, it can hit the unlucky scheduling
outlier and drag the pause time up.

This change avoids going to evac if conc GC was canceled:
  http://cr.openjdk.java.net/~shade/shenandoah/cancel-no-evac/webrev.01/

Additionally, it resets the mark bitmaps before full GC with parallel workers,
not concurrent ones, which would be important once Zhengyu trims down the number
of concurrent workers.

Testing: hotspot_gc_shenandoah, jcstress (tests-all/quick)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list