RFR: 8224828: aarch64: save and restore the rflags register in push_CPU_state and pop_CPU_state

Andrew Haley aph at redhat.com
Tue May 28 13:50:44 UTC 2019


On 5/27/19 1:42 PM, Yangfei (Felix) wrote:
>         JBS: https://bugs.openjdk.java.net/browse/JDK-8224828
>         Webrev: http://cr.openjdk.java.net/~fyang/8224828/webrev.00/
> 
>     Currently, the rflags register is not handled in push_CPU_state and pop_CPU_state for the aarch64 port (including aarch64-8u, jdk11 and jdk13).  
>     This is causing random Hadoop Terasort failure using an aarch64-8u jvm.  
>     After some further investigation, we located the problematic C2 JIT code snippet:  

Great catch! I'm somewhat appalled that flags are live across
safepoint polls.  I know that they are not live on x86.

I don't think you should do this. Instead, please apply

  effect(KILL cr);

to instruct safePoint in aarch64.ad.

-- 
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671


More information about the hotspot-runtime-dev mailing list