RFR: C1 stores constants without read barriers
Aleksey Shipilev
shade at redhat.com
Thu Jun 29 11:55:31 UTC 2017
I think this part of C1 is incorrect when barriers are required for constants:
http://cr.openjdk.java.net/~shade/shenandoah/c1-store-const-rb/webrev.01/
This might explain a few test failures we have: the from-space constant is read
before concurrent evacuation has the chance to update it. Then it gets stored to
another heap location, and everything blows up.
While we could conditionalize this on ShBarriersForConst, this is C1 code, which
does not have to be super-optimal. Surprisingly, the new code is what
c1_LIRGenerator_aarch64 is already doing, so this patch seems good from the
symmetry standpoint too.
Testing: hotspot_gc_shenandoah
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list