Sometimes, but of course not when I explicitly try, none/tests/arm64/atomics_v81 fails with: cat none/tests/arm64/atomics_v81.stdout.diff --- atomics_v81.stdout.exp 2020-12-11 07:29:26.440663198 -0500 +++ atomics_v81.stdout.out 2020-12-16 17:09:36.965817433 -0500 @@ -15318,7 +15318,7 @@ caspal x8, x9, x10, x11, [x5] :: rs 0000000000000000 0000000000000000 rt 0123456789abcdef 0123456789abcdef rn mem ffffffffffffffff ffffffffffffffff caspal x8, x9, x10, x11, [x5] :: rs ffffffffffffffff ffffffffffffffff rt 0123456789abcdef 0123456789abcdef rn mem ffffffffffffffff ffffffffffffffff -caspal x8, x9, x10, x11, [x5] :: rs ffffffffffffffff ffffffffffffffff rt 0123456789abcdef 0123456789abcdef rn mem 0123456789abcdef 0123456789abcdef +caspal x8, x9, x10, x11, [x5] :: rs ffffffffffffffff ffffffffffffffff rt 0123456789abcdef 0123456789abcdef rn mem ffffffffffffffff ffffffffffffffffFAIL: swapped but mem after != rt caspal x8, x9, x10, x11, [x5] :: rs ffffffffffffffff ffffffffffffffff rt fedcba9876543210 fedcba9876543210 rn mem 0000000000000000 0000000000000000 caspal x8, x9, x10, x11, [x5] :: rs ffffffffffffffff ffffffffffffffff rt fedcba9876543210 fedcba9876543210 rn mem 0000000000000000 0000000000000000 EXPECTED RESULT cpuinfo says: processor : 0 BogoMIPS : 400.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm CPU implementer : 0x43 CPU architecture: 8 CPU variant : 0x1 CPU part : 0x0af CPU revision : 1 processor : 1 BogoMIPS : 400.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm CPU implementer : 0x43 CPU architecture: 8 CPU variant : 0x1 CPU part : 0x0af CPU revision : 1 processor : 2 BogoMIPS : 400.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm CPU implementer : 0x43 CPU architecture: 8 CPU variant : 0x1 CPU part : 0x0af CPU revision : 1 processor : 3 BogoMIPS : 400.00 Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics cpuid asimdrdm CPU implementer : 0x43 CPU architecture: 8 CPU variant : 0x1 CPU part : 0x0af CPU revision : 1 It failed 2 times when trying ~30 times (the 2 times were the first run and the 8th run).
CPU implementer 0x43 and CPU part 0x0af indicates a Cavium ThunderX2. Previous experience with DynamoRIO suggests this behaviour may be limited to ThunderX machines only. It would be interesting to see if the same occasional failures occur on non-ThunderX machines.