64 bytes is enough — on this core
Intel's adjacent-cache-line prefetcher drags 128-byte pairs, so
hardware_destructive_interference_size (64 on both ISAs) is contested in
practice: folly and the JVM pad 128 on x86 while GCC, the kernel and rigtorp use 64.
spsc_ring<T, PadBytes> makes the padding a template parameter and
sweeps 0–256 B.
Sub-64-byte layouts pay real false sharing — 3.9 consumer L1D misses per message against a 2.02 floor, and +40 ns at the median. But there is no 64→128 cliff on Neoverse-N1: 64/128/256 B measure 2.02/2.03/2.02 misses per message. The registered no-adjacent-line-prefetcher prediction, confirmed.