On Fri, Feb 27, 2026 at 03:55:29PM -0800, Eric Biggers wrote: > On Fri, Feb 27, 2026 at 03:30:16PM +0100, Peter Zijlstra wrote: > > On Thu, Feb 26, 2026 at 07:10:30AM -0800, Christoph Hellwig wrote: > > > Move the optimized XOR code out of line into lib/raid. > > > > > > Signed-off-by: Christoph Hellwig <[email protected]> > > > --- > > > arch/x86/include/asm/xor.h | 518 ++---------------- > > > arch/x86/include/asm/xor_64.h | 32 -- > > > lib/raid/xor/Makefile | 8 + > > > .../xor_avx.h => lib/raid/xor/x86/xor-avx.c | 14 +- > > > .../xor_32.h => lib/raid/xor/x86/xor-mmx.c | 60 +- > > > lib/raid/xor/x86/xor-sse.c | 476 ++++++++++++++++ > > > > I gotta ask, why lib/raid/xor/$arch/ instead of something like > > arch/$arch/lib/xor ? > > Similar to lib/crypto/ and lib/crc/, it allows the translation units > (either .c or .S files) containing architecture-optimized XOR code to be > included directly in the xor.ko module, where they should be. > > Previously, these were always built into the core kernel even if > XOR_BLOCKS was 'n' or 'm', or they were built into a separate module > xor-neon.ko which xor.ko depended on. So either the code was included > unnecessarily, or there was an extra module. > > Technically we could instead have the lib makefile compile stuff in > arch/, but that would be unusual. It's much cleaner to have the > directory structure match the build system.
Hmm, I suppose. Its just weird that we now have to look in both arch/$foo and lib/*/$foo/ to find all arch code. And I don't suppose symlinks would make it better?
