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.