RFR: Hole in CAS barrier when using traversal heuristics

Zhengyu Gu zgu at redhat.com
Thu Jan 25 17:15:03 UTC 2018


I am not complete sure this is right fix. There is hole in CAS barrier 
when using traversal heuristics.

E.g. Unsafe_CompareAndSetObject() evacuates target and exchange object, 
but not the field, so it may hit assertion in ShenandoahBarrier::enqueue().

I could not come up a reliable reproducer, but I have seen this a few 
time with specjvm ScimarkLU with options:

"-Xmx1g -Xms1g -XX:+UseShenandoahGC -XX:+UnlockExperimentalVMOptions 
-XX:+UnlockDiagnosticVMOptions -XX:ShenandoahGCHeuristics=traversal 
-Xlog:gc+stats"

Webrev: http://cr.openjdk.java.net/~zgu/shenandoah/cas_traversal/webrev.00/


Thanks,

-Zhengyu


More information about the shenandoah-dev mailing list