Linux's ARM64 NEON Intrinsics CRC64 Code Adapted To Work On 32-bit ARM
Merged for Linux 7.1 was ARMM64 NEON-accelerated CRC64-NVMe support for around 6x the performance out of that checksumming algorithm. The generic code had been a bottleneck in NVMe and other storage subsystem code of the Linux kernel with CRC64-NVMe being used to help verify against data corruption. Now for Linux 7.2, the NEON-accelerated code will also work for those still relying on 32-bit ARM.
A patch series by Ard Biesheuvel allows for sharing of NEON intrinsics within the Linux kernel between 32-bit ARM and 64-bit ARM. With that the ARM64 NEON intrinsics around CRC64 are then made available for capable 32-bit ARM Linux environments where the CPU cores have NEON support.
As shown in one of the patch messages, the performance impact is very meaningful just as was also observed in the ARM64 space... For those still using 32-bit ARM and upstream Linux kernel builds in 2026 and beyond.
This CRC64-NVMe acceleration for 32-bit ARM was merged this week for the Linux 7.2 kernel via the CRC updates. That pull also allows 32-bit ARM NEON to use the optimized xor_gen() from ARM64 too.
A patch series by Ard Biesheuvel allows for sharing of NEON intrinsics within the Linux kernel between 32-bit ARM and 64-bit ARM. With that the ARM64 NEON intrinsics around CRC64 are then made available for capable 32-bit ARM Linux environments where the CPU cores have NEON support.
As shown in one of the patch messages, the performance impact is very meaningful just as was also observed in the ARM64 space... For those still using 32-bit ARM and upstream Linux kernel builds in 2026 and beyond.
👁 ARM32 CRC64-NVME benchmark results
This CRC64-NVMe acceleration for 32-bit ARM was merged this week for the Linux 7.2 kernel via the CRC updates. That pull also allows 32-bit ARM NEON to use the optimized xor_gen() from ARM64 too.
