https://bugs.kde.org/show_bug.cgi?id=369459
Bug ID: 369459 Summary: valgrind on arm64 violates the ARMv8 spec (ldxr/stxr) Product: valgrind Version: 3.12 SVN Platform: Compiled Sources OS: Linux Status: UNCONFIRMED Severity: critical Priority: NOR Component: vex Assignee: jsew...@acm.org Reporter: pins...@gcc.gnu.org So on ARMv8, valgrind invokes undefined behavior with respect to ldxr/stxr. This causes valgrind to hang on ThunderX machines. here is the disassembly when I attach gdb to the valgrind process: 0x00000008034001a4: ldxr w2, [x4] 0x00000008034001a8: mov x22, x2 0x00000008034001ac: and x24, x23, #0xffffffff 0x00000008034001b0: and x23, x22, #0xffffffff 0x00000008034001b4: str x24, [x21,#928] 0x00000008034001b8: str x23, [x21,#32] 0x00000008034001bc: dsb sy => 0x00000008034001c0: dmb sy 0x00000008034001c4: isb …. 0x00000008034000e4: stxr w0, w2, [x4] As you can see there are plenty of stores and even DSB/DMB/ISB inbetween the ldxr and stxr. All of this violates the ARM spec and says stxr can always fail and it does on ThunderX. -- You are receiving this mail because: You are watching all bug changes.