Lines Matching +full:non +full:- +full:tunable

1 # SPDX-License-Identifier: GPL-2.0
22 # IOMMUs not handled by dma-iommu. Drivers must never select this symbol.
29 menu "General architecture-dependent options"
34 Select if the architecture can check permissions at sub-page
70 by sharing mid-level caches, last-level cache tags or internal
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
127 for kernel debugging, non-intrusive instrumentation and testing.
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
160 Boot time self-test of the branch patching code.
166 Boot time self-test of the call patching code.
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,
210 See Documentation/core-api/unaligned-memory-access.rst for
229 See Documentation/core-api/unaligned-memory-access.rst for more
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
265 Provide a kernel-internal notification when a cpu is about to
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
361 # to undo an in-place page table remap for uncached access.
369 # The architecture has a per-task state that includes the mm's PASID
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
413 <asm/asm-prototypes.h> to support the module versioning for symbols
422 For example the kprobes-based event tracer needs this API.
473 The arch chooses to use the generic perf-NMI-based hardlockup
496 bit-mapping of each registers and a unique architecture id.
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
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).
581 arch-specific ELF note section to core files. It must provide two
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
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,
669 task-defined system call filtering polices.
671 See Documentation/userspace-api/seccomp_filter.rst for details.
698 - it has implemented a stack canary (e.g. __stack_chk_guard)
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").
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").
764 - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
765 - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
795 - compiling with Clang,
796 - compiling inline assembly with Clang's integrated assembler,
797 - and linking with LLD.
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
912 Control-Flow Integrity (CFI) checking (-fsanitize=kcfi).
924 KCFIPass in LLVM to expand kCFI bundles instead of architecture-specific
931 depends on $(cc-option,-fsanitize=kcfi)
933 This option enables forward-edge Control Flow Integrity (CFI)
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
976 # With GCOV/KASAN we need this fix: https://github.com/rust-lang/rust/pull/129373
1004 Syscalls need to be wrapped inside user_exit()-user_enter(), either
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
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
1084 # Archs that select this would be capable of PMD-sized vmaps (i.e.,
1110 just need a simple module loader without arch specific data - those
1144 with read-only execute permissions. Architecture must implement
1182 - arch_mmap_rnd()
1183 - arch_randomize_brk()
1191 - ARCH_MMAP_RND_BITS_MIN
1192 - ARCH_MMAP_RND_BITS_MAX
1221 /proc/sys/vm/mmap_rnd_bits tunable
1230 - ARCH_MMAP_RND_COMPAT_BITS_MIN
1231 - ARCH_MMAP_RND_COMPAT_BITS_MAX
1256 /proc/sys/vm/mmap_rnd_compat_bits tunable
1261 This allows 64bit applications to invoke 32-bit mmap() syscall
1262 and vice-versa 32-bit applications to call 64-bit mmap().
1312 per-page operations in the kernel at the expense of a larger
1332 This is not suitable for general-purpose workloads but the
1335 large in-memory data rather than small files.
1343 that have been compiled with '-zmax-page-size' set to 256KiB
1367 # address by giving priority to top-down scheme only if the process
1371 # - STACK_RND_MASK
1396 Architecture supports objtool compile-time frame pointer rule
1411 file which provides platform-specific implementations of some
1448 Architecture has old sigsuspend(2) syscall, of one-argument variety
1453 Even weirder antique ABI - three-argument sigsuspend(2)
1459 as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
1467 bool "Provide system calls for 32-bit time_t"
1471 This is relevant on all 32-bit architectures, and 64-bit architectures
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
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
1524 syscall exit. Careful removal of -fstack-protector-strong and
1525 -fstack-protector should also be applied to the entry code and
1538 cross-syscall address exposures.
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
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
1605 linux/compiler-*.h in order to override macro definitions that those
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,
1633 Enable light-weight counting of various locking related events
1649 well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
1711 static key. This should have slightly lower overhead than non-inline
1723 included, size-asserted, or discarded in the linker scripts. This is
1740 If a 32-bit architecture requires 64-bit arguments to be split into
1741 pairs of 32-bit arguments, select this option.
1771 accessed bit in non-leaf PMD entries when using them as part of linear
1778 Architectures that select this option can run floating-point code in
1779 the kernel, as described in Documentation/core-api/floating-point.rst.
1794 source "scripts/gcc-plugins/Kconfig"
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)
1827 # Set if the guaranteed alignment with -fmin-function-alignment is
1829 # strict alignment always, even with -falign-functions.