From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id B327CF532D4 for ; Tue, 24 Mar 2026 06:41:51 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [127.0.0.1]) by lists.ozlabs.org (Postfix) with ESMTP id 4fg0nV35Wyz2ynH; Tue, 24 Mar 2026 17:41:50 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; arc=none smtp.remote-ip="2607:7c80:54:3::133" ARC-Seal: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1774334510; cv=none; b=HukFw5ofHCEkIc1nHQB4/qOi4m21jhl6fiXdAxIo5NuSy0k36GBdVpODCkrFsLIpQl4Rz/PaLOIepoDQZdDhYHkKjol7X36Qbl7gsYWXOrTA+Uh8GzArLVKKjVjMycpiAiQuH+0g6hmbFk4hyEWPDewi1yzOC/fC6iRw4qvN7chRozRkDbTzljkPzm0NoURBrMApI2t+f+4m/DdaaPtUiCTojsjx5YLFa3Mabfb2K7SezmtkznG4FrqjA979Htmiv6mfgm9bG3Hvje985ds0FpPN7+/3SizZR5u8IZVZfddUx1ZrSuFBG6gAjUhyxpr5j5EEDlegvQ4DGniH6hpQwQ== ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1774334510; c=relaxed/relaxed; bh=YFfnpURaNvid2InKw6RqvyYMx0WKDk590Z+TN8SKWyw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Wm8VsT8ySacQ0JXebE91CgaERGl6/xyK32zJXHgWqW8PY0wHL0EDBdOhGxq1RZeBh5cozudDqBDeQJBTdS9zm5hGB3IzcOFx5pv+HLkJbVxtF9fZ1Fm2h58WKlxetWv10yVrYNPK2x+p0KhV9cgWTlNohYaNXMo/ruh1WKwyq3BVgnOMvzYY9jrn+U9TYJW4s3mzVXrx8ZAI8IUb9/NzAUqBi0KGLr8mnjVA6ioIIHsBtwOs6Tmzt22k4KHsbf8rNc+uaPjJOIAnq98iVyUJT6cp0beoWxJocWjSz/I9XVcwK1jm5Q0uHqbqdbaCxOL9yTilaZX3TA1PG6n+Punqlg== ARC-Authentication-Results: i=1; lists.ozlabs.org; dmarc=fail (p=none dis=none) header.from=lst.de; dkim=pass (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=jdAEk/PM; dkim-atps=neutral; spf=none (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=batv+4a75e1166b7f241dd976+8248+infradead.org+hch@bombadil.srs.infradead.org; receiver=lists.ozlabs.org) smtp.mailfrom=bombadil.srs.infradead.org Authentication-Results: lists.ozlabs.org; dmarc=fail (p=none dis=none) header.from=lst.de Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=infradead.org header.i=@infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=jdAEk/PM; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=bombadil.srs.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=batv+4a75e1166b7f241dd976+8248+infradead.org+hch@bombadil.srs.infradead.org; receiver=lists.ozlabs.org) Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4fg0nT4JXdz2yql for ; Tue, 24 Mar 2026 17:41:49 +1100 (AEDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=YFfnpURaNvid2InKw6RqvyYMx0WKDk590Z+TN8SKWyw=; b=jdAEk/PMgnp2XPZAkpyfIM7WRD frgLC+vaQIkIYhsyj/mWaACd2Y6i5tU7zNIutK00dL2+Q6wH1lWdnTbV0mAIonleJJSMbrwULLE9L wsAw+7buCSo1SEYwmlSSU0yFTk4m/igaOn0Ly5DgbpwVPF7rRUDGy1IO9EshElm2Q05tBUElHL1V8 CIl+Fah74NEirlMmkJauhyX0fiqsXIuccWbvFYrOCTpGy5bWM9CJ44e5JzdhGzhIPZ4YmFAFtYM4f hjnvvzCh/QcPHfsrM27JKs6EE3HbBZc+PxMXNsdmg8t/V9z1LSyG64M3AJ3kxftZuGo8vZzv3MyNO 8xjpKEhg==; Received: from 2a02-8389-2341-5b80-d601-7564-c2e0-491c.cable.dynamic.v6.surfer.at ([2a02:8389:2341:5b80:d601:7564:c2e0:491c] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux)) id 1w4vSD-00000000m23-3thG; Tue, 24 Mar 2026 06:41:30 +0000 From: Christoph Hellwig To: Andrew Morton Cc: Catalin Marinas , Will Deacon , Ard Biesheuvel , Huacai Chen , WANG Xuerui , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , "Christophe Leroy (CS GROUP)" , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, "H. Peter Anvin" , Herbert Xu , Dan Williams , Chris Mason , David Sterba , Arnd Bergmann , Song Liu , Yu Kuai , Li Nan , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-crypto@vger.kernel.org, linux-btrfs@vger.kernel.org, linux-arch@vger.kernel.org, linux-raid@vger.kernel.org Subject: cleanup the RAID6 P/Q library Date: Tue, 24 Mar 2026 07:40:35 +0100 Message-ID: <20260324064115.3217136-1-hch@lst.de> X-Mailer: git-send-email 2.47.3 X-Mailing-List: linuxppc-dev@lists.ozlabs.org List-Id: List-Help: List-Owner: List-Post: List-Archive: , List-Subscribe: , , List-Unsubscribe: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Hi all, this series cleans up the RAID6 P/Q library to match the recent updates to the RAID 5 XOR library and other CRC/crypto libraries. This includes providing properly documented external interfaces, hiding the internals, using static_call instead of indirect calls and turning the user space test suite into an in-kernel kunit test which is also extended to improve coverage. Note that this changes registration so that non-priority algorithms are not registered, which greatly helps with the benchmark time at boot time. I'd like to encourage all architecture maintainers to see if they can further optimized this by registering as few as possible algorithms when there is a clear benefit in optimized or more unrolled implementations. This series sits on top of the "cleanup the RAID5 XOR library v3" series. A git tree is also available here: git://git.infradead.org/users/hch/misc.git lib-raid6 Gitweb: https://git.infradead.org/?p=users/hch/misc.git;a=shortlog;h=refs/heads/lib-raid6 Diffstat: b/Documentation/crypto/async-tx-api.rst | 4 b/crypto/async_tx/async_pq.c | 9 b/crypto/async_tx/async_raid6_recov.c | 9 b/drivers/dma/bcm-sba-raid.c | 1 b/drivers/md/raid5.c | 4 b/fs/btrfs/raid56.c | 8 b/include/linux/raid/pq.h | 216 ------------ b/include/linux/raid/pq_tables.h | 19 + b/lib/Kconfig | 11 b/lib/Makefile | 1 b/lib/raid/Kconfig | 33 + b/lib/raid/Makefile | 2 b/lib/raid/raid6/Makefile | 124 +++++++ b/lib/raid/raid6/algos.c | 381 ++++++++++++++++++++++ b/lib/raid/raid6/algos.h | 41 ++ b/lib/raid/raid6/arm/neon.c | 23 - b/lib/raid/raid6/arm/pq_arch.h | 22 + b/lib/raid/raid6/arm/recov_neon.c | 25 - b/lib/raid/raid6/int.uc | 10 b/lib/raid/raid6/loongarch/loongarch_simd.c | 31 - b/lib/raid/raid6/loongarch/pq_arch.h | 23 + b/lib/raid/raid6/loongarch/recov_loongarch_simd.c | 39 -- b/lib/raid/raid6/mktables.c | 28 - b/lib/raid/raid6/powerpc/altivec.uc | 32 - b/lib/raid/raid6/powerpc/pq_arch.h | 31 + b/lib/raid/raid6/powerpc/vpermxor.uc | 29 - b/lib/raid/raid6/recov.c | 62 --- b/lib/raid/raid6/riscv/pq_arch.h | 21 + b/lib/raid/raid6/riscv/recov_rvv.c | 14 b/lib/raid/raid6/riscv/rvv.h | 26 - b/lib/raid/raid6/s390/pq_arch.h | 15 b/lib/raid/raid6/s390/recov_s390xc.c | 14 b/lib/raid/raid6/s390/s390vx.uc | 15 b/lib/raid/raid6/tests/Makefile | 3 b/lib/raid/raid6/tests/raid6_kunit.c | 307 +++++++++++++++++ b/lib/raid/raid6/x86/avx2.c | 47 -- b/lib/raid/raid6/x86/avx512.c | 57 +-- b/lib/raid/raid6/x86/mmx.c | 39 -- b/lib/raid/raid6/x86/pq_arch.h | 96 +++++ b/lib/raid/raid6/x86/recov_avx2.c | 22 - b/lib/raid/raid6/x86/recov_avx512.c | 26 - b/lib/raid/raid6/x86/recov_ssse3.c | 23 - b/lib/raid/raid6/x86/sse1.c | 49 -- b/lib/raid/raid6/x86/sse2.c | 47 -- lib/raid6/Makefile | 83 ---- lib/raid6/algos.c | 291 ---------------- lib/raid6/loongarch.h | 38 -- lib/raid6/test/.gitignore | 3 lib/raid6/test/Makefile | 156 --------- lib/raid6/test/test.c | 152 -------- lib/raid6/x86.h | 75 ---- 51 files changed, 1329 insertions(+), 1508 deletions(-)