On Sat, 2 Nov 2024 at 11:20, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote: > > On Sat, Nov 02, 2024 at 10:58:53AM +0100, Ard Biesheuvel wrote: > > > > At least btrfs supports a variety of checksums/hashes (crc32c, xxhash, > > sha) via the shash API. > > OK, given that btrfs is still doing this, I think we should still > register crc32c-arch conditionally. Having it point to crc32c-generic > is just confusing (at least if you use btrfs). > Agreed. So we should take this patch. The current issue with btrfs is that it will misidentify crc32c-generic on arm64 as being 'slow', but this was already fixed by my patches that are already in cryptodev. On arm64, crc32 instructions are always available (the only known micro-architecture that omitted them has been obsolete for years), and on x86_64 the situation is similar in practice (introduced in SSE 4.2), and so this patch changes very little for the majority of btrfs users. But on architectures such as 32-bit ARM, where these instructions are only available if you are booting a 32-bit kernel on a 64-bit CPU (which is more common than you might think), this patch will ensure that crc32-arm / crc32c-arm are only registered if the instructions are actually available, and btrfs will take the slow async patch for checksumming if they are not. (I seriously doubt that btrfs on 32-bit ARM is a thing but who knows)