Lines Matching +full:no +full:- +full:unaligned +full:- +full:direct +full:- +full:access
1 # SPDX-License-Identifier: GPL-2.0
12 menu "General architecture-dependent options"
17 Select if the architecture can check permissions at sub-page
63 for kernel debugging, non-intrusive instrumentation and testing.
72 makes certain almost-always-true or almost-always-false branch
75 Certain performance-sensitive kernel code, such as trace points,
89 ( On 32-bit x86, the necessary options added to the compiler
96 Boot time self-test of the branch patching code.
102 Boot time self-test of the call patching code.
122 Uprobes is the user-space counterpart to kprobes: they
124 to establish unintrusive probes in user-space binaries and
126 are hit by user-space applications.
128 ( These probes come in the form of single-byte breakpoints,
139 architectures without unaligned access.
145 See Documentation/core-api/unaligned-memory-access.rst for
146 more information on the topic of unaligned memory accesses.
151 Some architectures are unable to perform unaligned accesses
154 unaligned access and require fixing it up in the exception
158 perform unaligned accesses efficiently to allow different
164 See Documentation/core-api/unaligned-memory-access.rst for more
165 information on the topic of unaligned memory accesses.
171 for handling byte-swapping. Using these, instead of the old
176 with a nearby load or store and use load-and-swap or
177 store-and-swap instructions if the architecture has them. It
179 hand-coded assembler in <asm/swab.h>. But just in case it
182 Any architecture with load-and-swap or store-and-swap
200 Provide a kernel-internal notification when a cpu is about to
245 # arch_has_single_step() if there is hardware single-step support
246 # arch_has_block_step() if there is hardware block-step support
247 # asm/syscall.h supplying asm-generic/syscall.h interface
296 # to undo an in-place page table remap for uncached access.
342 All new 32-bit architectures should have 64-bit off_t type on
345 still support 32-bit off_t. This option is enabled for all such
356 <asm/asm-prototypes.h> to support the module versioning for symbols
363 the API needed to access registers and stack entries from pt_regs,
365 For example the kprobes-based event tracer needs this API.
384 the API needed to access function arguments from pt_regs,
398 them but define the access type in a control register.
416 The arch chooses to use the generic perf-NMI-based hardlockup
432 bit-mapping of each registers and a unique architecture id.
438 access to the user stack pointer which is not unified across
481 # multi-threaded application), by reducing contention on the mm refcount.
483 # This can be disabled if the architecture ensures no CPUs are using an mm as a
490 # the lazy tlb reference of a kthread's ->active_mm (non-arch code has been
496 # This option allows MMU_LAZY_TLB_REFCOUNT=n. It ensures no CPUs are using an
504 # - At the time of the final mmdrop of the mm, ensure mm_cpumask(mm) contains
506 # - It must meet the requirements for MMU_LAZY_TLB_REFCOUNT=n (see above).
548 and compat syscalls if the asm-generic/seccomp.h defaults need adjustment:
549 - __NR_seccomp_read_32
550 - __NR_seccomp_write_32
551 - __NR_seccomp_exit_32
552 - __NR_seccomp_sigreturn_32
559 - all the requirements for HAVE_ARCH_SECCOMP
560 - syscall_get_arch()
561 - syscall_get_arguments()
562 - syscall_rollback()
563 - syscall_set_return_value()
564 - SIGSYS siginfo_t support
565 - secure_computing is called from a ptrace_event()-safe context
566 - secure_computing return value is checked and a return value of -1
568 - seccomp syscall wired up
569 - if !HAVE_SPARSE_SYSCALL_NR, have SECCOMP_ARCH_NATIVE,
596 task-defined system call filtering polices.
598 See Documentation/userspace-api/seccomp_filter.rst for details.
625 - it has implemented a stack canary (e.g. __stack_chk_guard)
630 depends on $(cc-option,-fstack-protector)
633 This option turns on the "stack-protector" GCC feature. This
641 Functions will have the stack-protector canary logic added if they
642 have an 8-byte or larger character array on the stack.
645 gcc with the feature backported ("-fstack-protector").
654 depends on $(cc-option,-fstack-protector-strong)
657 Functions will have the stack-protector canary logic added in any
660 - local variable's address used as part of the right hand side of an
662 - local variable is an array (or union containing an array),
664 - uses register local variables
667 gcc with the feature backported ("-fstack-protector-strong").
691 - Clang: https://clang.llvm.org/docs/ShadowCallStack.html
692 - GCC: https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
722 - compiling with Clang,
723 - compiling inline assembly with Clang's integrated assembler,
724 - and linking with LLD.
735 depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
736 depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
754 If unsure, select LTO_NONE. Note that LTO is very resource-intensive
800 Control-Flow Integrity (CFI) checking.
808 depends on $(cc-option,-fsanitize=kcfi)
810 This option enables Clang’s forward-edge Control Flow Integrity
844 Syscalls need to be wrapped inside user_exit()-user_enter(), either
860 - Critical entry code isn't preemptible (or better yet:
862 - No use of RCU read side critical sections, unless ct_nmi_enter()
864 - No use of instrumentation, unless instrumentation_begin() got
889 With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
891 to ensure there are no races in concurrent read/write of
892 cputime_t. For example, reading/writing 64-bit cputime_t on
893 some 32-bit arches may require multiple accesses, so proper
924 # Archs that select this would be capable of PMD-sized vmaps (i.e.,
936 # if there are no userspace memory management features that use it
950 just need a simple module loader without arch specific data - those
1006 - arch_mmap_rnd()
1007 - arch_randomize_brk()
1015 - ARCH_MMAP_RND_BITS_MIN
1016 - ARCH_MMAP_RND_BITS_MAX
1054 - ARCH_MMAP_RND_COMPAT_BITS_MIN
1055 - ARCH_MMAP_RND_COMPAT_BITS_MAX
1085 This allows 64bit applications to invoke 32-bit mmap() syscall
1086 and vice-versa 32-bit applications to call 64-bit mmap().
1102 # address by giving priority to top-down scheme only if the process
1106 # - STACK_RND_MASK
1131 Architecture supports objtool compile-time frame pointer rule
1146 file which provides platform-specific implementations of some
1183 Architecture has old sigsuspend(2) syscall, of one-argument variety
1188 Even weirder antique ABI - three-argument sigsuspend(2)
1194 as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
1202 bool "Provide system calls for 32-bit time_t"
1206 This is relevant on all 32-bit architectures, and 64-bit architectures
1224 - vmalloc space must be large enough to hold many kernel stacks.
1225 This may rule out many 32-bit architectures.
1227 - Stacks in vmalloc space need to work reliably. For example, if
1234 - If the stack overflows into a guard page, something reasonable
1240 bool "Use a virtually-mapped stack"
1244 Enable this if you want the use virtually-mapped kernel stacks
1246 caught immediately rather than causing difficult-to-diagnose
1259 syscall exit. Careful removal of -fstack-protector-strong and
1260 -fstack-protector should also be applied to the entry code and
1274 cross-syscall address exposures.
1300 bool "Make kernel text and rodata read-only" if ARCH_OPTIONAL_KERNEL_RWX
1304 If this is set, kernel text and rodata memory will be made read-only,
1305 and non-text memory will be made non-executable. This provides
1320 If this is set, module text and rodata memory will be made read-only,
1321 and non-text memory will be made non-executable. This provides
1324 # select if the architecture provides an asm/dma-direct.h header
1333 linux/compiler-*.h in order to override macro definitions that those
1339 May be selected by an architecture if it supports place-relative
1340 32-bit relocations, both in the toolchain and in the module loader,
1353 Enable light-weight counting of various locking related events
1369 well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
1427 static key. This should have slightly lower overhead than non-inline
1439 included, size-asserted, or discarded in the linker scripts. This is
1456 If a 32-bit architecture requires 64-bit arguments to be split into
1457 pairs of 32-bit arguments, select this option.
1479 accessed bit in non-leaf PMD entries when using them as part of linear
1485 source "scripts/gcc-plugins/Kconfig"