Lines Matching +full:config +full:- +full:space

1 # SPDX-License-Identifier: GPL-2.0
12 config ARCH_CONFIGURES_CPU_MITIGATIONS
16 config CPU_MITIGATIONS
22 # IOMMUs not handled by dma-iommu. Drivers must never select this symbol.
24 config ARCH_HAS_DMA_OPS
29 menu "General architecture-dependent options"
31 config ARCH_HAS_SUBPAGE_FAULTS
34 Select if the architecture can check permissions at sub-page
38 config HOTPLUG_SMT
41 config SMT_NUM_THREADS_DYNAMIC
45 config HOTPLUG_CORE_SYNC
49 config HOTPLUG_CORE_SYNC_DEAD
54 config HOTPLUG_CORE_SYNC_FULL
59 config HOTPLUG_SPLIT_STARTUP
63 config HOTPLUG_PARALLEL
67 config GENERIC_ENTRY
70 config KPROBES
80 for kernel debugging, non-intrusive instrumentation and testing.
83 config JUMP_LABEL
89 makes certain almost-always-true or almost-always-false branch
92 Certain performance-sensitive kernel code, such as trace points,
106 ( On 32-bit x86, the necessary options added to the compiler
109 config STATIC_KEYS_SELFTEST
113 Boot time self-test of the branch patching code.
115 config STATIC_CALL_SELFTEST
119 Boot time self-test of the call patching code.
121 config OPTPROBES
126 config KPROBES_ON_FTRACE
135 config UPROBES
140 Uprobes is the user-space counterpart to kprobes: they
142 to establish unintrusive probes in user-space binaries and
144 are hit by user-space applications.
146 ( These probes come in the form of single-byte breakpoints,
150 config HAVE_64BIT_ALIGNED_ACCESS
163 See Documentation/core-api/unaligned-memory-access.rst for
166 config HAVE_EFFICIENT_UNALIGNED_ACCESS
182 See Documentation/core-api/unaligned-memory-access.rst for more
185 config ARCH_USE_BUILTIN_BSWAP
189 for handling byte-swapping. Using these, instead of the old
194 with a nearby load or store and use load-and-swap or
195 store-and-swap instructions if the architecture has them. It
197 hand-coded assembler in <asm/swab.h>. But just in case it
200 Any architecture with load-and-swap or store-and-swap
204 config KRETPROBES
208 config KRETPROBE_ON_RETHOOK
214 config USER_RETURN_NOTIFIER
218 Provide a kernel-internal notification when a cpu is about to
221 config HAVE_IOREMAP_PROT
224 config HAVE_KPROBES
227 config HAVE_KRETPROBES
230 config HAVE_OPTPROBES
233 config HAVE_KPROBES_ON_FTRACE
236 config ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
244 config HAVE_FUNCTION_ERROR_INJECTION
247 config HAVE_NMI
250 config HAVE_FUNCTION_DESCRIPTORS
253 config TRACE_IRQFLAGS_SUPPORT
256 config TRACE_IRQFLAGS_NMI_SUPPORT
263 # arch_has_single_step() if there is hardware single-step support
264 # arch_has_block_step() if there is hardware block-step support
265 # asm/syscall.h supplying asm-generic/syscall.h interface
271 config HAVE_ARCH_TRACEHOOK
274 config HAVE_DMA_CONTIGUOUS
277 config GENERIC_SMP_IDLE_THREAD
280 config GENERIC_IDLE_POLL_SETUP
283 config ARCH_HAS_FORTIFY_SOURCE
293 config ARCH_HAS_KEEPINITRD
297 config ARCH_HAS_SET_MEMORY
301 config ARCH_HAS_SET_DIRECT_MAP
309 config ARCH_HAS_DMA_SET_UNCACHED
314 # to undo an in-place page table remap for uncached access.
316 config ARCH_HAS_DMA_CLEAR_UNCACHED
319 config ARCH_HAS_CPU_FINALIZE_INIT
322 # The architecture has a per-task state that includes the mm's PASID
323 config ARCH_HAS_CPU_PASID
327 config HAVE_ARCH_THREAD_STRUCT_WHITELIST
338 config ARCH_WANTS_DYNAMIC_TASK_STRUCT
341 config ARCH_WANTS_NO_INSTR
348 config ARCH_32BIT_OFF_T
352 All new 32-bit architectures should have 64-bit off_t type on
355 still support 32-bit off_t. This option is enabled for all such
359 config ARCH_32BIT_USTAT_F_TINODE
362 config HAVE_ASM_MODVERSIONS
366 <asm/asm-prototypes.h> to support the module versioning for symbols
369 config HAVE_REGS_AND_STACK_ACCESS_API
375 For example the kprobes-based event tracer needs this API.
377 config HAVE_RSEQ
384 config HAVE_RUST
390 config HAVE_FUNCTION_ARG_ACCESS_API
397 config HAVE_HW_BREAKPOINT
401 config HAVE_MIXED_BREAKPOINTS_REGS
412 config HAVE_USER_RETURN_NOTIFIER
415 config HAVE_PERF_EVENTS_NMI
422 config HAVE_HARDLOCKUP_DETECTOR_PERF
426 The arch chooses to use the generic perf-NMI-based hardlockup
429 config HAVE_HARDLOCKUP_DETECTOR_ARCH
438 config HAVE_PERF_REGS
442 bit-mapping of each registers and a unique architecture id.
444 config HAVE_PERF_USER_STACK_DUMP
451 config HAVE_ARCH_JUMP_LABEL
454 config HAVE_ARCH_JUMP_LABEL_RELATIVE
457 config MMU_GATHER_TABLE_FREE
460 config MMU_GATHER_RCU_TABLE_FREE
464 config MMU_GATHER_PAGE_SIZE
467 config MMU_GATHER_NO_RANGE
471 config MMU_GATHER_NO_FLUSH_CACHE
474 config MMU_GATHER_MERGE_VMAS
477 config MMU_GATHER_NO_GATHER
481 config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
491 # multi-threaded application), by reducing contention on the mm refcount.
500 # the lazy tlb reference of a kthread's ->active_mm (non-arch code has been
502 config MMU_LAZY_TLB_REFCOUNT
514 # - At the time of the final mmdrop of the mm, ensure mm_cpumask(mm) contains
516 # - It must meet the requirements for MMU_LAZY_TLB_REFCOUNT=n (see above).
517 config MMU_LAZY_TLB_SHOOTDOWN
520 config ARCH_HAVE_NMI_SAFE_CMPXCHG
523 config ARCH_HAVE_EXTRA_ELF_NOTES
527 arch-specific ELF note section to core files. It must provide two
532 config ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
535 config HAVE_ALIGNED_STRUCT_PAGE
543 config HAVE_CMPXCHG_LOCAL
546 config HAVE_CMPXCHG_DOUBLE
549 config ARCH_WEAK_RELEASE_ACQUIRE
552 config ARCH_WANT_IPC_PARSE_VERSION
555 config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
558 config ARCH_WANT_OLD_COMPAT_IPC
562 config HAVE_ARCH_SECCOMP
567 and compat syscalls if the asm-generic/seccomp.h defaults need adjustment:
568 - __NR_seccomp_read_32
569 - __NR_seccomp_write_32
570 - __NR_seccomp_exit_32
571 - __NR_seccomp_sigreturn_32
573 config HAVE_ARCH_SECCOMP_FILTER
578 - all the requirements for HAVE_ARCH_SECCOMP
579 - syscall_get_arch()
580 - syscall_get_arguments()
581 - syscall_rollback()
582 - syscall_set_return_value()
583 - SIGSYS siginfo_t support
584 - secure_computing is called from a ptrace_event()-safe context
585 - secure_computing return value is checked and a return value of -1
587 - seccomp syscall wired up
588 - if !HAVE_SPARSE_SYSCALL_NR, have SECCOMP_ARCH_NATIVE,
592 config SECCOMP
602 own address space using seccomp. Once seccomp is enabled via
609 config SECCOMP_FILTER
615 task-defined system call filtering polices.
617 See Documentation/userspace-api/seccomp_filter.rst for details.
619 config SECCOMP_CACHE_DEBUG
633 config HAVE_ARCH_STACKLEAK
640 config HAVE_STACKPROTECTOR
644 - it has implemented a stack canary (e.g. __stack_chk_guard)
646 config STACKPROTECTOR
649 depends on $(cc-option,-fstack-protector)
652 This option turns on the "stack-protector" GCC feature. This
660 Functions will have the stack-protector canary logic added if they
661 have an 8-byte or larger character array on the stack.
664 gcc with the feature backported ("-fstack-protector").
670 config STACKPROTECTOR_STRONG
673 depends on $(cc-option,-fstack-protector-strong)
676 Functions will have the stack-protector canary logic added in any
679 - local variable's address used as part of the right hand side of an
681 - local variable is an array (or union containing an array),
683 - uses register local variables
686 gcc with the feature backported ("-fstack-protector-strong").
692 config ARCH_SUPPORTS_SHADOW_CALL_STACK
699 config SHADOW_CALL_STACK
710 - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
711 - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
714 ones documented for user space. The kernel must store addresses
719 config DYNAMIC_SCS
726 config LTO
731 config LTO_CLANG
737 config ARCH_SUPPORTS_LTO_CLANG
741 - compiling with Clang,
742 - compiling inline assembly with Clang's integrated assembler,
743 - and linking with LLD.
745 config ARCH_SUPPORTS_LTO_CLANG_THIN
751 config HAS_LTO_CLANG
754 depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
755 depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
773 If unsure, select LTO_NONE. Note that LTO is very resource-intensive
776 config LTO_NONE
781 config LTO_CLANG_FULL
800 config LTO_CLANG_THIN
815 config ARCH_SUPPORTS_AUTOFDO_CLANG
818 config AUTOFDO_CLANG
835 config ARCH_SUPPORTS_PROPELLER_CLANG
838 config PROPELLER_CLANG
854 config ARCH_SUPPORTS_CFI_CLANG
858 Control-Flow Integrity (CFI) checking.
860 config ARCH_USES_CFI_TRAPS
863 config CFI_CLANG
866 depends on $(cc-option,-fsanitize=kcfi)
868 This option enables Clang's forward-edge Control Flow Integrity
878 config CFI_ICALL_NORMALIZE_INTEGERS
894 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG
896 depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
897 # With GCOV/KASAN we need this fix: https://github.com/llvm/llvm-project/pull/104826
900 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC
904 # With GCOV/KASAN we need this fix: https://github.com/rust-lang/rust/pull/129373
908 config CFI_PERMISSIVE
918 config HAVE_ARCH_WITHIN_STACK_FRAMES
927 config HAVE_CONTEXT_TRACKING_USER
932 Syscalls need to be wrapped inside user_exit()-user_enter(), either
938 config HAVE_CONTEXT_TRACKING_USER_OFFSTACK
948 - Critical entry code isn't preemptible (or better yet:
950 - No use of RCU read side critical sections, unless ct_nmi_enter()
952 - No use of instrumentation, unless instrumentation_begin() got
955 config HAVE_TIF_NOHZ
961 config HAVE_VIRT_CPU_ACCOUNTING
964 config HAVE_VIRT_CPU_ACCOUNTING_IDLE
970 config ARCH_HAS_SCALED_CPUTIME
973 config HAVE_VIRT_CPU_ACCOUNTING_GEN
977 With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
980 cputime_t. For example, reading/writing 64-bit cputime_t on
981 some 32-bit arches may require multiple accesses, so proper
984 config HAVE_IRQ_TIME_ACCOUNTING
990 config HAVE_MOVE_PUD
997 config HAVE_MOVE_PMD
1002 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
1005 config HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
1008 config HAVE_ARCH_HUGE_VMAP
1012 # Archs that select this would be capable of PMD-sized vmaps (i.e.,
1016 config HAVE_ARCH_HUGE_VMALLOC
1020 config ARCH_WANT_HUGE_PMD_SHARE
1025 config ARCH_WANT_KERNEL_PMD_MKWRITE
1028 config ARCH_WANT_PMD_MKWRITE
1031 config HAVE_ARCH_SOFT_DIRTY
1034 config HAVE_MOD_ARCH_SPECIFIC
1038 just need a simple module loader without arch specific data - those
1041 config MODULES_USE_ELF_RELA
1047 config MODULES_USE_ELF_REL
1053 config ARCH_WANTS_MODULES_DATA_IN_VMALLOC
1059 config ARCH_WANTS_EXECMEM_LATE
1064 enough entropy for module space randomization, for instance
1067 config ARCH_HAS_EXECMEM_ROX
1072 with read-only execute permissions. Architecture must implement
1075 config HAVE_IRQ_EXIT_ON_IRQ_STACK
1085 config HAVE_SOFTIRQ_ON_OWN_STACK
1091 config SOFTIRQ_ON_OWN_STACK
1094 config ALTERNATE_USER_ADDRESS_SPACE
1098 spaces for kernel and user space pointers. In this case, the
1101 config PGTABLE_LEVELS
1105 config ARCH_HAS_ELF_RANDOMIZE
1110 - arch_mmap_rnd()
1111 - arch_randomize_brk()
1113 config HAVE_ARCH_MMAP_RND_BITS
1119 - ARCH_MMAP_RND_BITS_MIN
1120 - ARCH_MMAP_RND_BITS_MAX
1122 config HAVE_EXIT_THREAD
1127 config ARCH_MMAP_RND_BITS_MIN
1130 config ARCH_MMAP_RND_BITS_MAX
1133 config ARCH_MMAP_RND_BITS_DEFAULT
1136 config ARCH_MMAP_RND_BITS
1151 config HAVE_ARCH_MMAP_RND_COMPAT_BITS
1158 - ARCH_MMAP_RND_COMPAT_BITS_MIN
1159 - ARCH_MMAP_RND_COMPAT_BITS_MAX
1161 config ARCH_MMAP_RND_COMPAT_BITS_MIN
1164 config ARCH_MMAP_RND_COMPAT_BITS_MAX
1167 config ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
1170 config ARCH_MMAP_RND_COMPAT_BITS
1186 config HAVE_ARCH_COMPAT_MMAP_BASES
1189 This allows 64bit applications to invoke 32-bit mmap() syscall
1190 and vice-versa 32-bit applications to call 64-bit mmap().
1193 config HAVE_PAGE_SIZE_4KB
1196 config HAVE_PAGE_SIZE_8KB
1199 config HAVE_PAGE_SIZE_16KB
1202 config HAVE_PAGE_SIZE_32KB
1205 config HAVE_PAGE_SIZE_64KB
1208 config HAVE_PAGE_SIZE_256KB
1214 config PAGE_SIZE_4KB
1225 config PAGE_SIZE_8KB
1232 config PAGE_SIZE_16KB
1240 per-page operations in the kernel at the expense of a larger
1243 config PAGE_SIZE_32KB
1253 config PAGE_SIZE_64KB
1260 This is not suitable for general-purpose workloads but the
1263 large in-memory data rather than small files.
1265 config PAGE_SIZE_256KB
1271 that have been compiled with '-zmax-page-size' set to 256KiB
1276 config PAGE_SIZE_LESS_THAN_64KB
1281 config PAGE_SIZE_LESS_THAN_256KB
1285 config PAGE_SHIFT
1295 # address by giving priority to top-down scheme only if the process
1299 # - STACK_RND_MASK
1300 config ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
1305 config HAVE_OBJTOOL
1308 config HAVE_JUMP_LABEL_HACK
1311 config HAVE_NOINSTR_HACK
1314 config HAVE_NOINSTR_VALIDATION
1317 config HAVE_UACCESS_VALIDATION
1321 config HAVE_STACK_VALIDATION
1324 Architecture supports objtool compile-time frame pointer rule
1327 config HAVE_RELIABLE_STACKTRACE
1334 config HAVE_ARCH_HASH
1339 file which provides platform-specific implementations of some
1342 config HAVE_ARCH_NVRAM_OPS
1345 config ISA_BUS_API
1351 config CLONE_BACKWARDS
1357 config CLONE_BACKWARDS2
1362 config CLONE_BACKWARDS3
1368 config ODD_RT_SIGACTION
1373 config OLD_SIGSUSPEND
1376 Architecture has old sigsuspend(2) syscall, of one-argument variety
1378 config OLD_SIGSUSPEND3
1381 Even weirder antique ABI - three-argument sigsuspend(2)
1383 config OLD_SIGACTION
1387 as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
1391 config COMPAT_OLD_SIGACTION
1394 config COMPAT_32BIT_TIME
1395 bool "Provide system calls for 32-bit time_t"
1399 This is relevant on all 32-bit architectures, and 64-bit architectures
1402 config ARCH_NO_PREEMPT
1405 config ARCH_SUPPORTS_RT
1408 config CPU_NO_EFFICIENT_FFS
1411 config HAVE_ARCH_VMAP_STACK
1415 in vmalloc space. This means:
1417 - vmalloc space must be large enough to hold many kernel stacks.
1418 This may rule out many 32-bit architectures.
1420 - Stacks in vmalloc space need to work reliably. For example, if
1427 - If the stack overflows into a guard page, something reasonable
1431 config VMAP_STACK
1433 bool "Use a virtually-mapped stack"
1437 Enable this if you want the use virtually-mapped kernel stacks
1439 caught immediately rather than causing difficult-to-diagnose
1446 config HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
1452 syscall exit. Careful removal of -fstack-protector-strong and
1453 -fstack-protector should also be applied to the entry code and
1458 config RANDOMIZE_KSTACK_OFFSET
1467 cross-syscall address exposures.
1475 config RANDOMIZE_KSTACK_OFFSET_DEFAULT
1480 "randomize_kstack_offset=on/off", and this config chooses the default
1483 config ARCH_OPTIONAL_KERNEL_RWX
1486 config ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
1489 config ARCH_HAS_STRICT_KERNEL_RWX
1492 config STRICT_KERNEL_RWX
1493 bool "Make kernel text and rodata read-only" if ARCH_OPTIONAL_KERNEL_RWX
1497 If this is set, kernel text and rodata memory will be made read-only,
1498 and non-text memory will be made non-executable. This provides
1505 config ARCH_HAS_STRICT_MODULE_RWX
1508 config STRICT_MODULE_RWX
1513 If this is set, module text and rodata memory will be made read-only,
1514 and non-text memory will be made non-executable. This provides
1517 # select if the architecture provides an asm/dma-direct.h header
1518 config ARCH_HAS_PHYS_TO_DMA
1521 config HAVE_ARCH_COMPILER_H
1526 linux/compiler-*.h in order to override macro definitions that those
1529 config HAVE_ARCH_LIBGCC_H
1537 config HAVE_ARCH_PREL32_RELOCATIONS
1540 May be selected by an architecture if it supports place-relative
1541 32-bit relocations, both in the toolchain and in the module loader,
1547 config ARCH_USE_MEMREMAP_PROT
1550 config LOCK_EVENT_COUNTS
1554 Enable light-weight counting of various locking related events
1560 config ARCH_HAS_RELR
1563 config RELR
1570 well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
1573 config ARCH_HAS_MEM_ENCRYPT
1576 config ARCH_HAS_CC_PLATFORM
1579 config HAVE_SPARSE_SYSCALL_NR
1583 to save space. For example, MIPS architecture has a syscall array with
1587 config ARCH_HAS_VDSO_TIME_DATA
1590 config HAVE_STATIC_CALL
1593 config HAVE_STATIC_CALL_INLINE
1598 config HAVE_PREEMPT_DYNAMIC
1601 config HAVE_PREEMPT_DYNAMIC_CALL
1619 config HAVE_PREEMPT_DYNAMIC_KEY
1628 static key. This should have slightly lower overhead than non-inline
1636 config ARCH_WANT_LD_ORPHAN_WARN
1640 included, size-asserted, or discarded in the linker scripts. This is
1645 config HAVE_ARCH_PFN_VALID
1648 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
1651 config ARCH_SUPPORTS_PAGE_TABLE_CHECK
1654 config ARCH_SPLIT_ARG64
1657 If a 32-bit architecture requires 64-bit arguments to be split into
1658 pairs of 32-bit arguments, select this option.
1660 config ARCH_HAS_ELFCORE_COMPAT
1663 config ARCH_HAS_PARANOID_L1D_FLUSH
1666 config ARCH_HAVE_TRACE_MMIO_ACCESS
1669 config DYNAMIC_SIGFRAME
1673 config HAVE_ARCH_NODE_DEV_GROUP
1676 config ARCH_HAS_HW_PTE_YOUNG
1684 config ARCH_HAS_NONLEAF_PMD_YOUNG
1688 accessed bit in non-leaf PMD entries when using them as part of linear
1690 may use this capability to reduce their search space.
1692 config ARCH_HAS_KERNEL_FPU_SUPPORT
1695 Architectures that select this option can run floating-point code in
1696 the kernel, as described in Documentation/core-api/floating-point.rst.
1700 source "scripts/gcc-plugins/Kconfig"
1702 config FUNCTION_ALIGNMENT_4B
1705 config FUNCTION_ALIGNMENT_8B
1708 config FUNCTION_ALIGNMENT_16B
1711 config FUNCTION_ALIGNMENT_32B
1714 config FUNCTION_ALIGNMENT_64B
1717 config FUNCTION_ALIGNMENT
1726 config CC_HAS_MIN_FUNCTION_ALIGNMENT
1727 # Detect availability of the GCC option -fmin-function-alignment which
1729 # -falign-functions which the compiler ignores for cold functions.
1730 def_bool $(cc-option, -fmin-function-alignment=8)
1732 config CC_HAS_SANE_FUNCTION_ALIGNMENT
1733 # Set if the guaranteed alignment with -fmin-function-alignment is
1735 # strict alignment always, even with -falign-functions.
1738 config ARCH_NEED_CMPXCHG_1_EMU
1741 config ARCH_WANTS_PRE_LINK_VMLINUX