Re: cleanup the RAID5 XOR library v4
From: Andrew Morton
Date: Sun Mar 29 2026 - 18:51:37 EST
On Sun, 29 Mar 2026 14:31:19 -0700 Eric Biggers <ebiggers@xxxxxxxxxx> wrote:
> 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@xxxxxxxxxx>
Great, thanks, added to all changelogs.
> But yes, as Andrew mentioned there are two "xor: add a better public
> API" patches. They should be folded together.
I folded them.
I'm a bit wobbly about upstreaming all this for 7.1-rc1. It hits on a
lot of stuff and I don't think we've heard a lot from the affected
maintainers.
otoh, we're unlikely to learn much from an additional nine weeks in
linux-next so at some point one has to forge ahead and rely on seven
weeks of -rc to address any remaining niggles. And I'm confident that
Christoph will support his work well.
But still, hearing some reassuring words about this would be
appreciated ;)