diff options
Diffstat (limited to 'lib/Kconfig')
| -rw-r--r-- | lib/Kconfig | 569 |
1 files changed, 395 insertions, 174 deletions
diff --git a/lib/Kconfig b/lib/Kconfig index 35da51359d40..2923924bea78 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0-only # # Library configuration # @@ -10,183 +11,181 @@ menu "Library routines" config RAID6_PQ tristate +config RAID6_PQ_BENCHMARK + bool "Automatically choose fastest RAID6 PQ functions" + depends on RAID6_PQ + default y + help + Benchmark all available RAID6 PQ functions on init and choose the + fastest one. + +config LINEAR_RANGES + tristate + +config PACKING + bool "Generic bitfield packing and unpacking" + select BITREVERSE + default n + help + This option provides the packing() helper function, which permits + converting bitfields between a CPU-usable representation and a + memory representation that can have any combination of these quirks: + - Is little endian (bytes are reversed within a 32-bit group) + - The least-significant 32-bit word comes first (within a 64-bit + group) + - The most significant bit of a byte is at its right (bit 0 of a + register description is numerically 2^7). + Drivers may use these helpers to match the bit indices as described + in the data sheets of the peripherals they are in control of. + + When in doubt, say N. + +config PACKING_KUNIT_TEST + tristate "KUnit tests for packing library" if !KUNIT_ALL_TESTS + depends on PACKING && KUNIT + default KUNIT_ALL_TESTS + help + This builds KUnit tests for the packing library. + + For more information on KUnit and unit tests in general, + please refer to the KUnit documentation in Documentation/dev-tools/kunit/. + + When in doubt, say N. + config BITREVERSE tristate -config RATIONAL - boolean +config HAVE_ARCH_BITREVERSE + bool + default n + help + This option enables the use of hardware bit-reversal instructions on + architectures which support such operations. -config GENERIC_STRNCPY_FROM_USER +config ARCH_HAS_STRNCPY_FROM_USER bool -config GENERIC_STRNLEN_USER +config ARCH_HAS_STRNLEN_USER bool +config GENERIC_STRNCPY_FROM_USER + def_bool !ARCH_HAS_STRNCPY_FROM_USER + +config GENERIC_STRNLEN_USER + def_bool !ARCH_HAS_STRNLEN_USER + config GENERIC_NET_UTILS bool -config GENERIC_FIND_FIRST_BIT - bool +source "lib/math/Kconfig" config NO_GENERIC_PCI_IOPORT_MAP bool -config GENERIC_PCI_IOMAP - bool - config GENERIC_IOMAP bool select GENERIC_PCI_IOMAP -config GENERIC_IO - boolean - default n - config STMP_DEVICE bool -config PERCPU_RWSEM - boolean +config ARCH_USE_CMPXCHG_LOCKREF + bool -config CRC_CCITT - tristate "CRC-CCITT functions" - help - This option is provided for the case where no in-kernel-tree - modules require CRC-CCITT functions, but a module built outside - the kernel tree does. Such modules that use library CRC-CCITT - functions require M here. +config ARCH_HAS_FAST_MULTIPLIER + bool -config CRC16 - tristate "CRC16 functions" - help - This option is provided for the case where no in-kernel-tree - modules require CRC16 functions, but a module built outside - the kernel tree does. Such modules that use library CRC16 - functions require M here. - -config CRC_T10DIF - tristate "CRC calculation for the T10 Data Integrity Field" - select CRYPTO - select CRYPTO_CRCT10DIF - help - This option is only needed if a module that's not in the - kernel tree needs to calculate CRC checks for use with the - SCSI data integrity subsystem. +config ARCH_USE_SYM_ANNOTATIONS + bool -config CRC_ITU_T - tristate "CRC ITU-T V.41 functions" +config INDIRECT_PIO + bool "Access I/O in non-MMIO mode" + depends on ARM64 + depends on HAS_IOPORT help - This option is provided for the case where no in-kernel-tree - modules require CRC ITU-T V.41 functions, but a module built outside - the kernel tree does. Such modules that use library CRC ITU-T V.41 - functions require M here. + On some platforms where no separate I/O space exists, there are I/O + hosts which can not be accessed in MMIO mode. Using the logical PIO + mechanism, the host-local I/O resource can be mapped into system + logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the + system can access the I/O devices with the mapped-logic PIO through + I/O accessors. -config CRC32 - tristate "CRC32/CRC32c functions" - default y - select BITREVERSE - help - This option is provided for the case where no in-kernel-tree - modules require CRC32/CRC32c functions, but a module built outside - the kernel tree does. Such modules that use library CRC32/CRC32c - functions require M here. + This way has relatively little I/O performance cost. Please make + sure your devices really need this configure item enabled. -config CRC32_SELFTEST - bool "CRC32 perform self test on init" - default n - depends on CRC32 - help - This option enables the CRC32 library functions to perform a - self test on initialization. The self test computes crc32_le - and crc32_be over byte strings with random alignment and length - and computes the total elapsed time and number of bytes processed. - -choice - prompt "CRC32 implementation" - depends on CRC32 - default CRC32_SLICEBY8 - help - This option allows a kernel builder to override the default choice - of CRC32 algorithm. Choose the default ("slice by 8") unless you - know that you need one of the others. + When in doubt, say N. -config CRC32_SLICEBY8 - bool "Slice by 8 bytes" - help - Calculate checksum 8 bytes at a time with a clever slicing algorithm. - This is the fastest algorithm, but comes with a 8KiB lookup table. - Most modern processors have enough cache to hold this table without - thrashing the cache. - - This is the default implementation choice. Choose this one unless - you have a good reason not to. - -config CRC32_SLICEBY4 - bool "Slice by 4 bytes" +config INDIRECT_IOMEM + bool help - Calculate checksum 4 bytes at a time with a clever slicing algorithm. - This is a bit slower than slice by 8, but has a smaller 4KiB lookup - table. - - Only choose this option if you know what you are doing. + This is selected by other options/architectures to provide the + emulated iomem accessors. -config CRC32_SARWATE - bool "Sarwate's Algorithm (one byte at a time)" +config INDIRECT_IOMEM_FALLBACK + bool + depends on INDIRECT_IOMEM help - Calculate checksum a byte at a time using Sarwate's algorithm. This - is not particularly fast, but has a small 256 byte lookup table. + If INDIRECT_IOMEM is selected, this enables falling back to plain + mmio accesses when the IO memory address is not a registered + emulated region. - Only choose this option if you know what you are doing. - -config CRC32_BIT - bool "Classic Algorithm (one bit at a time)" +config TRACE_MMIO_ACCESS + bool "Register read/write tracing" + depends on TRACING && ARCH_HAVE_TRACE_MMIO_ACCESS help - Calculate checksum one bit at a time. This is VERY slow, but has - no lookup table. This is provided as a debugging option. - - Only choose this option if you are debugging crc32. + Create tracepoints for MMIO read/write operations. These trace events + can be used for logging all MMIO read/write operations. -endchoice +source "lib/crc/Kconfig" +source "lib/crypto/Kconfig" -config CRC7 - tristate "CRC7 functions" - help - This option is provided for the case where no in-kernel-tree - modules require CRC7 functions, but a module built outside - the kernel tree does. Such modules that use library CRC7 - functions require M here. - -config LIBCRC32C - tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check" - select CRYPTO - select CRYPTO_CRC32C - help - This option is provided for the case where no in-kernel-tree - modules require CRC32c functions, but a module built outside the - kernel tree does. Such modules that use library CRC32c functions - require M here. See Castagnoli93. - Module will be libcrc32c. - -config CRC8 - tristate "CRC8 function" - help - This option provides CRC8 function. Drivers may select this - when they need to do cyclic redundancy check according CRC8 - algorithm. Module will be called crc8. +config XXHASH + tristate config AUDIT_GENERIC bool depends on AUDIT && !AUDIT_ARCH default y +config AUDIT_ARCH_COMPAT_GENERIC + bool + default n + +config AUDIT_COMPAT_GENERIC + bool + depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT + default y + +config RANDOM32_SELFTEST + bool "PRNG perform self test on init" + help + This option enables the 32 bit PRNG library functions to perform a + self test on initialization. + # # compression support is select'ed if needed # +config 842_COMPRESS + select CRC32 + tristate + +config 842_DECOMPRESS + select CRC32 + tristate + config ZLIB_INFLATE tristate config ZLIB_DEFLATE tristate + select BITREVERSE + +config ZLIB_DFLTCC + def_bool y + depends on S390 + prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib" + help + Enable s390x hardware support for zlib in the kernel. config LZO_COMPRESS tristate @@ -203,6 +202,18 @@ config LZ4HC_COMPRESS config LZ4_DECOMPRESS tristate +config ZSTD_COMMON + select XXHASH + tristate + +config ZSTD_COMPRESS + select ZSTD_COMMON + tristate + +config ZSTD_DECOMPRESS + select ZSTD_COMMON + tristate + source "lib/xz/Kconfig" # @@ -231,11 +242,15 @@ config DECOMPRESS_LZ4 select LZ4_DECOMPRESS tristate +config DECOMPRESS_ZSTD + select ZSTD_DECOMPRESS + tristate + # # Generic allocator support is selected if needed # config GENERIC_ALLOCATOR - boolean + bool # # reed solomon support is select'ed if needed @@ -244,25 +259,26 @@ config REED_SOLOMON tristate config REED_SOLOMON_ENC8 - boolean + bool config REED_SOLOMON_DEC8 - boolean + bool config REED_SOLOMON_ENC16 - boolean + bool config REED_SOLOMON_DEC16 - boolean + bool # # BCH support is selected if needed # config BCH tristate + select BITREVERSE config BCH_CONST_PARAMS - boolean + bool help Drivers may select this option to force specific constant values for parameters 'm' (Galois field order) and 't' @@ -298,7 +314,7 @@ config BCH_CONST_T # Textsearch support is select'ed if needed # config TEXTSEARCH - boolean + bool config TEXTSEARCH_KMP tristate @@ -310,24 +326,71 @@ config TEXTSEARCH_FSM tristate config BTREE - boolean + bool + +config INTERVAL_TREE + bool + help + Simple, embeddable, interval-tree. Can find the start of an + overlapping range in log(n) time and then iterate over all + overlapping nodes. The algorithm is implemented as an + augmented rbtree. + + See: + + Documentation/core-api/rbtree.rst + + for more information. + +config INTERVAL_TREE_SPAN_ITER + bool + depends on INTERVAL_TREE + +config XARRAY_MULTI + bool + help + Support entries which occupy multiple consecutive indices in the + XArray. + +config ASSOCIATIVE_ARRAY + bool + help + Generic associative array. Can be searched and iterated over whilst + it is being modified. It is also reasonably quick to search and + modify. The algorithms are non-recursive, and the trees are highly + capacious. + + See: + + Documentation/core-api/assoc_array.rst + + for more information. + +config CLOSURES + bool config HAS_IOMEM - boolean + bool depends on !NO_IOMEM - select GENERIC_IO default y config HAS_IOPORT - boolean - depends on HAS_IOMEM && !NO_IOPORT - default y + bool -config HAS_DMA - boolean - depends on !NO_DMA +config HAS_IOPORT_MAP + bool + depends on HAS_IOMEM && !NO_IOPORT_MAP default y +source "kernel/dma/Kconfig" + +config SGL_ALLOC + bool + default n + +config IOMMU_HELPER + bool + config CHECK_SIGNATURE bool @@ -338,9 +401,8 @@ config CPUMASK_OFFSTACK them on the stack. This is a bit more expensive, but avoids stack overflow. -config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS - bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS - depends on BROKEN +config FORCE_NR_CPUS + def_bool !SMP config CPU_RMAP bool @@ -349,6 +411,38 @@ config CPU_RMAP config DQL bool +config GLOB + bool +# This actually supports modular compilation, but the module overhead +# is ridiculous for the amount of code involved. Until an out-of-tree +# driver asks for it, we'll just link it directly it into the kernel +# when required. Since we're ignoring out-of-tree users, there's also +# no need bother prompting for a manual decision: +# prompt "glob_match() function" + help + This option provides a glob_match function for performing + simple text pattern matching. It originated in the ATA code + to blacklist particular drive models, but other device drivers + may need similar functionality. + + All drivers in the Linux kernel tree that require this function + should automatically select this option. Say N unless you + are compiling an out-of tree driver which tells you that it + depends on this. + +config GLOB_SELFTEST + tristate "glob self-test on init" + depends on GLOB + help + This option enables a simple self-test of the glob_match + function on startup. It is primarily useful for people + working on the code to ensure they haven't introduced any + regressions. + + It only adds a little bit of code and slows kernel boot (or + module load) by a small amount, so you're welcome to play with + it, but you probably don't need it. + # # Netlink attribute parsing support is select'ed if needed # @@ -361,38 +455,16 @@ config NLATTR config GENERIC_ATOMIC64 bool -config ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE - def_bool y if GENERIC_ATOMIC64 - config LRU_CACHE tristate -config AVERAGE - bool "Averaging functions" - help - This option is provided for the case where no in-kernel-tree - modules require averaging functions, but a module built outside - the kernel tree does. Such modules that use library averaging - functions require Y here. - - If unsure, say N. - config CLZ_TAB bool -config CORDIC - tristate "CORDIC algorithm" - help - This option provides an implementation of the CORDIC algorithm; - calculations are in fixed point. Module will be called cordic. - -config DDR - bool "JEDEC DDR data" +config IRQ_POLL + bool "IRQ polling library" help - Data from JEDEC specs for DDR SDRAM memories, - particularly the AC timing parameters and addressing - information. This data is useful for drivers handling - DDR SDRAM controllers. + Helper library to poll interrupt mitigation using polling. config MPILIB tristate @@ -404,13 +476,21 @@ config MPILIB config SIGNATURE tristate - depends on KEYS && CRYPTO - select CRYPTO_SHA1 + depends on KEYS + select CRYPTO_LIB_SHA1 select MPILIB help Digital signature verification. Currently only RSA is supported. Implementation is done using GnuPG MPI library +config DIMLIB + tristate + depends on NET + help + Dynamic Interrupt Moderation library. + Implements an algorithm for dynamically changing CQ moderation values + according to run time performance. + # # libfdt files, only selected if needed. # @@ -423,8 +503,149 @@ config OID_REGISTRY Enable fast lookup object identifier registry. config UCS2_STRING - tristate + tristate + +# +# generic vdso +# +source "lib/vdso/Kconfig" source "lib/fonts/Kconfig" +config SG_SPLIT + def_bool n + help + Provides a helper to split scatterlists into chunks, each chunk being + a scatterlist. This should be selected by a driver or an API which + whishes to split a scatterlist amongst multiple DMA channels. + +config SG_POOL + def_bool n + help + Provides a helper to allocate chained scatterlists. This should be + selected by a driver or an API which whishes to allocate chained + scatterlist. + +# +# sg chaining option +# + +config ARCH_NO_SG_CHAIN + def_bool n + +config ARCH_HAS_PMEM_API + bool + +config MEMREGION + bool + +config ARCH_HAS_CPU_CACHE_INVALIDATE_MEMREGION + bool + +config GENERIC_CPU_CACHE_MAINTENANCE + bool + +config ARCH_HAS_MEMREMAP_COMPAT_ALIGN + bool + +# use memcpy to implement user copies for nommu architectures +config UACCESS_MEMCPY + bool + +config ARCH_HAS_UACCESS_FLUSHCACHE + bool + +# arch has a concept of a recoverable synchronous exception due to a +# memory-read error like x86 machine-check or ARM data-abort, and +# implements copy_mc_to_{user,kernel} to abort and report +# 'bytes-transferred' if that exception fires when accessing the source +# buffer. +config ARCH_HAS_COPY_MC + bool + +# Temporary. Goes away when all archs are cleaned up +config ARCH_STACKWALK + bool + +config STACKDEPOT + bool + select STACKTRACE + help + Stack depot: stack trace storage that avoids duplication + +config STACKDEPOT_ALWAYS_INIT + bool + select STACKDEPOT + help + Always initialize stack depot during early boot + +config STACKDEPOT_MAX_FRAMES + int "Maximum number of frames in trace saved in stack depot" + range 1 256 + default 64 + depends on STACKDEPOT + +config REF_TRACKER + bool + depends on STACKTRACE_SUPPORT + select STACKDEPOT + +config SBITMAP + bool + +config PARMAN + tristate "parman" if COMPILE_TEST + +config OBJAGG + tristate "objagg" if COMPILE_TEST + +config LWQ_TEST + bool "Boot-time test for lwq queuing" + help + Run boot-time test of light-weight queuing. + endmenu + +config GENERIC_IOREMAP + bool + +config GENERIC_LIB_ASHLDI3 + bool + +config GENERIC_LIB_ASHRDI3 + bool + +config GENERIC_LIB_LSHRDI3 + bool + +config GENERIC_LIB_MULDI3 + bool + +config GENERIC_LIB_CMPDI2 + bool + +config GENERIC_LIB_UCMPDI2 + bool + +config GENERIC_LIB_DEVMEM_IS_ALLOWED + bool + +config PLDMFW + bool + select CRC32 + default n + +config ASN1_ENCODER + tristate + +config POLYNOMIAL + tristate + +config FIRMWARE_TABLE + bool + +config UNION_FIND + bool + +config MIN_HEAP + bool |
