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