"passive" heuristic is special: it never does concurrent cycles. It should not start doing them when ExplicitGCInvokesConcurrent is enabled and System.gc() is called. Fix: http://cr.openjdk.java.net/~shade/shenandoah/eic-passive/webrev.01/ Testing: hotspot_gc_shenandoah Thanks, -Aleksey