RFR (XS): C2: Missing matrix update for getAndSet intrinsic

Aleksey Shipilev shade at redhat.com
Tue Mar 14 12:05:09 UTC 2017


Hi,

getAndSet jcstress tests like
tests.atomicity.varHandles.fields.GetAndSetTest.GetAndSetString are failing with
+ShenandoahMatrix.

The failure goes like this: for current barrier set, can_move_pre_barrier is
true. Which moves the pre_barrier *after* the store, which then misses newval,
because pre_barrier is called with NULL!

The easiest fix is to avoid moving pre_barriers when matrix update is in order:
  http://cr.openjdk.java.net/~shade/shenandoah/matrix-getandset/webrev.01/

I failed to create a standalone reproducer, but jcstress seems happy now.

Testing: hotspot_gc_shenandoah, offending jcstress tests

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list