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
139 Uprobes is the user-space counterpart to kprobes: they
141 to establish unintrusive probes in user-space binaries and
143 are hit by user-space applications.
145 ( These probes come in the form of single-byte breakpoints,
149 config HAVE_64BIT_ALIGNED_ACCESS
162 See Documentation/core-api/unaligned-memory-access.rst for
165 config HAVE_EFFICIENT_UNALIGNED_ACCESS
181 See Documentation/core-api/unaligned-memory-access.rst for more
184 config ARCH_USE_BUILTIN_BSWAP
188 for handling byte-swapping. Using these, instead of the old
193 with a nearby load or store and use load-and-swap or
194 store-and-swap instructions if the architecture has them. It
196 hand-coded assembler in <asm/swab.h>. But just in case it
199 Any architecture with load-and-swap or store-and-swap
203 config KRETPROBES
207 config KRETPROBE_ON_RETHOOK
213 config USER_RETURN_NOTIFIER
217 Provide a kernel-internal notification when a cpu is about to
220 config HAVE_IOREMAP_PROT
223 config HAVE_KPROBES
226 config HAVE_KRETPROBES
229 config HAVE_OPTPROBES
232 config HAVE_KPROBES_ON_FTRACE
235 config ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
243 config HAVE_FUNCTION_ERROR_INJECTION
246 config HAVE_NMI
249 config HAVE_FUNCTION_DESCRIPTORS
252 config TRACE_IRQFLAGS_SUPPORT
255 config TRACE_IRQFLAGS_NMI_SUPPORT
262 # arch_has_single_step() if there is hardware single-step support
263 # arch_has_block_step() if there is hardware block-step support
264 # asm/syscall.h supplying asm-generic/syscall.h interface
270 config HAVE_ARCH_TRACEHOOK
273 config HAVE_DMA_CONTIGUOUS
276 config GENERIC_SMP_IDLE_THREAD
279 config GENERIC_IDLE_POLL_SETUP
282 config ARCH_HAS_FORTIFY_SOURCE
292 config ARCH_HAS_KEEPINITRD
296 config ARCH_HAS_SET_MEMORY
300 config ARCH_HAS_SET_DIRECT_MAP
308 config ARCH_HAS_DMA_SET_UNCACHED
313 # to undo an in-place page table remap for uncached access.
315 config ARCH_HAS_DMA_CLEAR_UNCACHED
318 config ARCH_HAS_CPU_FINALIZE_INIT
321 # The architecture has a per-task state that includes the mm's PASID
322 config ARCH_HAS_CPU_PASID
326 config HAVE_ARCH_THREAD_STRUCT_WHITELIST
337 config ARCH_WANTS_DYNAMIC_TASK_STRUCT
340 config ARCH_WANTS_NO_INSTR
347 config ARCH_32BIT_OFF_T
351 All new 32-bit architectures should have 64-bit off_t type on
354 still support 32-bit off_t. This option is enabled for all such
358 config ARCH_32BIT_USTAT_F_TINODE
361 config HAVE_ASM_MODVERSIONS
365 <asm/asm-prototypes.h> to support the module versioning for symbols
368 config HAVE_REGS_AND_STACK_ACCESS_API
374 For example the kprobes-based event tracer needs this API.
376 config HAVE_RSEQ
383 config HAVE_RUST
389 config HAVE_FUNCTION_ARG_ACCESS_API
396 config HAVE_HW_BREAKPOINT
400 config HAVE_MIXED_BREAKPOINTS_REGS
411 config HAVE_USER_RETURN_NOTIFIER
414 config HAVE_PERF_EVENTS_NMI
421 config HAVE_HARDLOCKUP_DETECTOR_PERF
425 The arch chooses to use the generic perf-NMI-based hardlockup
428 config HAVE_HARDLOCKUP_DETECTOR_ARCH
437 config HAVE_PERF_REGS
441 bit-mapping of each registers and a unique architecture id.
443 config HAVE_PERF_USER_STACK_DUMP
450 config HAVE_ARCH_JUMP_LABEL
453 config HAVE_ARCH_JUMP_LABEL_RELATIVE
456 config MMU_GATHER_TABLE_FREE
459 config MMU_GATHER_RCU_TABLE_FREE
463 config MMU_GATHER_PAGE_SIZE
466 config MMU_GATHER_NO_RANGE
470 config MMU_GATHER_NO_FLUSH_CACHE
473 config MMU_GATHER_MERGE_VMAS
476 config MMU_GATHER_NO_GATHER
480 config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
490 # multi-threaded application), by reducing contention on the mm refcount.
499 # the lazy tlb reference of a kthread's ->active_mm (non-arch code has been
501 config MMU_LAZY_TLB_REFCOUNT
513 # - At the time of the final mmdrop of the mm, ensure mm_cpumask(mm) contains
515 # - It must meet the requirements for MMU_LAZY_TLB_REFCOUNT=n (see above).
516 config MMU_LAZY_TLB_SHOOTDOWN
519 config ARCH_HAVE_NMI_SAFE_CMPXCHG
522 config ARCH_HAVE_EXTRA_ELF_NOTES
526 arch-specific ELF note section to core files. It must provide two
531 config ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
534 config HAVE_ALIGNED_STRUCT_PAGE
542 config HAVE_CMPXCHG_LOCAL
545 config HAVE_CMPXCHG_DOUBLE
548 config ARCH_WEAK_RELEASE_ACQUIRE
551 config ARCH_WANT_IPC_PARSE_VERSION
554 config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
557 config ARCH_WANT_OLD_COMPAT_IPC
561 config HAVE_ARCH_SECCOMP
566 and compat syscalls if the asm-generic/seccomp.h defaults need adjustment:
567 - __NR_seccomp_read_32
568 - __NR_seccomp_write_32
569 - __NR_seccomp_exit_32
570 - __NR_seccomp_sigreturn_32
572 config HAVE_ARCH_SECCOMP_FILTER
577 - all the requirements for HAVE_ARCH_SECCOMP
578 - syscall_get_arch()
579 - syscall_get_arguments()
580 - syscall_rollback()
581 - syscall_set_return_value()
582 - SIGSYS siginfo_t support
583 - secure_computing is called from a ptrace_event()-safe context
584 - secure_computing return value is checked and a return value of -1
586 - seccomp syscall wired up
587 - if !HAVE_SPARSE_SYSCALL_NR, have SECCOMP_ARCH_NATIVE,
591 config SECCOMP
601 own address space using seccomp. Once seccomp is enabled via
608 config SECCOMP_FILTER
614 task-defined system call filtering polices.
616 See Documentation/userspace-api/seccomp_filter.rst for details.
618 config SECCOMP_CACHE_DEBUG
632 config HAVE_ARCH_STACKLEAK
639 config HAVE_STACKPROTECTOR
643 - it has implemented a stack canary (e.g. __stack_chk_guard)
645 config STACKPROTECTOR
648 depends on $(cc-option,-fstack-protector)
651 This option turns on the "stack-protector" GCC feature. This
659 Functions will have the stack-protector canary logic added if they
660 have an 8-byte or larger character array on the stack.
663 gcc with the feature backported ("-fstack-protector").
669 config STACKPROTECTOR_STRONG
672 depends on $(cc-option,-fstack-protector-strong)
675 Functions will have the stack-protector canary logic added in any
678 - local variable's address used as part of the right hand side of an
680 - local variable is an array (or union containing an array),
682 - uses register local variables
685 gcc with the feature backported ("-fstack-protector-strong").
691 config ARCH_SUPPORTS_SHADOW_CALL_STACK
698 config SHADOW_CALL_STACK
709 - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
710 - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
713 ones documented for user space. The kernel must store addresses
718 config DYNAMIC_SCS
725 config LTO
730 config LTO_CLANG
736 config ARCH_SUPPORTS_LTO_CLANG
740 - compiling with Clang,
741 - compiling inline assembly with Clang's integrated assembler,
742 - and linking with LLD.
744 config ARCH_SUPPORTS_LTO_CLANG_THIN
750 config HAS_LTO_CLANG
753 depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
754 depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
772 If unsure, select LTO_NONE. Note that LTO is very resource-intensive
775 config LTO_NONE
780 config LTO_CLANG_FULL
799 config LTO_CLANG_THIN
814 config ARCH_SUPPORTS_CFI_CLANG
818 Control-Flow Integrity (CFI) checking.
820 config ARCH_USES_CFI_TRAPS
823 config CFI_CLANG
826 depends on $(cc-option,-fsanitize=kcfi)
828 This option enables Clang's forward-edge Control Flow Integrity
838 config CFI_ICALL_NORMALIZE_INTEGERS
854 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS_CLANG
856 depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
857 # With GCOV/KASAN we need this fix: https://github.com/llvm/llvm-project/pull/104826
860 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC
864 # With GCOV/KASAN we need this fix: https://github.com/rust-lang/rust/pull/129373
868 config CFI_PERMISSIVE
878 config HAVE_ARCH_WITHIN_STACK_FRAMES
887 config HAVE_CONTEXT_TRACKING_USER
892 Syscalls need to be wrapped inside user_exit()-user_enter(), either
898 config HAVE_CONTEXT_TRACKING_USER_OFFSTACK
908 - Critical entry code isn't preemptible (or better yet:
910 - No use of RCU read side critical sections, unless ct_nmi_enter()
912 - No use of instrumentation, unless instrumentation_begin() got
915 config HAVE_TIF_NOHZ
921 config HAVE_VIRT_CPU_ACCOUNTING
924 config HAVE_VIRT_CPU_ACCOUNTING_IDLE
930 config ARCH_HAS_SCALED_CPUTIME
933 config HAVE_VIRT_CPU_ACCOUNTING_GEN
937 With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
940 cputime_t. For example, reading/writing 64-bit cputime_t on
941 some 32-bit arches may require multiple accesses, so proper
944 config HAVE_IRQ_TIME_ACCOUNTING
950 config HAVE_MOVE_PUD
957 config HAVE_MOVE_PMD
962 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
965 config HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
968 config HAVE_ARCH_HUGE_VMAP
972 # Archs that select this would be capable of PMD-sized vmaps (i.e.,
976 config HAVE_ARCH_HUGE_VMALLOC
980 config ARCH_WANT_HUGE_PMD_SHARE
985 config ARCH_WANT_KERNEL_PMD_MKWRITE
988 config ARCH_WANT_PMD_MKWRITE
991 config HAVE_ARCH_SOFT_DIRTY
994 config HAVE_MOD_ARCH_SPECIFIC
998 just need a simple module loader without arch specific data - those
1001 config MODULES_USE_ELF_RELA
1007 config MODULES_USE_ELF_REL
1013 config ARCH_WANTS_MODULES_DATA_IN_VMALLOC
1019 config ARCH_WANTS_EXECMEM_LATE
1024 enough entropy for module space randomization, for instance
1027 config HAVE_IRQ_EXIT_ON_IRQ_STACK
1037 config HAVE_SOFTIRQ_ON_OWN_STACK
1043 config SOFTIRQ_ON_OWN_STACK
1046 config ALTERNATE_USER_ADDRESS_SPACE
1050 spaces for kernel and user space pointers. In this case, the
1053 config PGTABLE_LEVELS
1057 config ARCH_HAS_ELF_RANDOMIZE
1062 - arch_mmap_rnd()
1063 - arch_randomize_brk()
1065 config HAVE_ARCH_MMAP_RND_BITS
1071 - ARCH_MMAP_RND_BITS_MIN
1072 - ARCH_MMAP_RND_BITS_MAX
1074 config HAVE_EXIT_THREAD
1079 config ARCH_MMAP_RND_BITS_MIN
1082 config ARCH_MMAP_RND_BITS_MAX
1085 config ARCH_MMAP_RND_BITS_DEFAULT
1088 config ARCH_MMAP_RND_BITS
1103 config HAVE_ARCH_MMAP_RND_COMPAT_BITS
1110 - ARCH_MMAP_RND_COMPAT_BITS_MIN
1111 - ARCH_MMAP_RND_COMPAT_BITS_MAX
1113 config ARCH_MMAP_RND_COMPAT_BITS_MIN
1116 config ARCH_MMAP_RND_COMPAT_BITS_MAX
1119 config ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
1122 config ARCH_MMAP_RND_COMPAT_BITS
1138 config HAVE_ARCH_COMPAT_MMAP_BASES
1141 This allows 64bit applications to invoke 32-bit mmap() syscall
1142 and vice-versa 32-bit applications to call 64-bit mmap().
1145 config HAVE_PAGE_SIZE_4KB
1148 config HAVE_PAGE_SIZE_8KB
1151 config HAVE_PAGE_SIZE_16KB
1154 config HAVE_PAGE_SIZE_32KB
1157 config HAVE_PAGE_SIZE_64KB
1160 config HAVE_PAGE_SIZE_256KB
1166 config PAGE_SIZE_4KB
1177 config PAGE_SIZE_8KB
1184 config PAGE_SIZE_16KB
1192 per-page operations in the kernel at the expense of a larger
1195 config PAGE_SIZE_32KB
1205 config PAGE_SIZE_64KB
1212 This is not suitable for general-purpose workloads but the
1215 large in-memory data rather than small files.
1217 config PAGE_SIZE_256KB
1223 that have been compiled with '-zmax-page-size' set to 256KiB
1228 config PAGE_SIZE_LESS_THAN_64KB
1233 config PAGE_SIZE_LESS_THAN_256KB
1237 config PAGE_SHIFT
1247 # address by giving priority to top-down scheme only if the process
1251 # - STACK_RND_MASK
1252 config ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
1257 config HAVE_OBJTOOL
1260 config HAVE_JUMP_LABEL_HACK
1263 config HAVE_NOINSTR_HACK
1266 config HAVE_NOINSTR_VALIDATION
1269 config HAVE_UACCESS_VALIDATION
1273 config HAVE_STACK_VALIDATION
1276 Architecture supports objtool compile-time frame pointer rule
1279 config HAVE_RELIABLE_STACKTRACE
1286 config HAVE_ARCH_HASH
1291 file which provides platform-specific implementations of some
1294 config HAVE_ARCH_NVRAM_OPS
1297 config ISA_BUS_API
1303 config CLONE_BACKWARDS
1309 config CLONE_BACKWARDS2
1314 config CLONE_BACKWARDS3
1320 config ODD_RT_SIGACTION
1325 config OLD_SIGSUSPEND
1328 Architecture has old sigsuspend(2) syscall, of one-argument variety
1330 config OLD_SIGSUSPEND3
1333 Even weirder antique ABI - three-argument sigsuspend(2)
1335 config OLD_SIGACTION
1339 as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
1343 config COMPAT_OLD_SIGACTION
1346 config COMPAT_32BIT_TIME
1347 bool "Provide system calls for 32-bit time_t"
1351 This is relevant on all 32-bit architectures, and 64-bit architectures
1354 config ARCH_NO_PREEMPT
1357 config ARCH_SUPPORTS_RT
1360 config CPU_NO_EFFICIENT_FFS
1363 config HAVE_ARCH_VMAP_STACK
1367 in vmalloc space. This means:
1369 - vmalloc space must be large enough to hold many kernel stacks.
1370 This may rule out many 32-bit architectures.
1372 - Stacks in vmalloc space need to work reliably. For example, if
1379 - If the stack overflows into a guard page, something reasonable
1383 config VMAP_STACK
1385 bool "Use a virtually-mapped stack"
1389 Enable this if you want the use virtually-mapped kernel stacks
1391 caught immediately rather than causing difficult-to-diagnose
1398 config HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
1404 syscall exit. Careful removal of -fstack-protector-strong and
1405 -fstack-protector should also be applied to the entry code and
1410 config RANDOMIZE_KSTACK_OFFSET
1419 cross-syscall address exposures.
1427 config RANDOMIZE_KSTACK_OFFSET_DEFAULT
1432 "randomize_kstack_offset=on/off", and this config chooses the default
1435 config ARCH_OPTIONAL_KERNEL_RWX
1438 config ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
1441 config ARCH_HAS_STRICT_KERNEL_RWX
1444 config STRICT_KERNEL_RWX
1445 bool "Make kernel text and rodata read-only" if ARCH_OPTIONAL_KERNEL_RWX
1449 If this is set, kernel text and rodata memory will be made read-only,
1450 and non-text memory will be made non-executable. This provides
1457 config ARCH_HAS_STRICT_MODULE_RWX
1460 config STRICT_MODULE_RWX
1465 If this is set, module text and rodata memory will be made read-only,
1466 and non-text memory will be made non-executable. This provides
1469 # select if the architecture provides an asm/dma-direct.h header
1470 config ARCH_HAS_PHYS_TO_DMA
1473 config HAVE_ARCH_COMPILER_H
1478 linux/compiler-*.h in order to override macro definitions that those
1481 config HAVE_ARCH_PREL32_RELOCATIONS
1484 May be selected by an architecture if it supports place-relative
1485 32-bit relocations, both in the toolchain and in the module loader,
1491 config ARCH_USE_MEMREMAP_PROT
1494 config LOCK_EVENT_COUNTS
1498 Enable light-weight counting of various locking related events
1504 config ARCH_HAS_RELR
1507 config RELR
1514 well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
1517 config ARCH_HAS_MEM_ENCRYPT
1520 config ARCH_HAS_CC_PLATFORM
1523 config HAVE_SPARSE_SYSCALL_NR
1527 to save space. For example, MIPS architecture has a syscall array with
1531 config ARCH_HAS_VDSO_DATA
1534 config HAVE_STATIC_CALL
1537 config HAVE_STATIC_CALL_INLINE
1542 config HAVE_PREEMPT_DYNAMIC
1545 config HAVE_PREEMPT_DYNAMIC_CALL
1563 config HAVE_PREEMPT_DYNAMIC_KEY
1572 static key. This should have slightly lower overhead than non-inline
1580 config ARCH_WANT_LD_ORPHAN_WARN
1584 included, size-asserted, or discarded in the linker scripts. This is
1589 config HAVE_ARCH_PFN_VALID
1592 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
1595 config ARCH_SUPPORTS_PAGE_TABLE_CHECK
1598 config ARCH_SPLIT_ARG64
1601 If a 32-bit architecture requires 64-bit arguments to be split into
1602 pairs of 32-bit arguments, select this option.
1604 config ARCH_HAS_ELFCORE_COMPAT
1607 config ARCH_HAS_PARANOID_L1D_FLUSH
1610 config ARCH_HAVE_TRACE_MMIO_ACCESS
1613 config DYNAMIC_SIGFRAME
1617 config HAVE_ARCH_NODE_DEV_GROUP
1620 config ARCH_HAS_HW_PTE_YOUNG
1628 config ARCH_HAS_NONLEAF_PMD_YOUNG
1632 accessed bit in non-leaf PMD entries when using them as part of linear
1634 may use this capability to reduce their search space.
1636 config ARCH_HAS_KERNEL_FPU_SUPPORT
1639 Architectures that select this option can run floating-point code in
1640 the kernel, as described in Documentation/core-api/floating-point.rst.
1644 source "scripts/gcc-plugins/Kconfig"
1646 config FUNCTION_ALIGNMENT_4B
1649 config FUNCTION_ALIGNMENT_8B
1652 config FUNCTION_ALIGNMENT_16B
1655 config FUNCTION_ALIGNMENT_32B
1658 config FUNCTION_ALIGNMENT_64B
1661 config FUNCTION_ALIGNMENT
1670 config CC_HAS_MIN_FUNCTION_ALIGNMENT
1671 # Detect availability of the GCC option -fmin-function-alignment which
1673 # -falign-functions which the compiler ignores for cold functions.
1674 def_bool $(cc-option, -fmin-function-alignment=8)
1676 config CC_HAS_SANE_FUNCTION_ALIGNMENT
1677 # Set if the guaranteed alignment with -fmin-function-alignment is
1679 # strict alignment always, even with -falign-functions.
1682 config ARCH_NEED_CMPXCHG_1_EMU