Hasty Briefsbeta

Linux 6.18 Merges Fix for "Catastrophic Performance Issue" on 64-Bit ARM

10 days ago
  • #Linux
  • #ARM64
  • #Performance
  • Linux 6.18 kernel merges a fix for a 'catastrophic performance issue' on 64-bit ARM (ARM64).
  • The issue involved high latency in per-CPU atomic operations, particularly affecting ARM Neoverse V2, with operations taking around 100ns for a srcu_read_lock()/srcu_read_unlock() pair.
  • Disabling Linux kernel support for Large System Extensions (LSE) atomic instructions (introduced in ARMv8.1) improved performance.
  • The solution involves using load LSE atomics (LDADD/LDCLR/LDSET) for non-return per-CPU atomic operations, reducing latency significantly.
  • The fix was merged ahead of Linux 6.18-rc6 and is expected to be part of the stable release by the end of November.
  • Willy Tarreau noted similar performance improvements (2-7%) in haproxy after applying analogous changes to atomics on ARM 64-bit hardware.