[aarch64-port-dev ] jcstress varhandles.DekkerTest fails on aarch64

Zhongwei Yao zhongwei.yao at linaro.org
Fri Mar 2 11:06:08 UTC 2018


Hi, all,

I find this failure on aarch64 and but have not found the root cause
yet. Because it may have an impact on nearby jdk10 release, I raised a
bug first: https://bugs.openjdk.java.net/browse/JDK-8198950

And my current finding is:
  - this only fails with c2, c1 and interpreter are OK.
  - the actor1 function in
https://bugs.openjdk.java.net/secure/attachment/75427/DekkerVarTest.java
c2 generated code is different under the good build (jdk10-b20) and
bad build (master):

good:
040 + add R10, R2, #12 # ptr
044    stlrw  R12, [R10] # int ! Field: volatile DekkerVarTest$TestData.a
048 + membar_volatile (elided)
048
048
048 + add R10, R2, #16 # ptr
04c    ldarw  R0, [R10] # int ! Field: volatile DekkerVarTest$TestData.b
050 + membar_acquire (elided) //my comment: it generates "ldar" finally.
050
050    # pop frame 48

bad:
038   B2: # N57 <- B1  Freq: 0.999999
038 + membar_release (elided)
038 + mov R12, #1 # int
03c
03c + add R10, R2, #12 # ptr
040    stlrw  R12, [R10] # int ! Field: volatile DekkerVarTest$TestData.a
044 + membar_volatile (elided)
044
044
044 + ldrw  R0, [R2, #16] # int ! Field: volatile DekkerVarTest$TestData.b
048 + membar_acquire  //my comment: it generates "dmb ishld" finally.
04c
04c + # pop frame 48

-- 
Best regards,
Zhongwei


More information about the aarch64-port-dev mailing list