ARM64 BBML3 Feature Ready With Linux 7.3, NVIDIA Olympus Workarounds

AI/LLM patch craziness hurt ARM64 development for the Linux 7.2 cycle that no real features landed for that kernel version on AArch64. Fortunately, the ARM Linux developers are more prepared now and for Linux 7.3 are introducing some new ARM64 features.

One of the new features ready to go for ARM64 with Linux 7.3 is the BBML3 feature. Break-Before-Make Level 3 (BBML3) is a newer feature of AArch64 for more efficient handling of page table transitions. BBML3 can lead to better optimized memory management and more efficient handling by VM hypervisors. BBML3 is replacing the Linux kernel's existing BBML2-noabort feature code.

ARM64 with Linux 7.3 also works around broken device memory ordering with NVIDIA's Olympus CPU cores that power Vera. This bug can leave a peripheral in an incorrect state in breaking program-order guarantees. The workaround is inserting a DMB OSH immediately before each raw MMIO load on affected CPUs.


The ARM64 code also ends up disabling in-kernel Branch Target Identification (BTI) for recent versions of the LLVM Clang compiler due to issues with kernel livepatching that are still being investigated.

On the ARM64 perf side there are workarounds for hardware issues on AWS Graviton5 and NVIDIA Olympus. Plus support for the DDR PMU on Marvell CN20K SoCs and other new hardware support. There are also ARM64 bug fixes and other changes as outlined in this pull request for the Linux 7.3 merge window.