News: 0001641992

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Linux's ARM64 NEON Intrinsics CRC64 Code Adapted To Work On 32-bit ARM

([Arm] 5 Hours Ago More Performance)


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/



Ten persons who speak make more noise than ten thousand who are silent.
-- Napoleon I