[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