Linux's ARM64 NEON Intrinsics CRC64 Code Adapted To Work On 32-bit ARM
([Arm] 5 Hours Ago
More Performance)
- Reference: 0001641992
- News link: https://www.phoronix.com/news/Linux-CRC64-NEON-On-ARM32
- Source link:
Merged for Linux 7.1 was [1]ARMM64 NEON-accelerated CRC64-NVMe support for [2]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 [3]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 [4]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 [5]CRC updates . That pull also allows 32-bit ARM NEON to use the optimized xor_gen() from ARM64 too.
[1] https://www.phoronix.com/news/Linux-7.1-Fast-ARM64-CRC64-NVMe
[2] https://www.phoronix.com/news/ARM-NEON-CRC64-6x
[3] https://lore.kernel.org/all/20260422171655.3437334-10-ardb+git@google.com/
[4] https://lore.kernel.org/all/20260422171655.3437334-15-ardb+git@google.com/
[5] https://lore.kernel.org/lkml/20260615174807.GA1831@quark/
A [3]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 [4]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 [5]CRC updates . That pull also allows 32-bit ARM NEON to use the optimized xor_gen() from ARM64 too.
[1] https://www.phoronix.com/news/Linux-7.1-Fast-ARM64-CRC64-NVMe
[2] https://www.phoronix.com/news/ARM-NEON-CRC64-6x
[3] https://lore.kernel.org/all/20260422171655.3437334-10-ardb+git@google.com/
[4] https://lore.kernel.org/all/20260422171655.3437334-15-ardb+git@google.com/
[5] https://lore.kernel.org/lkml/20260615174807.GA1831@quark/