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 <[email protected]> But yes, as Andrew mentioned there are two "xor: add a better public API" patches. They should be folded together. - Eric
