perf test: Fix bpf test sample mismatch reporting
[linux-2.6-microblaze.git] / lib / Kconfig
1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # Library configuration
4 #
5
6 config BINARY_PRINTF
7         def_bool n
8
9 menu "Library routines"
10
11 config RAID6_PQ
12         tristate
13
14 config RAID6_PQ_BENCHMARK
15         bool "Automatically choose fastest RAID6 PQ functions"
16         depends on RAID6_PQ
17         default y
18         help
19           Benchmark all available RAID6 PQ functions on init and choose the
20           fastest one.
21
22 config LINEAR_RANGES
23         tristate
24
25 config PACKING
26         bool "Generic bitfield packing and unpacking"
27         default n
28         help
29           This option provides the packing() helper function, which permits
30           converting bitfields between a CPU-usable representation and a
31           memory representation that can have any combination of these quirks:
32             - Is little endian (bytes are reversed within a 32-bit group)
33             - The least-significant 32-bit word comes first (within a 64-bit
34               group)
35             - The most significant bit of a byte is at its right (bit 0 of a
36               register description is numerically 2^7).
37           Drivers may use these helpers to match the bit indices as described
38           in the data sheets of the peripherals they are in control of.
39
40           When in doubt, say N.
41
42 config BITREVERSE
43         tristate
44
45 config HAVE_ARCH_BITREVERSE
46         bool
47         default n
48         depends on BITREVERSE
49         help
50           This option enables the use of hardware bit-reversal instructions on
51           architectures which support such operations.
52
53 config ARCH_HAS_STRNCPY_FROM_USER
54         bool
55
56 config ARCH_HAS_STRNLEN_USER
57         bool
58
59 config GENERIC_STRNCPY_FROM_USER
60         def_bool !ARCH_HAS_STRNCPY_FROM_USER
61
62 config GENERIC_STRNLEN_USER
63         def_bool !ARCH_HAS_STRNLEN_USER
64
65 config GENERIC_NET_UTILS
66         bool
67
68 config GENERIC_FIND_FIRST_BIT
69         bool
70
71 source "lib/math/Kconfig"
72
73 config NO_GENERIC_PCI_IOPORT_MAP
74         bool
75
76 config GENERIC_PCI_IOMAP
77         bool
78
79 config GENERIC_IOMAP
80         bool
81         select GENERIC_PCI_IOMAP
82
83 config STMP_DEVICE
84         bool
85
86 config ARCH_USE_CMPXCHG_LOCKREF
87         bool
88
89 config ARCH_HAS_FAST_MULTIPLIER
90         bool
91
92 config ARCH_USE_SYM_ANNOTATIONS
93         bool
94
95 config INDIRECT_PIO
96         bool "Access I/O in non-MMIO mode"
97         depends on ARM64
98         help
99           On some platforms where no separate I/O space exists, there are I/O
100           hosts which can not be accessed in MMIO mode. Using the logical PIO
101           mechanism, the host-local I/O resource can be mapped into system
102           logic PIO space shared with MMIO hosts, such as PCI/PCIe, then the
103           system can access the I/O devices with the mapped-logic PIO through
104           I/O accessors.
105
106           This way has relatively little I/O performance cost. Please make
107           sure your devices really need this configure item enabled.
108
109           When in doubt, say N.
110
111 config INDIRECT_IOMEM
112         bool
113         help
114           This is selected by other options/architectures to provide the
115           emulated iomem accessors.
116
117 config INDIRECT_IOMEM_FALLBACK
118         bool
119         depends on INDIRECT_IOMEM
120         help
121           If INDIRECT_IOMEM is selected, this enables falling back to plain
122           mmio accesses when the IO memory address is not a registered
123           emulated region.
124
125 config CRC_CCITT
126         tristate "CRC-CCITT functions"
127         help
128           This option is provided for the case where no in-kernel-tree
129           modules require CRC-CCITT functions, but a module built outside
130           the kernel tree does. Such modules that use library CRC-CCITT
131           functions require M here.
132
133 config CRC16
134         tristate "CRC16 functions"
135         help
136           This option is provided for the case where no in-kernel-tree
137           modules require CRC16 functions, but a module built outside
138           the kernel tree does. Such modules that use library CRC16
139           functions require M here.
140
141 config CRC_T10DIF
142         tristate "CRC calculation for the T10 Data Integrity Field"
143         select CRYPTO
144         select CRYPTO_CRCT10DIF
145         help
146           This option is only needed if a module that's not in the
147           kernel tree needs to calculate CRC checks for use with the
148           SCSI data integrity subsystem.
149
150 config CRC_ITU_T
151         tristate "CRC ITU-T V.41 functions"
152         help
153           This option is provided for the case where no in-kernel-tree
154           modules require CRC ITU-T V.41 functions, but a module built outside
155           the kernel tree does. Such modules that use library CRC ITU-T V.41
156           functions require M here.
157
158 config CRC32
159         tristate "CRC32/CRC32c functions"
160         default y
161         select BITREVERSE
162         help
163           This option is provided for the case where no in-kernel-tree
164           modules require CRC32/CRC32c functions, but a module built outside
165           the kernel tree does. Such modules that use library CRC32/CRC32c
166           functions require M here.
167
168 config CRC32_SELFTEST
169         tristate "CRC32 perform self test on init"
170         depends on CRC32
171         help
172           This option enables the CRC32 library functions to perform a
173           self test on initialization. The self test computes crc32_le
174           and crc32_be over byte strings with random alignment and length
175           and computes the total elapsed time and number of bytes processed.
176
177 choice
178         prompt "CRC32 implementation"
179         depends on CRC32
180         default CRC32_SLICEBY8
181         help
182           This option allows a kernel builder to override the default choice
183           of CRC32 algorithm.  Choose the default ("slice by 8") unless you
184           know that you need one of the others.
185
186 config CRC32_SLICEBY8
187         bool "Slice by 8 bytes"
188         help
189           Calculate checksum 8 bytes at a time with a clever slicing algorithm.
190           This is the fastest algorithm, but comes with a 8KiB lookup table.
191           Most modern processors have enough cache to hold this table without
192           thrashing the cache.
193
194           This is the default implementation choice.  Choose this one unless
195           you have a good reason not to.
196
197 config CRC32_SLICEBY4
198         bool "Slice by 4 bytes"
199         help
200           Calculate checksum 4 bytes at a time with a clever slicing algorithm.
201           This is a bit slower than slice by 8, but has a smaller 4KiB lookup
202           table.
203
204           Only choose this option if you know what you are doing.
205
206 config CRC32_SARWATE
207         bool "Sarwate's Algorithm (one byte at a time)"
208         help
209           Calculate checksum a byte at a time using Sarwate's algorithm.  This
210           is not particularly fast, but has a small 256 byte lookup table.
211
212           Only choose this option if you know what you are doing.
213
214 config CRC32_BIT
215         bool "Classic Algorithm (one bit at a time)"
216         help
217           Calculate checksum one bit at a time.  This is VERY slow, but has
218           no lookup table.  This is provided as a debugging option.
219
220           Only choose this option if you are debugging crc32.
221
222 endchoice
223
224 config CRC64
225         tristate "CRC64 functions"
226         help
227           This option is provided for the case where no in-kernel-tree
228           modules require CRC64 functions, but a module built outside
229           the kernel tree does. Such modules that use library CRC64
230           functions require M here.
231
232 config CRC4
233         tristate "CRC4 functions"
234         help
235           This option is provided for the case where no in-kernel-tree
236           modules require CRC4 functions, but a module built outside
237           the kernel tree does. Such modules that use library CRC4
238           functions require M here.
239
240 config CRC7
241         tristate "CRC7 functions"
242         help
243           This option is provided for the case where no in-kernel-tree
244           modules require CRC7 functions, but a module built outside
245           the kernel tree does. Such modules that use library CRC7
246           functions require M here.
247
248 config LIBCRC32C
249         tristate "CRC32c (Castagnoli, et al) Cyclic Redundancy-Check"
250         select CRYPTO
251         select CRYPTO_CRC32C
252         help
253           This option is provided for the case where no in-kernel-tree
254           modules require CRC32c functions, but a module built outside the
255           kernel tree does. Such modules that use library CRC32c functions
256           require M here.  See Castagnoli93.
257           Module will be libcrc32c.
258
259 config CRC8
260         tristate "CRC8 function"
261         help
262           This option provides CRC8 function. Drivers may select this
263           when they need to do cyclic redundancy check according CRC8
264           algorithm. Module will be called crc8.
265
266 config XXHASH
267         tristate
268
269 config AUDIT_GENERIC
270         bool
271         depends on AUDIT && !AUDIT_ARCH
272         default y
273
274 config AUDIT_ARCH_COMPAT_GENERIC
275         bool
276         default n
277
278 config AUDIT_COMPAT_GENERIC
279         bool
280         depends on AUDIT_GENERIC && AUDIT_ARCH_COMPAT_GENERIC && COMPAT
281         default y
282
283 config RANDOM32_SELFTEST
284         bool "PRNG perform self test on init"
285         help
286           This option enables the 32 bit PRNG library functions to perform a
287           self test on initialization.
288
289 #
290 # compression support is select'ed if needed
291 #
292 config 842_COMPRESS
293         select CRC32
294         tristate
295
296 config 842_DECOMPRESS
297         select CRC32
298         tristate
299
300 config ZLIB_INFLATE
301         tristate
302
303 config ZLIB_DEFLATE
304         tristate
305         select BITREVERSE
306
307 config ZLIB_DFLTCC
308         def_bool y
309         depends on S390
310         prompt "Enable s390x DEFLATE CONVERSION CALL support for kernel zlib"
311         help
312          Enable s390x hardware support for zlib in the kernel.
313
314 config LZO_COMPRESS
315         tristate
316
317 config LZO_DECOMPRESS
318         tristate
319
320 config LZ4_COMPRESS
321         tristate
322
323 config LZ4HC_COMPRESS
324         tristate
325
326 config LZ4_DECOMPRESS
327         tristate
328
329 config ZSTD_COMPRESS
330         select XXHASH
331         tristate
332
333 config ZSTD_DECOMPRESS
334         select XXHASH
335         tristate
336
337 source "lib/xz/Kconfig"
338
339 #
340 # These all provide a common interface (hence the apparent duplication with
341 # ZLIB_INFLATE; DECOMPRESS_GZIP is just a wrapper.)
342 #
343 config DECOMPRESS_GZIP
344         select ZLIB_INFLATE
345         tristate
346
347 config DECOMPRESS_BZIP2
348         tristate
349
350 config DECOMPRESS_LZMA
351         tristate
352
353 config DECOMPRESS_XZ
354         select XZ_DEC
355         tristate
356
357 config DECOMPRESS_LZO
358         select LZO_DECOMPRESS
359         tristate
360
361 config DECOMPRESS_LZ4
362         select LZ4_DECOMPRESS
363         tristate
364
365 config DECOMPRESS_ZSTD
366         select ZSTD_DECOMPRESS
367         tristate
368
369 #
370 # Generic allocator support is selected if needed
371 #
372 config GENERIC_ALLOCATOR
373         bool
374
375 #
376 # reed solomon support is select'ed if needed
377 #
378 config REED_SOLOMON
379         tristate
380         
381 config REED_SOLOMON_ENC8
382         bool
383
384 config REED_SOLOMON_DEC8
385         bool
386
387 config REED_SOLOMON_ENC16
388         bool
389
390 config REED_SOLOMON_DEC16
391         bool
392
393 #
394 # BCH support is selected if needed
395 #
396 config BCH
397         tristate
398
399 config BCH_CONST_PARAMS
400         bool
401         help
402           Drivers may select this option to force specific constant
403           values for parameters 'm' (Galois field order) and 't'
404           (error correction capability). Those specific values must
405           be set by declaring default values for symbols BCH_CONST_M
406           and BCH_CONST_T.
407           Doing so will enable extra compiler optimizations,
408           improving encoding and decoding performance up to 2x for
409           usual (m,t) values (typically such that m*t < 200).
410           When this option is selected, the BCH library supports
411           only a single (m,t) configuration. This is mainly useful
412           for NAND flash board drivers requiring known, fixed BCH
413           parameters.
414
415 config BCH_CONST_M
416         int
417         range 5 15
418         help
419           Constant value for Galois field order 'm'. If 'k' is the
420           number of data bits to protect, 'm' should be chosen such
421           that (k + m*t) <= 2**m - 1.
422           Drivers should declare a default value for this symbol if
423           they select option BCH_CONST_PARAMS.
424
425 config BCH_CONST_T
426         int
427         help
428           Constant value for error correction capability in bits 't'.
429           Drivers should declare a default value for this symbol if
430           they select option BCH_CONST_PARAMS.
431
432 #
433 # Textsearch support is select'ed if needed
434 #
435 config TEXTSEARCH
436         bool
437
438 config TEXTSEARCH_KMP
439         tristate
440
441 config TEXTSEARCH_BM
442         tristate
443
444 config TEXTSEARCH_FSM
445         tristate
446
447 config BTREE
448         bool
449
450 config INTERVAL_TREE
451         bool
452         help
453           Simple, embeddable, interval-tree. Can find the start of an
454           overlapping range in log(n) time and then iterate over all
455           overlapping nodes. The algorithm is implemented as an
456           augmented rbtree.
457
458           See:
459
460                 Documentation/core-api/rbtree.rst
461
462           for more information.
463
464 config XARRAY_MULTI
465         bool
466         help
467           Support entries which occupy multiple consecutive indices in the
468           XArray.
469
470 config ASSOCIATIVE_ARRAY
471         bool
472         help
473           Generic associative array.  Can be searched and iterated over whilst
474           it is being modified.  It is also reasonably quick to search and
475           modify.  The algorithms are non-recursive, and the trees are highly
476           capacious.
477
478           See:
479
480                 Documentation/core-api/assoc_array.rst
481
482           for more information.
483
484 config HAS_IOMEM
485         bool
486         depends on !NO_IOMEM
487         default y
488
489 config HAS_IOPORT_MAP
490         bool
491         depends on HAS_IOMEM && !NO_IOPORT_MAP
492         default y
493
494 source "kernel/dma/Kconfig"
495
496 config SGL_ALLOC
497         bool
498         default n
499
500 config IOMMU_HELPER
501         bool
502
503 config CHECK_SIGNATURE
504         bool
505
506 config CPUMASK_OFFSTACK
507         bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
508         help
509           Use dynamic allocation for cpumask_var_t, instead of putting
510           them on the stack.  This is a bit more expensive, but avoids
511           stack overflow.
512
513 config CPU_RMAP
514         bool
515         depends on SMP
516
517 config DQL
518         bool
519
520 config GLOB
521         bool
522 #       This actually supports modular compilation, but the module overhead
523 #       is ridiculous for the amount of code involved.  Until an out-of-tree
524 #       driver asks for it, we'll just link it directly it into the kernel
525 #       when required.  Since we're ignoring out-of-tree users, there's also
526 #       no need bother prompting for a manual decision:
527 #       prompt "glob_match() function"
528         help
529           This option provides a glob_match function for performing
530           simple text pattern matching.  It originated in the ATA code
531           to blacklist particular drive models, but other device drivers
532           may need similar functionality.
533
534           All drivers in the Linux kernel tree that require this function
535           should automatically select this option.  Say N unless you
536           are compiling an out-of tree driver which tells you that it
537           depends on this.
538
539 config GLOB_SELFTEST
540         tristate "glob self-test on init"
541         depends on GLOB
542         help
543           This option enables a simple self-test of the glob_match
544           function on startup.  It is primarily useful for people
545           working on the code to ensure they haven't introduced any
546           regressions.
547
548           It only adds a little bit of code and slows kernel boot (or
549           module load) by a small amount, so you're welcome to play with
550           it, but you probably don't need it.
551
552 #
553 # Netlink attribute parsing support is select'ed if needed
554 #
555 config NLATTR
556         bool
557
558 #
559 # Generic 64-bit atomic support is selected if needed
560 #
561 config GENERIC_ATOMIC64
562        bool
563
564 config LRU_CACHE
565         tristate
566
567 config CLZ_TAB
568         bool
569
570 config IRQ_POLL
571         bool "IRQ polling library"
572         help
573           Helper library to poll interrupt mitigation using polling.
574
575 config MPILIB
576         tristate
577         select CLZ_TAB
578         help
579           Multiprecision maths library from GnuPG.
580           It is used to implement RSA digital signature verification,
581           which is used by IMA/EVM digital signature extension.
582
583 config SIGNATURE
584         tristate
585         depends on KEYS
586         select CRYPTO
587         select CRYPTO_SHA1
588         select MPILIB
589         help
590           Digital signature verification. Currently only RSA is supported.
591           Implementation is done using GnuPG MPI library
592
593 config DIMLIB
594         bool
595         help
596           Dynamic Interrupt Moderation library.
597           Implements an algorithm for dynamically changing CQ moderation values
598           according to run time performance.
599
600 #
601 # libfdt files, only selected if needed.
602 #
603 config LIBFDT
604         bool
605
606 config OID_REGISTRY
607         tristate
608         help
609           Enable fast lookup object identifier registry.
610
611 config UCS2_STRING
612         tristate
613
614 #
615 # generic vdso
616 #
617 source "lib/vdso/Kconfig"
618
619 source "lib/fonts/Kconfig"
620
621 config SG_SPLIT
622         def_bool n
623         help
624          Provides a helper to split scatterlists into chunks, each chunk being
625          a scatterlist. This should be selected by a driver or an API which
626          whishes to split a scatterlist amongst multiple DMA channels.
627
628 config SG_POOL
629         def_bool n
630         help
631          Provides a helper to allocate chained scatterlists. This should be
632          selected by a driver or an API which whishes to allocate chained
633          scatterlist.
634
635 #
636 # sg chaining option
637 #
638
639 config ARCH_NO_SG_CHAIN
640         def_bool n
641
642 config ARCH_HAS_PMEM_API
643         bool
644
645 config MEMREGION
646         bool
647
648 config ARCH_HAS_MEMREMAP_COMPAT_ALIGN
649         bool
650
651 # use memcpy to implement user copies for nommu architectures
652 config UACCESS_MEMCPY
653         bool
654
655 config ARCH_HAS_UACCESS_FLUSHCACHE
656         bool
657
658 # arch has a concept of a recoverable synchronous exception due to a
659 # memory-read error like x86 machine-check or ARM data-abort, and
660 # implements copy_mc_to_{user,kernel} to abort and report
661 # 'bytes-transferred' if that exception fires when accessing the source
662 # buffer.
663 config ARCH_HAS_COPY_MC
664         bool
665
666 # Temporary. Goes away when all archs are cleaned up
667 config ARCH_STACKWALK
668        bool
669
670 config STACKDEPOT
671         bool
672         select STACKTRACE
673
674 config STACK_HASH_ORDER
675         int "stack depot hash size (12 => 4KB, 20 => 1024KB)"
676         range 12 20
677         default 20
678         depends on STACKDEPOT
679         help
680          Select the hash size as a power of 2 for the stackdepot hash table.
681          Choose a lower value to reduce the memory impact.
682
683 config SBITMAP
684         bool
685
686 config PARMAN
687         tristate "parman" if COMPILE_TEST
688
689 config OBJAGG
690         tristate "objagg" if COMPILE_TEST
691
692 endmenu
693
694 config GENERIC_IOREMAP
695         bool
696
697 config GENERIC_LIB_ASHLDI3
698         bool
699
700 config GENERIC_LIB_ASHRDI3
701         bool
702
703 config GENERIC_LIB_LSHRDI3
704         bool
705
706 config GENERIC_LIB_MULDI3
707         bool
708
709 config GENERIC_LIB_CMPDI2
710         bool
711
712 config GENERIC_LIB_UCMPDI2
713         bool
714
715 config GENERIC_LIB_DEVMEM_IS_ALLOWED
716         bool
717
718 config PLDMFW
719         bool
720         default n
721
722 config ASN1_ENCODER
723        tristate