Lightning Talk: Volatile none of the things
summary
Finds that ARM LTO race introduced between 2007–2017 causes stores to appear delayed by up to two instruction cycles when functions move to other translation units, producing subtle ring-buffer races that let a reader spin forever and higher‑priority consumers starve real motor controllers. An off‑by‑macro in an SDM abstraction returns busy as an early return like an exception, and a DMA init bug writes to the wrong location causing memory corruption. Affected hardware: 700,000 motors, mostly in China.
AI-written summary · about
chapters (5)
related talks
05mLightning Talk: How to Cook Your CPU with C++
03mLightning Talk: Undefined Behaviour in C++
55mAbusing Your Memory Model for Fun and Profit
58m“No Sane Compiler Would Optimize Atomics"
22mWhat we learned from C++ atomics and memory model standardization
19mLightning Talk: Your Favorite Undefined Behavior in C++
01h 03mBuilding Abstractions at the Hardware-software Boundary
01h 27mDangerous Optimizations! in C++ - Part Deux
