ARM64's Weak Memory Model: Why x86 Code Fails on AArch64
ARM64 does not guarantee x86's store-load ordering. Learn how AArch64's weak memory model breaks plain shared-variable code and how to fix it with acquire/release atomics.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
ARM64 does not guarantee x86's store-load ordering. Learn how AArch64's weak memory model breaks plain shared-variable code and how to fix it with acquire/release atomics.
Decide whether to turn on ARM64 Pointer Authentication (PAC) for return‑address protection in user‑space Linux binaries. A concise decision guide compares PAC on vs. off, discusses security, performance, compatibility, and shows how to compile, run, and validate a PAC‑enabled program.
Moving x86 lock-free code to ARM64 often exposes hidden ordering assumptions. Learn why plain stores are not enough, how acquire/release primitives map to LDAR/STLR, and when ARMv8.1 LSE atomics are safe to use.
ARMv8.3 Pointer Authentication signs return addresses with a per-process key so corrupted returns fault instead of redirecting execution. This note covers the minimal compiler-flag design, trust boundaries, verification tests, and failure modes.
Learn how to enable PAC on ARMv8.5‑A CPUs, compile with GCC/Clang, verify runtime support, and fall back if the hardware lacks the feature.
Step-by-step guide to enabling ARMv8.5-A Memory Tagging Extension (MTE) in synchronous mode on Linux: hardware/kernel prerequisites, compilation flags, runtime prctl() enablement, verification via SEGV_MTEERR faults, and phased deployment from async CI to synchronous staging.
A diagnostic guide for stale data races on AArch64, with a cause table, ordered checks using objdump and ThreadSanitizer, and fixes tied to findings.
ARM64's Memory Tagging Extension catches out-of-bounds and use-after-free bugs in hardware. Here's how it works, how to verify it's actually enabled, and how to choose between sync and async modes.
Learn how to enable ARM MTE on AArch64 Linux to detect heap buffer overflows, including hardware checks, kernel config, userspace opt‑in, and validation steps.