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
44 config ARCH_SUPPORTS_SCHED_SMT
47 config ARCH_SUPPORTS_SCHED_CLUSTER
50 config ARCH_SUPPORTS_SCHED_MC
53 config SCHED_SMT
62 config SCHED_CLUSTER
70 by sharing mid-level caches, last-level cache tags or internal
73 config SCHED_MC
74 bool "Multi-Core Cache (MC) scheduler support"
78 Multi-core scheduler support improves the CPU scheduler's decision
79 making when dealing with multi-core CPU chips at a cost of slightly
83 config HOTPLUG_CORE_SYNC
87 config HOTPLUG_CORE_SYNC_DEAD
92 config HOTPLUG_CORE_SYNC_FULL
97 config HOTPLUG_SPLIT_STARTUP
101 config HOTPLUG_PARALLEL
105 config GENERIC_IRQ_ENTRY
108 config GENERIC_SYSCALL
112 config GENERIC_ENTRY
117 config KPROBES
127 for kernel debugging, non-intrusive instrumentation and testing.
130 config JUMP_LABEL
136 makes certain almost-always-true or almost-always-false branch
139 Certain performance-sensitive kernel code, such as trace points,
153 ( On 32-bit x86, the necessary options added to the compiler
156 config STATIC_KEYS_SELFTEST
160 Boot time self-test of the branch patching code.
162 config STATIC_CALL_SELFTEST
166 Boot time self-test of the call patching code.
168 config OPTPROBES
173 config KPROBES_ON_FTRACE
182 config UPROBES
187 Uprobes is the user-space counterpart to kprobes: they
189 to establish unintrusive probes in user-space binaries and
191 are hit by user-space applications.
193 ( These probes come in the form of single-byte breakpoints,
197 config HAVE_64BIT_ALIGNED_ACCESS
210 See Documentation/core-api/unaligned-memory-access.rst for
213 config HAVE_EFFICIENT_UNALIGNED_ACCESS
229 See Documentation/core-api/unaligned-memory-access.rst for more
232 config ARCH_USE_BUILTIN_BSWAP
236 for handling byte-swapping. Using these, instead of the old
241 with a nearby load or store and use load-and-swap or
242 store-and-swap instructions if the architecture has them. It
244 hand-coded assembler in <asm/swab.h>. But just in case it
247 Any architecture with load-and-swap or store-and-swap
251 config KRETPROBES
255 config KRETPROBE_ON_RETHOOK
261 config USER_RETURN_NOTIFIER
265 Provide a kernel-internal notification when a cpu is about to
268 config HAVE_IOREMAP_PROT
271 config HAVE_KPROBES
274 config HAVE_KRETPROBES
277 config HAVE_OPTPROBES
280 config HAVE_KPROBES_ON_FTRACE
283 config ARCH_CORRECT_STACKTRACE_ON_KRETPROBE
291 config HAVE_FUNCTION_ERROR_INJECTION
294 config HAVE_NMI
297 config HAVE_FUNCTION_DESCRIPTORS
300 config TRACE_IRQFLAGS_SUPPORT
303 config TRACE_IRQFLAGS_NMI_SUPPORT
310 # arch_has_single_step() if there is hardware single-step support
311 # arch_has_block_step() if there is hardware block-step support
312 # asm/syscall.h supplying asm-generic/syscall.h interface
318 config HAVE_ARCH_TRACEHOOK
321 config HAVE_DMA_CONTIGUOUS
324 config GENERIC_SMP_IDLE_THREAD
327 config GENERIC_IDLE_POLL_SETUP
330 config ARCH_HAS_FORTIFY_SOURCE
340 config ARCH_HAS_KEEPINITRD
344 config ARCH_HAS_SET_MEMORY
348 config ARCH_HAS_SET_DIRECT_MAP
356 config ARCH_HAS_DMA_SET_UNCACHED
361 # to undo an in-place page table remap for uncached access.
363 config ARCH_HAS_DMA_CLEAR_UNCACHED
366 config ARCH_HAS_CPU_FINALIZE_INIT
369 # The architecture has a per-task state that includes the mm's PASID
370 config ARCH_HAS_CPU_PASID
374 config HAVE_ARCH_THREAD_STRUCT_WHITELIST
385 config ARCH_WANTS_DYNAMIC_TASK_STRUCT
388 config ARCH_WANTS_NO_INSTR
395 config ARCH_32BIT_OFF_T
399 All new 32-bit architectures should have 64-bit off_t type on
402 still support 32-bit off_t. This option is enabled for all such
406 config ARCH_32BIT_USTAT_F_TINODE
409 config HAVE_ASM_MODVERSIONS
413 <asm/asm-prototypes.h> to support the module versioning for symbols
416 config HAVE_REGS_AND_STACK_ACCESS_API
422 For example the kprobes-based event tracer needs this API.
424 config HAVE_RSEQ
431 config HAVE_RUST
437 config HAVE_FUNCTION_ARG_ACCESS_API
444 config HAVE_HW_BREAKPOINT
448 config HAVE_MIXED_BREAKPOINTS_REGS
459 config HAVE_USER_RETURN_NOTIFIER
462 config HAVE_PERF_EVENTS_NMI
469 config HAVE_HARDLOCKUP_DETECTOR_PERF
473 The arch chooses to use the generic perf-NMI-based hardlockup
476 config HAVE_HARDLOCKUP_DETECTOR_ARCH
485 config UNWIND_USER
488 config HAVE_UNWIND_USER_FP
492 config HAVE_PERF_REGS
496 bit-mapping of each registers and a unique architecture id.
498 config HAVE_PERF_USER_STACK_DUMP
505 config HAVE_ARCH_JUMP_LABEL
508 config HAVE_ARCH_JUMP_LABEL_RELATIVE
511 config MMU_GATHER_TABLE_FREE
514 config MMU_GATHER_RCU_TABLE_FREE
518 config MMU_GATHER_PAGE_SIZE
521 config MMU_GATHER_NO_RANGE
525 config MMU_GATHER_NO_FLUSH_CACHE
528 config MMU_GATHER_MERGE_VMAS
531 config MMU_GATHER_NO_GATHER
535 config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
545 # multi-threaded application), by reducing contention on the mm refcount.
554 # the lazy tlb reference of a kthread's ->active_mm (non-arch code has been
556 config MMU_LAZY_TLB_REFCOUNT
568 # - At the time of the final mmdrop of the mm, ensure mm_cpumask(mm) contains
570 # - It must meet the requirements for MMU_LAZY_TLB_REFCOUNT=n (see above).
571 config MMU_LAZY_TLB_SHOOTDOWN
574 config ARCH_HAVE_NMI_SAFE_CMPXCHG
577 config ARCH_HAVE_EXTRA_ELF_NOTES
581 arch-specific ELF note section to core files. It must provide two
586 config ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
589 config HAVE_ALIGNED_STRUCT_PAGE
597 config HAVE_CMPXCHG_LOCAL
600 config HAVE_CMPXCHG_DOUBLE
603 config ARCH_WEAK_RELEASE_ACQUIRE
606 config ARCH_WANT_IPC_PARSE_VERSION
609 config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
612 config ARCH_WANT_OLD_COMPAT_IPC
616 config HAVE_ARCH_SECCOMP
621 and compat syscalls if the asm-generic/seccomp.h defaults need adjustment:
622 - __NR_seccomp_read_32
623 - __NR_seccomp_write_32
624 - __NR_seccomp_exit_32
625 - __NR_seccomp_sigreturn_32
627 config HAVE_ARCH_SECCOMP_FILTER
632 - all the requirements for HAVE_ARCH_SECCOMP
633 - syscall_get_arch()
634 - syscall_get_arguments()
635 - syscall_rollback()
636 - syscall_set_return_value()
637 - SIGSYS siginfo_t support
638 - secure_computing is called from a ptrace_event()-safe context
639 - secure_computing return value is checked and a return value of -1
641 - seccomp syscall wired up
642 - if !HAVE_SPARSE_SYSCALL_NR, have SECCOMP_ARCH_NATIVE,
646 config SECCOMP
656 own address space using seccomp. Once seccomp is enabled via
663 config SECCOMP_FILTER
669 task-defined system call filtering polices.
671 See Documentation/userspace-api/seccomp_filter.rst for details.
673 config SECCOMP_CACHE_DEBUG
687 config HAVE_ARCH_KSTACK_ERASE
694 config HAVE_STACKPROTECTOR
698 - it has implemented a stack canary (e.g. __stack_chk_guard)
700 config STACKPROTECTOR
703 depends on $(cc-option,-fstack-protector)
706 This option turns on the "stack-protector" GCC feature. This
714 Functions will have the stack-protector canary logic added if they
715 have an 8-byte or larger character array on the stack.
718 gcc with the feature backported ("-fstack-protector").
724 config STACKPROTECTOR_STRONG
727 depends on $(cc-option,-fstack-protector-strong)
730 Functions will have the stack-protector canary logic added in any
733 - local variable's address used as part of the right hand side of an
735 - local variable is an array (or union containing an array),
737 - uses register local variables
740 gcc with the feature backported ("-fstack-protector-strong").
746 config ARCH_SUPPORTS_SHADOW_CALL_STACK
753 config SHADOW_CALL_STACK
764 - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
765 - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
768 ones documented for user space. The kernel must store addresses
773 config DYNAMIC_SCS
780 config LTO
785 config LTO_CLANG
791 config ARCH_SUPPORTS_LTO_CLANG
795 - compiling with Clang,
796 - compiling inline assembly with Clang's integrated assembler,
797 - and linking with LLD.
799 config ARCH_SUPPORTS_LTO_CLANG_THIN
805 config HAS_LTO_CLANG
808 depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
809 depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
827 If unsure, select LTO_NONE. Note that LTO is very resource-intensive
830 config LTO_NONE
835 config LTO_CLANG_FULL
854 config LTO_CLANG_THIN
869 config ARCH_SUPPORTS_AUTOFDO_CLANG
872 config AUTOFDO_CLANG
889 config ARCH_SUPPORTS_PROPELLER_CLANG
892 config PROPELLER_CLANG
908 config ARCH_SUPPORTS_CFI
912 Control-Flow Integrity (CFI) checking (-fsanitize=kcfi).
914 config ARCH_USES_CFI_TRAPS
920 config ARCH_USES_CFI_GENERIC_LLVM_PASS
924 KCFIPass in LLVM to expand kCFI bundles instead of architecture-specific
927 config CFI
931 depends on $(cc-option,-fsanitize=kcfi)
933 This option enables forward-edge Control Flow Integrity (CFI)
943 config CFI_CLANG
947 Transitional config for CFI_CLANG to CFI migration.
949 config CFI_ICALL_NORMALIZE_INTEGERS
965 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS
967 depends on $(cc-option,-fsanitize=kcfi -fsanitize-cfi-icall-experimental-normalize-integers)
968 # With GCOV/KASAN we need this fix: https://github.com/llvm/llvm-project/pull/104826
971 config HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC
976 # With GCOV/KASAN we need this fix: https://github.com/rust-lang/rust/pull/129373
980 config CFI_PERMISSIVE
990 config HAVE_ARCH_WITHIN_STACK_FRAMES
999 config HAVE_CONTEXT_TRACKING_USER
1004 Syscalls need to be wrapped inside user_exit()-user_enter(), either
1010 config HAVE_CONTEXT_TRACKING_USER_OFFSTACK
1020 - Critical entry code isn't preemptible (or better yet:
1022 - No use of RCU read side critical sections, unless ct_nmi_enter()
1024 - No use of instrumentation, unless instrumentation_begin() got
1027 config HAVE_TIF_NOHZ
1033 config HAVE_VIRT_CPU_ACCOUNTING
1036 config HAVE_VIRT_CPU_ACCOUNTING_IDLE
1042 config ARCH_HAS_SCALED_CPUTIME
1045 config HAVE_VIRT_CPU_ACCOUNTING_GEN
1049 With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
1052 cputime_t. For example, reading/writing 64-bit cputime_t on
1053 some 32-bit arches may require multiple accesses, so proper
1056 config HAVE_IRQ_TIME_ACCOUNTING
1062 config HAVE_MOVE_PUD
1069 config HAVE_MOVE_PMD
1074 config HAVE_ARCH_TRANSPARENT_HUGEPAGE
1077 config HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
1080 config HAVE_ARCH_HUGE_VMAP
1084 # Archs that select this would be capable of PMD-sized vmaps (i.e.,
1088 config HAVE_ARCH_HUGE_VMALLOC
1092 config ARCH_WANT_HUGE_PMD_SHARE
1097 config ARCH_WANT_KERNEL_PMD_MKWRITE
1100 config ARCH_WANT_PMD_MKWRITE
1103 config HAVE_ARCH_SOFT_DIRTY
1106 config HAVE_MOD_ARCH_SPECIFIC
1110 just need a simple module loader without arch specific data - those
1113 config MODULES_USE_ELF_RELA
1119 config MODULES_USE_ELF_REL
1125 config ARCH_WANTS_MODULES_DATA_IN_VMALLOC
1131 config ARCH_WANTS_EXECMEM_LATE
1136 enough entropy for module space randomization, for instance
1139 config ARCH_HAS_EXECMEM_ROX
1144 with read-only execute permissions. Architecture must implement
1147 config HAVE_IRQ_EXIT_ON_IRQ_STACK
1157 config HAVE_SOFTIRQ_ON_OWN_STACK
1163 config SOFTIRQ_ON_OWN_STACK
1166 config ALTERNATE_USER_ADDRESS_SPACE
1170 spaces for kernel and user space pointers. In this case, the
1173 config PGTABLE_LEVELS
1177 config ARCH_HAS_ELF_RANDOMIZE
1182 - arch_mmap_rnd()
1183 - arch_randomize_brk()
1185 config HAVE_ARCH_MMAP_RND_BITS
1191 - ARCH_MMAP_RND_BITS_MIN
1192 - ARCH_MMAP_RND_BITS_MAX
1194 config HAVE_EXIT_THREAD
1199 config ARCH_MMAP_RND_BITS_MIN
1202 config ARCH_MMAP_RND_BITS_MAX
1205 config ARCH_MMAP_RND_BITS_DEFAULT
1208 config ARCH_MMAP_RND_BITS
1223 config HAVE_ARCH_MMAP_RND_COMPAT_BITS
1230 - ARCH_MMAP_RND_COMPAT_BITS_MIN
1231 - ARCH_MMAP_RND_COMPAT_BITS_MAX
1233 config ARCH_MMAP_RND_COMPAT_BITS_MIN
1236 config ARCH_MMAP_RND_COMPAT_BITS_MAX
1239 config ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
1242 config ARCH_MMAP_RND_COMPAT_BITS
1258 config HAVE_ARCH_COMPAT_MMAP_BASES
1261 This allows 64bit applications to invoke 32-bit mmap() syscall
1262 and vice-versa 32-bit applications to call 64-bit mmap().
1265 config HAVE_PAGE_SIZE_4KB
1268 config HAVE_PAGE_SIZE_8KB
1271 config HAVE_PAGE_SIZE_16KB
1274 config HAVE_PAGE_SIZE_32KB
1277 config HAVE_PAGE_SIZE_64KB
1280 config HAVE_PAGE_SIZE_256KB
1286 config PAGE_SIZE_4KB
1297 config PAGE_SIZE_8KB
1304 config PAGE_SIZE_16KB
1312 per-page operations in the kernel at the expense of a larger
1315 config PAGE_SIZE_32KB
1325 config PAGE_SIZE_64KB
1332 This is not suitable for general-purpose workloads but the
1335 large in-memory data rather than small files.
1337 config PAGE_SIZE_256KB
1343 that have been compiled with '-zmax-page-size' set to 256KiB
1348 config PAGE_SIZE_LESS_THAN_64KB
1353 config PAGE_SIZE_LESS_THAN_256KB
1357 config PAGE_SHIFT
1367 # address by giving priority to top-down scheme only if the process
1371 # - STACK_RND_MASK
1372 config ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
1377 config HAVE_OBJTOOL
1380 config HAVE_JUMP_LABEL_HACK
1383 config HAVE_NOINSTR_HACK
1386 config HAVE_NOINSTR_VALIDATION
1389 config HAVE_UACCESS_VALIDATION
1393 config HAVE_STACK_VALIDATION
1396 Architecture supports objtool compile-time frame pointer rule
1399 config HAVE_RELIABLE_STACKTRACE
1406 config HAVE_ARCH_HASH
1411 file which provides platform-specific implementations of some
1414 config HAVE_ARCH_NVRAM_OPS
1417 config ISA_BUS_API
1423 config CLONE_BACKWARDS
1429 config CLONE_BACKWARDS2
1434 config CLONE_BACKWARDS3
1440 config ODD_RT_SIGACTION
1445 config OLD_SIGSUSPEND
1448 Architecture has old sigsuspend(2) syscall, of one-argument variety
1450 config OLD_SIGSUSPEND3
1453 Even weirder antique ABI - three-argument sigsuspend(2)
1455 config OLD_SIGACTION
1459 as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
1463 config COMPAT_OLD_SIGACTION
1466 config COMPAT_32BIT_TIME
1467 bool "Provide system calls for 32-bit time_t"
1471 This is relevant on all 32-bit architectures, and 64-bit architectures
1474 config ARCH_NO_PREEMPT
1477 config ARCH_SUPPORTS_RT
1480 config CPU_NO_EFFICIENT_FFS
1483 config HAVE_ARCH_VMAP_STACK
1487 in vmalloc space. This means:
1489 - vmalloc space must be large enough to hold many kernel stacks.
1490 This may rule out many 32-bit architectures.
1492 - Stacks in vmalloc space need to work reliably. For example, if
1499 - If the stack overflows into a guard page, something reasonable
1503 config VMAP_STACK
1505 bool "Use a virtually-mapped stack"
1509 Enable this if you want the use virtually-mapped kernel stacks
1511 caught immediately rather than causing difficult-to-diagnose
1518 config HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
1524 syscall exit. Careful removal of -fstack-protector-strong and
1525 -fstack-protector should also be applied to the entry code and
1530 config RANDOMIZE_KSTACK_OFFSET
1538 cross-syscall address exposures.
1546 config RANDOMIZE_KSTACK_OFFSET_DEFAULT
1551 "randomize_kstack_offset=on/off", and this config chooses the default
1554 config ARCH_OPTIONAL_KERNEL_RWX
1557 config ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
1560 config ARCH_HAS_STRICT_KERNEL_RWX
1563 config STRICT_KERNEL_RWX
1564 bool "Make kernel text and rodata read-only" if ARCH_OPTIONAL_KERNEL_RWX
1568 If this is set, kernel text and rodata memory will be made read-only,
1569 and non-text memory will be made non-executable. This provides
1576 config ARCH_HAS_STRICT_MODULE_RWX
1579 config STRICT_MODULE_RWX
1584 If this is set, module text and rodata memory will be made read-only,
1585 and non-text memory will be made non-executable. This provides
1588 # select if the architecture provides an asm/dma-direct.h header
1589 config ARCH_HAS_PHYS_TO_DMA
1592 config ARCH_HAS_CPU_RESCTRL
1600 config HAVE_ARCH_COMPILER_H
1605 linux/compiler-*.h in order to override macro definitions that those
1608 config HAVE_ARCH_LIBGCC_H
1616 config HAVE_ARCH_PREL32_RELOCATIONS
1619 May be selected by an architecture if it supports place-relative
1620 32-bit relocations, both in the toolchain and in the module loader,
1626 config ARCH_USE_MEMREMAP_PROT
1629 config LOCK_EVENT_COUNTS
1633 Enable light-weight counting of various locking related events
1639 config ARCH_HAS_RELR
1642 config RELR
1649 well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
1652 config ARCH_HAS_MEM_ENCRYPT
1655 config ARCH_HAS_CC_PLATFORM
1658 config HAVE_SPARSE_SYSCALL_NR
1662 to save space. For example, MIPS architecture has a syscall array with
1666 config ARCH_HAS_VDSO_ARCH_DATA
1670 config ARCH_HAS_VDSO_TIME_DATA
1673 config HAVE_STATIC_CALL
1676 config HAVE_STATIC_CALL_INLINE
1681 config HAVE_PREEMPT_DYNAMIC
1684 config HAVE_PREEMPT_DYNAMIC_CALL
1702 config HAVE_PREEMPT_DYNAMIC_KEY
1711 static key. This should have slightly lower overhead than non-inline
1719 config ARCH_WANT_LD_ORPHAN_WARN
1723 included, size-asserted, or discarded in the linker scripts. This is
1728 config HAVE_ARCH_PFN_VALID
1731 config ARCH_SUPPORTS_DEBUG_PAGEALLOC
1734 config ARCH_SUPPORTS_PAGE_TABLE_CHECK
1737 config ARCH_SPLIT_ARG64
1740 If a 32-bit architecture requires 64-bit arguments to be split into
1741 pairs of 32-bit arguments, select this option.
1743 config ARCH_HAS_ELFCORE_COMPAT
1746 config ARCH_HAS_PARANOID_L1D_FLUSH
1749 config ARCH_HAVE_TRACE_MMIO_ACCESS
1752 config DYNAMIC_SIGFRAME
1756 config HAVE_ARCH_NODE_DEV_GROUP
1759 config ARCH_HAS_HW_PTE_YOUNG
1767 config ARCH_HAS_NONLEAF_PMD_YOUNG
1771 accessed bit in non-leaf PMD entries when using them as part of linear
1773 may use this capability to reduce their search space.
1775 config ARCH_HAS_KERNEL_FPU_SUPPORT
1778 Architectures that select this option can run floating-point code in
1779 the kernel, as described in Documentation/core-api/floating-point.rst.
1781 config ARCH_VMLINUX_NEEDS_RELOCS
1789 config HAVE_GENERIC_TIF_BITS
1794 source "scripts/gcc-plugins/Kconfig"
1796 config FUNCTION_ALIGNMENT_4B
1799 config FUNCTION_ALIGNMENT_8B
1802 config FUNCTION_ALIGNMENT_16B
1805 config FUNCTION_ALIGNMENT_32B
1808 config FUNCTION_ALIGNMENT_64B
1811 config FUNCTION_ALIGNMENT
1820 config CC_HAS_MIN_FUNCTION_ALIGNMENT
1821 # Detect availability of the GCC option -fmin-function-alignment which
1823 # -falign-functions which the compiler ignores for cold functions.
1824 def_bool $(cc-option, -fmin-function-alignment=8)
1826 config CC_HAS_SANE_FUNCTION_ALIGNMENT
1827 # Set if the guaranteed alignment with -fmin-function-alignment is
1829 # strict alignment always, even with -falign-functions.
1832 config ARCH_NEED_CMPXCHG_1_EMU
1835 config ARCH_WANTS_PRE_LINK_VMLINUX
1841 config ARCH_HAS_CPU_ATTACK_VECTORS