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.

http://cr.openjdk.java.net/~rkennke/partial-conc-gc/webrev.00/
<http://cr.openjdk.java.net/%7Erkennke/partial-conc-gc/webrev.00/>

Tested using specjvm and hotspot_gc_shenandoah.

Roman




More information about the shenandoah-dev mailing list