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