RFR: Workaround C1 ConstantOopWriteValue bug

Aleksey Shipilev shade at redhat.com
Tue Nov 14 17:58:00 UTC 2017


http://cr.openjdk.java.net/~shade/shenandoah/workaround-jni-acmp/webrev.01/

This is the workaround for the upstream C1 bug: it calls heap-aware code in improper thread state.
This fails fairly reliably with Shenandoah, because on those paths we have obj_equals that does read
barriers, and it crashes the compiler code that walks the heap. This also happens during Full GCs
mostly, because the pointers are aggressively changing there.

Link to upstream discussion:
  http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2017-November/027546.html

The change is done for the ease of backporting: we isolate Shenandoah-specific path. If/when
upstream fix arrives, we can partially undo this workaround.

Testing: hotspot_gc_shenandoah (fastdebug), stress configurations that used to fail

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list