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