Beyond all of the exciting Intel/AMD x86_64 changes and improvements to enjoy with the upcoming Linux 7.0, there is one notable ARM64 feature addition this kernel cycle.
The main feature for ARM64 on Linux 7.0 is now supporting 64-byte single-copy atomic instructions (LS64/LS64V). Armv8.7 introduced single-copy atomic 64-byte load and store instructions. With Linux 7.0 those new instructions are wired up, they are now exposed to user-space via /proc/cpuinfo and hardware capabilities. The patch series noted:
“Armv8.7 introduces single-copy atomic 64-byte loads and stores instructions and its variants named under FEAT_{LS64, LS64_V}.
…
A real scenario for this feature is that the userspace driver can this to implement direct WQE (workqueue entry) – a mechanism to fill WQE directly into the hardware.”
This accelerated, atomic movement of 64-byte blocks should help for helping ARM in more high performance Linux scenarios. The patches also take care of exposing LS64_V to Linux KVM guests.
With this pull, ARM64 also now has reduced Memory Tagging Extension (MTE) overhead when executing in the kernel on AmpereOne processors. That patch explains:
“We measured severe performance overhead (25-50%) when enabling userspace MTE and running memcached on an AmpereOne machine.
We identified excessive tag checking taking place in the kernel.
…
For workloads with MTE enabled, we measured the series giving a 2% improvement for “perf bench futex hash” at 95% confidence.Also, we used the Phoronix Test Suite pts/memcached benchmark with a get-heavy workload (1:10 Set:Get ratio) which is where the slowdown appears most clearly. The slowdown worsens with increased core count, levelling out above 32 cores.”
With the ARM64 updates for Linux 7.0, Spectre-BHB meanwhile is worked around on HiSilicon TSV110 processors.
All of the ARM64 updates for Linux 7.0 can be found via this pull request that is already merged to Linux 7.0 Git.
