Re: [PATCH v2 00/11] CRC64 library rework and x86 CRC optimization
From: Eric Biggers
Date: Tue Feb 04 2025 - 14:57:07 EST
On Wed, Jan 29, 2025 at 07:51:19PM -0800, Eric Biggers wrote:
> This patchset applies to commit 72deda0abee6e7 and is also available at:
>
> git fetch https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git crc-x86-v2
>
> This is the next major set of CRC library improvements, targeting 6.15.
>
> Patches 1-5 rework the CRC64 library along the lines of what I did for
> CRC32 and CRC-T10DIF in 6.14. They add direct support for
> architecture-specific optimizations, fix the naming of the NVME CRC64
> variant, and eliminate a pointless use of the crypto API.
>
> Patches 6-10 replace the existing x86 PCLMULQDQ optimized CRC code with
> new code that is shared among the different CRC variants and also adds
> VPCLMULQDQ support, greatly improving performance on recent CPUs.
> Patch 11 wires up the same optimization to crc64_be() and crc64_nvme()
> (a.k.a. the old "crc64_rocksoft") which previously were unoptimized,
> improving the performance of those CRC functions by as much as 100x.
> crc64_be is used by bcachefs, and crc64_nvme is used by blk-integrity.
Applied patches 1-5 to
https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git/log/?h=crc-next
I'm still working a bit on the x86 assembly and am planning to do a v3 for
patches 6-11.
- Eric