RFR: Concurrent partial should check for cancellation

Aleksey Shipilev shade at redhat.com
Mon Oct 9 21:19:36 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/concpartial-cancellation/webrev.01/

There are test deadlocks with LRU partial heuristics on my machine. The symptom is similar to SLT
deadlock we have seen in 8u, but this time it is slightly different. Java thread is stuck in
oom_during_evacuation during the partial cycle. VMThread is stuck waiting for the safepoint, and for
that thread. This seems to happen because OOM is happening during concurrent partial, and we are
stuck while trying to go to final partial pause.

Concurrent cycle avoids that by checking for cancellation, and ShenandoahConcurrentThread handles
putting the evac_in_progress flag down on cancellation path. We should do the same for concurrent
partial now, for both correctness and symmetry reasons.

Testing: hotspot_gc_shenandoah (+ failed tests)

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list