RFR: Interleave partial GCs with concurrent GCs

Roman Kennke rkennke at redhat.com
Thu Mar 30 15:58:45 UTC 2017

This brings together partial GCs with Shenandoah's ordinary concurrent GC.

The ShenandoahConcurrentThread kicks off a normal concurrent GC cycle
just like the adaptive heuristics (the superclass of partial
heuristics), i.e. when heap usage reaches a certain threshold. It forces
an update-refs phase after the concurrent cycle to prepare for the next
partial cycle.

The update-refs phase completely rebuilds the matrix. This means we
don't have to build it during marking. That's why I throw away all the
additional marking closures.


Tested using specjvm and hotspot_gc_shenandoah.


More information about the shenandoah-dev mailing list