Lines Matching +full:required +full:- +full:for +full:- +full:hardware +full:- +full:jobs

1 # SPDX-License-Identifier: GPL-2.0-only
8 - Re-run Kconfig when the compiler is updated
13 - Ensure full rebuild when the compiler is updated
14 include/linux/compiler-version.h contains this option in the comment
16 auto-generated dependency. When the compiler is updated, syncconfig
20 def_bool $(success,test "$(cc-name)" = GCC)
24 default $(cc-version) if CC_IS_GCC
28 def_bool $(success,test "$(cc-name)" = Clang)
32 default $(cc-version) if CC_IS_CLANG
36 def_bool $(success,test "$(as-name)" = GNU)
39 def_bool $(success,test "$(as-name)" = LLVM)
45 default $(as-version)
48 def_bool $(success,test "$(ld-name)" = BFD)
52 default $(ld-version) if LD_IS_BFD
56 def_bool $(success,test "$(ld-name)" = LLD)
60 default $(ld-version) if LD_IS_LLD
65 default $(rustc-version)
75 Please see Documentation/rust/quick-start.rst for instructions on how
83 default $(rustc-llvm-version)
87 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m64-flag)) if 64BIT
88 default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAGS) $(m32-flag))
103 depends on $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
105 depends on $(success,echo 'void b(void **);void* c(void);int f(void){{asm goto(""::::l0);return 0;l0:return 1;}void *x __attribute__((cleanup(b)))=c();{asm goto(""::::l1);return 2;l1:return 3;}}' | $(CC) -x c - -c -o /dev/null)
109 # Detect buggy gcc and clang, fixed in gcc-11 clang-14.
110 def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null)
113 def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
116 def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
122 # https://github.com/llvm/llvm-project/commit/c44fa3e8a9a44c2e9a575768a3c185354b9f6c17
129 def_bool $(success,echo '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
136 # https://github.com/llvm/llvm-project/commit/160fb1121cdf703c3ef5e61fb26c5659eb581489
143 def_bool $(success,echo 'char tag[][4] __attribute__((__nonstring__)) = { };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror)
147 # https://github.com/llvm/llvm-project/pull/130661
167 default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))
218 drivers to compile-test them.
229 enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
245 Compile test headers exported to user-space to ensure they are
246 self-contained, i.e. compilable as standalone units.
249 headers are self-contained, say Y here. Otherwise, choose N.
252 string "Local version - append to kernel release"
255 This will show up when you type uname, for example.
267 release tree by looking for git tags that belong to the current
270 A string of the format -gxxxxxxxx will be added to the localversion
271 if a git-based tree is found. The string generated by this will be
278 $ git rev-parse --verify HEAD
288 This is mostly useful for distributions which want to ensure the
320 The linux kernel is a kind of self-extracting executable.
328 version of this functionality (bzip2 only), for 2.4, was
331 High compression options are mostly useful for users, who
332 are low on disk space (embedded systems), but for whom ram
351 Bzip2 uses a large amount of memory. For modern kernels you
352 will need at least 8MB RAM or more for booting.
369 comparison to gzip. On architectures for which there is a BCJ
370 filter (i386, x86_64, ARM, ARM64, RISC-V, big endian PowerPC,
390 LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
405 will need at least 192 KB RAM or more for booting. The zstd command
406 line tool is required for compression.
413 you want. It is useful for debugging the kernel in slow simulation
424 This option determines the default init for the system if no init=
447 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
471 programs written e.g. for Solaris with use of its POSIX message
491 This is a general notification queue for the kernel to pass events to
493 with watches for key/keyring change notifications and device
496 See Documentation/core-api/watch_queue.rst
506 See the man page for more details.
513 kernel subsystem, such as SELinux (which requires this for
539 # Kind of a stub config for the pure tick based cputime accounting
560 this also enables accounting of stolen time on logically-partitioned
573 kernel-user boundaries using the context tracking subsystem.
577 For now this is only useful if you are working on the full
642 for processing it. A preliminary version of these tools is available
651 Export selected statistics for tasks/processes through the
660 bool "Enable per-task delay accounting"
664 Collect information on time spent by a task waiting for system
667 relative to other tasks for cpu, io, rss limits etc.
676 to userland for processing over the taskstats interface.
681 bool "Enable per-task storage I/O accounting"
703 which aggregate pressure stalls for the grouped tasks only.
705 For more details see Documentation/accounting/psi.rst.
720 common scheduling-intense workloads in practice (such as
725 used for, say Y.
738 Unbound jobs get offloaded to housekeeping CPUs. This is driven by
751 on-disk kernel. This information can be extracted from the kernel
752 image file with the script scripts/extract-ikconfig and used as
768 This option enables access to the in-kernel headers that are generated during
771 kheaders.ko is built which can be loaded on-demand to get access to headers.
816 The number of possible CPUs is used for this computation ignoring
817 hotplugging making the computation optimal for the worst case
821 17 => 128 KB for each CPU
822 16 => 64 KB for each CPU
823 15 => 32 KB for each CPU
824 14 => 16 KB for each CPU
825 13 => 8 KB for each CPU
826 12 => 4 KB for each CPU
832 Add support for indexing of all printk formats known at compile time
854 bool "Enable utilization clamping for RT/FAIR tasks"
861 utilization allowed for RUNNABLE tasks. The max utilization defines
867 enforce or grant any specific bandwidth for tasks.
880 the precision of clamping aggregation and tracking at run-time.
882 For example, with the minimum configuration value we will have 5
886 If a second 30% boosted task should be co-scheduled on the same CPU,
897 clamp buckets to trade off used memory for run-time tracking
908 # Not particularly useful until we get to multi-rq proxying
911 This option enables proxy execution, a mechanism for mutex-owning
917 # For architectures that want to enable the support for NUMA-affine scheduler
924 # For architectures that prefer to flush all TLBs after a number of pages
927 # written after the unmap. Details are in mm/rmap.c near the check for
934 def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
938 default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
939 default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
941 # Currently, disable gcc-10+ array-bounds globally.
942 # It's still broken in gcc-13, so no upper bound yet.
950 # Currently, disable -Wstringop-overflow for GCC globally.
963 # For architectures that know their GCC __int128 support is sound
968 # For architectures that (ab)use NUMA to represent different memory regions
969 # all cpu-local but of different latencies, such as SuperH.
980 This option adds support for automatic NUMA aware memory/task placement.
1001 This option adds support for grouping sets of processes together, for
1005 - Documentation/scheduler/sched-design-CFS.rst (CFS)
1006 - Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
1055 cgroup v2 implementation. The v1 is there for legacy applications
1081 One needs to also enable actual IO controlling logic/policy. For
1083 CONFIG_BFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
1086 See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
1109 bool "Group scheduling for SCHED_OTHER"
1115 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
1120 This option allows users to define CPU bandwidth rates (limits) for
1124 See Documentation/scheduler/sched-bwc.rst for more information.
1127 bool "Group scheduling for SCHED_RR/FIFO"
1133 schedule realtime tasks for non-root users until you allocate
1134 realtime bandwidth for them.
1135 See Documentation/scheduler/sched-rt-group.rst for more information.
1138 bool "Require boot parameter to enable group scheduling for SCHED_RR/FIFO"
1171 CPU bandwidth which is allowed for each single task in a group.
1177 specified task-specific clamp value is constrained by the cgroup
1203 It is fairly easy for consumers to exhaust RDMA resources, which
1216 As an example, it allows you to restrict VRAM usage for applications
1226 controller includes important in-kernel memory consumers per default.
1236 Provides a cgroup controller for HugeTLB pages.
1242 beforehand how much HugeTLB pages it would require for its use. The
1264 cgroup v2 implementation. The v1 is there for legacy applications
1280 Provides a cgroup controller implementing whitelists for
1286 Provides a simple controller for monitoring the
1293 This option extends the perf per-cpu mode to restrict monitoring
1301 bool "Support for eBPF programs attached to cgroups"
1309 of attachment. For instance, programs that are attached using
1317 Provides a controller for miscellaneous resources on a host.
1324 For more information, please check misc cgroup section in
1325 /Documentation/admin-guide/cgroup-v2.rst.
1334 controller is for control cgroup debugging only. Its
1351 the same id. For example same IPC id may refer to different objects
1385 to provide different user info for different servers.
1389 user-space use the memory control groups to limit the amount
1432 This option optimizes the scheduler for common desktop workloads by
1434 of workloads isolates aggressive CPU burners (like build jobs) from
1439 bool "Kernel->user space relay support (formerly relayfs)"
1442 This option enables support for relay interface support in
1444 It is designed to provide an efficient mechanism for tools and
1457 etc. See <file:Documentation/admin-guide/initrd.rst> for details.
1479 See <file:Documentation/admin-guide/bootconfig.rst> for details.
1489 out even when the "bootconfig" kernel-boot parameter is omitted.
1491 make the kernel ignore the BOOT_CONFIG-supplied kernel-boot
1531 Build KUnit tests for initramfs. See Documentation/dev-tools/kunit
1538 bool "Optimize for performance (-O2)"
1540 This is the default optimization level for the kernel, building
1541 with the "-O2" compiler flag for best performance and most
1542 helpful compile-time warnings.
1545 bool "Optimize for size (-Os)"
1547 Choosing this option will pass "-Os" to your compiler resulting
1566 depends on $(cc-option,-ffunction-sections -fdata-sections)
1567 depends on $(ld-option,--gc-sections)
1570 the linker by compiling with -ffunction-sections -fdata-sections,
1571 and linking with --gc-sections.
1573 This can reduce on disk and in-memory size of the kernel
1574 code and static data, particularly for small configs and
1576 silently broken kernel if the required annotations are not
1583 depends on $(ld-option,--orphan-handling=warn)
1584 depends on $(ld-option,--orphan-handling=error)
1601 Enable support for /proc/sys/debug/exception-trace.
1606 Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
1613 Enable support for /proc/sys/kernel/unaligned-trap
1616 see arch/parisc/kernel/unaligned.c for reference
1633 # Unhide debug options, to make the on-by-default options visible
1637 to be disabled or tweaked. This is for specialized
1638 environments which can tolerate a "non-standard" kernel.
1642 bool "Enable 16-bit UID system calls" if EXPERT
1646 This enables the legacy 16-bit UID syscall wrappers.
1652 This option enables support for non-root users, groups and
1656 possible capabilities. Saying N here also compiles out support for
1678 file names to handle and then later use the handle for
1689 This includes native support for POSIX timers to the kernel.
1690 Some embedded systems have no use for them and therefore they
1704 bool "Enable support for printk" if EXPERT
1714 tristate "KUnit Test for the printk ringbuffer" if !KUNIT_ALL_TESTS
1720 For more information on KUnit and unit tests in general, please refer
1729 Disabling this option eliminates support for BUG and WARN, reducing
1732 option for embedded systems with no facilities for reporting errors.
1740 Enable support for generating core dumps. Disabling saves about 4k.
1744 bool "Enable PC-Speaker support" if EXPERT
1749 This option allows to disable the internal PC-Speaker
1753 bool "Enable smaller-sized data structures for core" if EXPERT
1766 support for "fast userspace mutexes". The resulting kernel may not
1767 run glibc-based applications correctly.
1789 support for epoll family of system calls.
1842 This option enables support for the io_uring interface, enabling
1856 the io_uring subsystem, hence this should only be enabled for
1864 Enable mock files for io_uring subststem testing. The ABI might
1866 for specific test purposes.
1886 the cost of user-space memory barriers asymmetrically by transforming
1896 user-space with the ability to compare two processes to see if they
1909 user-space cache for the current CPU number value, which
1910 speeds up getting the current CPU number from user-space,
1911 as well as an ABI to speed up user-space operations on
1912 per-CPU data.
1921 Enable extra debugging checks for the rseq system call.
1931 pages marked for writeback, (recently) evicted pages).
1936 bool "Load all symbols for debugging/ksymoops" if EXPERT
1950 kallsyms compression algorithm for the current symbol set.
1952 Start self-test automatically after system startup. Suggest executing
1960 Normally kallsyms only contains the symbols of functions for nicer
1962 sections). This is sufficient for most cases. And only if you want to
1964 when a debugger is used) all symbols are required (i.e., names of
1987 A 64-bit kernel is required for the memory sealing feature.
1988 No specific hardware features from the CPU are needed.
1993 time of the process. The existence of this flag for an architecture
2001 For complete descriptions of memory sealing, please see
2002 Documentation/userspace-api/mseal.rst
2007 See tools/perf/design.txt for details.
2016 See tools/perf/design.txt for details
2026 Enable kernel support for various performance events provided
2027 by software and hardware.
2029 Software events are supported either built-in or via the
2035 suffered, or branches mis-predicted - without slowing down the
2037 when a threshold number of events have passed - and can thus be
2041 these software and hardware event capabilities, available via a
2056 Mostly useful for debugging the vmalloc code on platforms
2077 trusted keyring to provide public keys. This then can be used for
2104 This allows other Rust-related options, like drivers written in Rust,
2107 It is also required to be able to load external kernel modules
2110 See Documentation/rust/ for more information.
2124 # The dummy parameter `workaround-for-0.69.0` is required to support 0.69.0
2125 # (https://github.com/rust-lang/rust-bindgen/pull/2678) and 0.71.0
2126 # (https://github.com/rust-lang/rust-bindgen/pull/3040). It can be removed
2129 default "$(shell,$(BINDGEN) --version workaround-for-0.69.0 2>/dev/null)"
2133 # dynamically changed for a probe function.
2192 # It may be useful for an architecture to override the definitions of the
2195 # different calling convention for syscalls. They can also override the
2196 # macros for not-implemented syscalls in kernel/sys_ni.c and
2197 # kernel/time/posix-stubs.c. All these overrides need to be available in