Re: cleanup the RAID5 XOR library v4

Eric Biggers
2026-03-29T21:31:25Z

On Fri, Mar 27, 2026 at 07:16:32AM +0100, Christoph Hellwig wrote:
> Hi all,
>
> the XOR library used for the RAID5 parity is a bit of a mess right now.
> The main file sits in crypto/ despite not being cryptography and not
> using the crypto API, with the generic implementations sitting in
> include/asm-generic and the arch implementations sitting in an asm/
> header in theory. The latter doesn't work for many cases, so
> architectures often build the code directly into the core kernel, or
> create another module for the architecture code.
>
> Changes this to a single module in lib/ that also contains the
> architecture optimizations, similar to the library work Eric Biggers
> has done for the CRC and crypto libraries later. After that it changes
> to better calling conventions that allow for smarter architecture
> implementations (although none is contained here yet), and uses
> static_call to avoid indirection function call overhead.
>
> A git tree is also available here:
>
> git://git.infradead.org/users/hch/misc.git xor-improvements
>
> Gitweb:
>
> https://git.infradead.org/?p=users/hch/misc.git;a=shortlog;h=refs/heads/xor-improvements
>
> Changes since v3:
> - switch away from lockdep_assert_preemption_enabled() again
> - fix a @ reference in a kerneldoc comment.
> - build the arm4regs implementation also without kernel-mode neon
> support
> - fix a pre-existing issue about mismatched attributes on arm64's
> xor_block_inner_neon
> - reject 0-sized xor request and adjust the kunit test case to not
> generate them

Reviewed-by: Eric Biggers <ebiggers@kernel.org>

But yes, as Andrew mentioned there are two "xor: add a better public
API" patches. They should be folded together.

- Eric