xref: /linux/lib/raid/Kconfig (revision 67f8bc848ee31831336bd478e57d2f993551902e)
19e229025SChristoph Hellwig# SPDX-License-Identifier: GPL-2.0
29e229025SChristoph Hellwig
39e229025SChristoph Hellwigconfig XOR_BLOCKS
49e229025SChristoph Hellwig	tristate
5e20043b4SChristoph Hellwig
6e20043b4SChristoph Hellwig# selected by architectures that provide an optimized XOR implementation
7e20043b4SChristoph Hellwigconfig XOR_BLOCKS_ARCH
8e20043b4SChristoph Hellwig	depends on XOR_BLOCKS
9e20043b4SChristoph Hellwig	default y if ALPHA
10e20043b4SChristoph Hellwig	default y if ARM
11e20043b4SChristoph Hellwig	default y if ARM64
12e20043b4SChristoph Hellwig	default y if CPU_HAS_LSX		# loongarch
13e20043b4SChristoph Hellwig	default y if ALTIVEC			# powerpc
14e20043b4SChristoph Hellwig	default y if RISCV_ISA_V
15e20043b4SChristoph Hellwig	default y if SPARC
16e20043b4SChristoph Hellwig	default y if S390
17e20043b4SChristoph Hellwig	default y if X86_32
18e20043b4SChristoph Hellwig	default y if X86_64
19e20043b4SChristoph Hellwig	bool
20af53e85eSChristoph Hellwig
21af53e85eSChristoph Hellwigconfig XOR_KUNIT_TEST
22af53e85eSChristoph Hellwig	tristate "KUnit tests for xor_gen" if !KUNIT_ALL_TESTS
23af53e85eSChristoph Hellwig	depends on KUNIT
24af53e85eSChristoph Hellwig	depends on XOR_BLOCKS
25af53e85eSChristoph Hellwig	default KUNIT_ALL_TESTS
26af53e85eSChristoph Hellwig	help
27af53e85eSChristoph Hellwig	  Unit tests for the XOR library functions.
28af53e85eSChristoph Hellwig
29af53e85eSChristoph Hellwig	  This is intended to help people writing architecture-specific
30af53e85eSChristoph Hellwig	  optimized versions.  If unsure, say N.
313626738bSChristoph Hellwig
32874d2eddSChristoph Hellwigconfig XOR_BENCHMARK
33874d2eddSChristoph Hellwig	bool "Benchmark for xor_gen"
34874d2eddSChristoph Hellwig	depends on XOR_KUNIT_TEST
35874d2eddSChristoph Hellwig	help
36874d2eddSChristoph Hellwig	  Include benchmarks in the KUnit test suite for xor_gen.
37874d2eddSChristoph Hellwig
383626738bSChristoph Hellwigconfig RAID6_PQ
393626738bSChristoph Hellwig	tristate
403626738bSChristoph Hellwig
41adfcf6e8SChristoph Hellwig# selected by architectures that provide an optimized PQ implementation
42adfcf6e8SChristoph Hellwigconfig RAID6_PQ_ARCH
43adfcf6e8SChristoph Hellwig	depends on RAID6_PQ
44adfcf6e8SChristoph Hellwig	default y if KERNEL_MODE_NEON		# arm32/arm64
45adfcf6e8SChristoph Hellwig	default y if LOONGARCH
46adfcf6e8SChristoph Hellwig	default y if ALTIVEC			# powerpc
47adfcf6e8SChristoph Hellwig	default y if RISCV_ISA_V
48adfcf6e8SChristoph Hellwig	default y if S390
49adfcf6e8SChristoph Hellwig	default y if X86
50adfcf6e8SChristoph Hellwig	bool
51adfcf6e8SChristoph Hellwig
523626738bSChristoph Hellwigconfig RAID6_PQ_KUNIT_TEST
533626738bSChristoph Hellwig	tristate "KUnit tests for RAID6 PQ functions" if !KUNIT_ALL_TESTS
543626738bSChristoph Hellwig	depends on KUNIT
553626738bSChristoph Hellwig	depends on RAID6_PQ
563626738bSChristoph Hellwig	default KUNIT_ALL_TESTS
573626738bSChristoph Hellwig	help
583626738bSChristoph Hellwig	  Unit tests for the RAID6 PQ library functions.
593626738bSChristoph Hellwig
603626738bSChristoph Hellwig	  This is intended to help people writing architecture-specific
613626738bSChristoph Hellwig	  optimized versions.  If unsure, say N.
623626738bSChristoph Hellwig
63*10dab131SChristoph Hellwigconfig RAID6_PQ_KUNIT_BENCHMARK
64*10dab131SChristoph Hellwig	bool "Benchmark for RAID6 PQ"
65*10dab131SChristoph Hellwig	depends on RAID6_PQ_KUNIT_TEST
66*10dab131SChristoph Hellwig	help
67*10dab131SChristoph Hellwig	  Include benchmarks in the KUnit test suite for raid P/Q generation.
68*10dab131SChristoph Hellwig
693626738bSChristoph Hellwigconfig RAID6_PQ_BENCHMARK
703626738bSChristoph Hellwig	bool "Automatically choose fastest RAID6 PQ functions"
713626738bSChristoph Hellwig	depends on RAID6_PQ
723626738bSChristoph Hellwig	default y
733626738bSChristoph Hellwig	help
743626738bSChristoph Hellwig	  Benchmark all available RAID6 PQ functions on init and choose the
753626738bSChristoph Hellwig	  fastest one.
76