[8] RFR: Save vector registers before LRB slowpath call
Aleksey Shipilev
shade at redhat.com
Thu Oct 24 16:17:49 UTC 2019
jcstress caught a failure in sh/jdk8:
$ build/linux-x86_64-normal-server-fastdebug/images/j2sdk-image/bin/java -jar
jcstress-tests-all-20190811.jar --jvmArgs "-XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC
-XX:TieredStopAtLevel=1 -XX:ShenandoahGCHeuristics=aggressive" -t
tearing.buffers.FloatBufferInterleaveTest
1 matching test results.
[FAILED] o.o.j.t.tearing.buffers.FloatBufferInterleaveTest
(JVM args: [-XX:+UnlockExperimentalVMOptions, -XX:+UseShenandoahGC, -XX:TieredStopAtLevel=1,
-XX:ShenandoahGCHeuristics=aggressive])
Observed state Occurrences Expectation Interpretation
0, 128, 128 883,871 ACCEPTABLE Seeing all updates intact.
0, 129, 127 42 FORBIDDEN No default case provided, assume FORBIDDEN
1, 127, 128 141 FORBIDDEN No default case provided, assume FORBIDDEN
1, 128, 127 144 FORBIDDEN No default case provided, assume FORBIDDEN
2, 127, 127 93 FORBIDDEN No default case provided, assume FORBIDDEN
Roman suggested we are not caring enough about xmm registers around LRB slowpath call, and indeed we
are not. This is the fix:
https://cr.openjdk.java.net/~shade/shenandoah/8u-lrb-xmm-save/webrev.01/
Testing: hotspot_gc_shenandoah; affected jcstress tests
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list