[aarch64-port-dev ] RFR(M): 8209835: Aarch64: elide barriers on all volatile operations
Andrew Haley
aph at redhat.com
Tue Oct 16 16:47:57 UTC 2018
On 10/16/2018 10:04 AM, Andrew Haley wrote:
> On 10/16/2018 09:27 AM, Andrew Haley wrote:
>
>> I tested on a ThunderX2 machine with the LSE instruction set, and the
>> jtreg tests all pass. I'll do a jcstress test on that box too, just to
>> be sure.
>
> I see failures here:
>
> [FAILED] o.o.j.t.atomicity.varHandles.fields.GetAndSetTest.GetAndSetByte
> (fork: #1, iteration #0, JVM args: [-XX:-TieredCompilation, -XX:+UnlockDiagnosticVMOptions, -XX:+StressLCM, -XX:+StressGCM])
> Observed state Occurrences Expectation Interpretation
> 0, -1, 2 5,588 ACCEPTABLE actor1 execute before actor2
> 0, 0, -1 0 FORBIDDEN This won't happen because getAndSet is atomic
> 0, 0, 2 0 FORBIDDEN This won't happen because getAndSet is atomic
> 0, 2, 2 322,083 FORBIDDEN No default case provided, assume FORBIDDEN
> 2, 0, -1 0 ACCEPTABLE actor1 execute after actor2
>
> Once the entire jcstress run is complete I'll have a look to see what
> is wrong.
I found the bug: we also should fix the comparison instruction in the
LSE code. I have a fix.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-compiler-dev
mailing list