Lines Matching +full:in +full:- +full:kernel
1 # SPDX-License-Identifier: GPL-2.0-only
6 This is used in unclear ways:
8 - Re-run Kconfig when the compiler is updated
10 CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
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)
68 in a `depends on`.
75 Please see Documentation/rust/quick-start.rst for instructions on how
78 In particular, the Makefile target 'rustavailable' is useful to check
83 default $(rustc-llvm-version)
87 default $(shell,expr $(rustc-llvm-version) / 10000)
91 default y if CC_IS_CLANG && RUSTC_LLVM_MAJOR_VERSION = $(shell,expr $(cc-version) / 10000)
96 Operations involving handling LLVM IR or bitcode (e.g. cross-language
106 default $(cc_can_link_user,$(m64-flag)) if 64BIT
107 default $(cc_can_link_user,$(m32-flag))
109 # Fixed in GCC 14, 13.3, 12.4 and 11.5
122 …nt x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
124 …te__((cleanup(b)))=c();{asm goto(""::::l1);return 2;l1:return 3;}}' | $(CC) -x c - -c -o /dev/null)
128 # Detect buggy gcc and clang, fixed in gcc-11 clang-14.
129 …foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $…
132 …env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
135 def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
141 # https://github.com/llvm/llvm-project/commit/c44fa3e8a9a44c2e9a575768a3c185354b9f6c17
148 … '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
155 # https://github.com/llvm/llvm-project/commit/160fb1121cdf703c3ef5e61fb26c5659eb581489
170 # https://github.com/llvm/llvm-project/issues/182575
174 …[][4] __attribute__((__nonstring__)) = { };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror)
178 # https://github.com/llvm/llvm-project/pull/130661
214 and put_task_stack() in save_thread_stack_tsk() and get_wchan().
236 variables passed to init from the kernel command line.
246 drivers to compile-test them.
253 bool "Compile the kernel with warnings as errors"
256 A kernel build should not cause any compiler warnings, and this
257 enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
264 you may need to disable this config option in order to
265 successfully build the kernel.
267 If in doubt, say Y.
273 Compile test headers exported to user-space to ensure they are
274 self-contained, i.e. compilable as standalone units.
277 headers are self-contained, say Y here. Otherwise, choose N.
280 string "Local version - append to kernel release"
282 Append an extra string to the end of your kernel version.
285 any files with a filename matching localversion* in your
286 object and source tree, in that order. Your total string can
298 A string of the format -gxxxxxxxx will be added to the localversion
299 if a git-based tree is found. The string generated by this will be
301 set in CONFIG_LOCALVERSION.
306 $ git rev-parse --verify HEAD
315 this option will use the value in the calculation of the build id.
344 prompt "Kernel compression mode"
348 The linux kernel is a kind of self-extracting executable.
350 in efficiency, compression and decompression speed.
351 Compression speed is only relevant when building a kernel.
363 If in doubt, select 'gzip'
377 Decompression speed is slowest among the choices. The kernel
378 size is about 10% smaller with bzip2, in comparison to gzip.
388 The kernel size is about 33% smaller with LZMA in comparison to gzip.
396 code. The size of the kernel is about 30% smaller with XZ in
398 filter (i386, x86_64, ARM, ARM64, RISC-V, big endian PowerPC,
399 and SPARC), XZ will create a few percent smaller kernel than
410 Its compression ratio is the poorest among the choices. The kernel
418 LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
422 Its compression ratio is worse than LZO. The size of the kernel
440 Produce uncompressed kernel image. This option is usually not what
441 you want. It is useful for debugging the kernel in slow simulation
442 environments, where decompressing and moving the kernel is awfully
444 and jump right at uncompressed kernel image.
453 option is passed on the kernel command line. If the requested path is
463 calls sethostname(2). The kernel traditionally uses "(none)" here,
473 and some programs won't run unless you say Y here. In particular, if
475 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
478 You can find documentation about IPC with "info ipc" and also in
496 POSIX variant of message queues is a part of IPC. In POSIX message
519 This is a general notification queue for the kernel to pass events to
520 userspace by splicing them into pipes. It can be used in conjunction
524 See Documentation/core-api/watch_queue.rst
541 kernel subsystem, such as SELinux (which requires this for
553 source "kernel/irq/Kconfig"
554 source "kernel/time/Kconfig"
555 source "kernel/bpf/Kconfig"
556 source "kernel/Kconfig.preempt"
585 kernel entry and exit and on transitions within the kernel
587 small performance impact. In the case of s390 or IBM POWER > 5,
588 this also enables accounting of stolen time on logically-partitioned
601 kernel-user boundaries using the context tracking subsystem.
621 If in doubt, say N here.
635 Select this option to enable HW pressure accounting in the
637 that reflects the reduction in CPU compute capacity resulted from
653 kernel (via a special system call) to write process accounting
655 that process will be appended to the file by the kernel. The
658 list is in the struct acct in <file:include/linux/acct.h>). It is
670 in a new file format that also logs the process IDs of each
691 bool "Enable per-task delay accounting"
697 in pages. Such statistics can help in setting a task's priorities
712 bool "Enable per-task storage I/O accounting"
725 and IO capacity are in the system.
727 If you say Y here, the kernel will create /proc/pressure/ with the
729 the share of walltime in which some or all tasks in the system are
732 In kernels with cgroup support, cgroups (cgroup2 only) will
747 kernel commandline during boot.
751 common scheduling-intense workloads in practice (such as
752 webservers, memcache), but it does show up in artificial
755 If you are paranoid and not sure what the kernel will be
774 source "kernel/rcu/Kconfig"
777 tristate "Kernel .config support"
779 This option enables the complete Linux kernel ".config" file
780 contents to be saved in the kernel. It provides documentation
781 of which kernel options are used in a running kernel or in an
782 on-disk kernel. This information can be extracted from the kernel
783 image file with the script scripts/extract-ikconfig and used as
784 input to rebuild the current kernel or to build another kernel.
785 It can also be extracted from a running kernel by reading
792 This option enables access to the kernel configuration file
796 tristate "Enable kernel headers through /sys/kernel/kheaders.tar.xz"
799 This option enables access to the in-kernel headers that are generated during
802 kheaders.ko is built which can be loaded on-demand to get access to headers.
805 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
810 Select the minimal kernel log buffer size as a power of 2.
824 int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
840 contributions is greater than the half of the default kernel ring
844 Also this option is ignored when "log_buf_len" kernel parameter is
867 /dev/kmsg, as it permits auditing the printk formats present in a
868 kernel, allowing detection of cases where monitored printks are
900 If in doubt, say N.
911 the precision of clamping aggregation and tracking at run-time.
915 be refcounted in the [20..39]% bucket and will set the bucket clamp
917 If a second 30% boosted task should be co-scheduled on the same CPU,
918 that task will be refcounted in the same bucket of the first task and
921 (20% in the example above) when there are no more tasks refcounted in
924 An additional boost/capping margin can be added to some tasks. In the
928 clamp buckets to trade off used memory for run-time tracking
931 If in doubt, use the default value.
939 # Not particularly useful until we get to multi-rq proxying
942 This option enables proxy execution, a mechanism for mutex-owning
948 # For architectures that want to enable the support for NUMA-affine scheduler
958 # written after the unmap. Details are in mm/rmap.c near the check for
965 def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
969 default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
970 default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
974 default "-fms-anonymous-structs" if $(cc-option,-fms-anonymous-structs)
975 default "-fms-extensions"
977 # Currently, disable gcc-10+ array-bounds globally.
978 # It's still broken in gcc-13, so no upper bound yet.
986 # Currently, disable -Wstringop-overflow for GCC globally.
1005 # all cpu-local but of different latencies, such as SuperH.
1041 - Documentation/scheduler/sched-design-CFS.rst (CFS)
1042 - Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
1069 Provides control over the memory footprint of tasks in a cgroup.
1113 to such task groups. It is also used by bio throttling logic in
1114 block layer to implement upper limit in IO rates on a device.
1118 enabling proportional weight division of disk bandwidth in CFQ, set
1122 See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
1160 See Documentation/scheduler/sched-bwc.rst for more information.
1169 schedule realtime tasks for non-root users until you allocate
1171 See Documentation/scheduler/sched-rt-group.rst for more information.
1179 is in inverted form so that mere RT_GROUP_SCHED enables the group
1211 CPU bandwidth which is allowed for each single task in a group.
1217 specified task-specific clamp value is constrained by the cgroup
1221 If in doubt, say N.
1226 Provides enforcement of process number limits in the scope of a
1227 cgroup. Any attempt to fork more processes than is allowed in the
1257 in the DRM subsystem.
1262 Provides a way to freeze and unfreeze all tasks in a
1266 controller includes important in-kernel memory consumers per default.
1283 control group is tracked in the third page lru pointer. This means
1322 devices which a process in the cgroup can mknod or open.
1328 total CPU consumed by the tasks in a cgroup.
1334 This option extends the perf per-cpu mode to restrict monitoring
1336 designated cpu. Or this can be used to have cgroup ID in samples
1349 In which context these programs are accessed depends on the type
1365 For more information, please check misc cgroup section in
1366 /Documentation/admin-guide/cgroup-v2.rst.
1393 or same user id or pid may refer to different tasks when used in
1402 In this namespace tasks see different info provided with the
1409 In this namespace boottime and monotonic clocks can be set.
1420 In this namespace tasks work with IPC ids which correspond to
1421 different IPC objects in different namespaces.
1430 When user namespaces are enabled in the kernel it is
1432 user-space use the memory control groups to limit the amount
1442 processes with the same pid as long as they are in different
1462 Enables additional kernel features in a sake of checkpoint/restore.
1463 In particular it adds auxiliary prctl codes to setup process text,
1482 bool "Kernel->user space relay support (formerly relayfs)"
1485 This option enables support for relay interface support in
1488 facilities to relay large amounts of data from kernel space to
1500 etc. See <file:Documentation/admin-guide/initrd.rst> for details.
1504 15 Kbytes (more on some other architectures) to the kernel size.
1519 complemental extension of kernel cmdline when booting.
1522 See <file:Documentation/admin-guide/bootconfig.rst> for details.
1532 out even when the "bootconfig" kernel-boot parameter is omitted.
1533 In fact, with this Kconfig option set, there is no way to
1534 make the kernel ignore the BOOT_CONFIG-supplied kernel-boot
1540 bool "Embed bootconfig file in the kernel"
1543 Embed a bootconfig file given by BOOT_CONFIG_EMBED_FILE in the
1544 kernel. Usually, the bootconfig file is loaded with the initrd
1546 help you by embedding a bootconfig file while building the kernel.
1554 Specify a bootconfig file which will be embedded to the kernel.
1556 bootconfig in the initrd.
1563 At boot time, the kernel command line is logged to the console.
1564 The log message will start with the prefix "Kernel command line: ".
1577 bool "Preserve cpio archive mtimes in initramfs"
1581 Each entry in an initramfs cpio archive carries an mtime value. When
1592 Build KUnit tests for initramfs. See Documentation/dev-tools/kunit
1599 bool "Optimize for performance (-O2)"
1601 This is the default optimization level for the kernel, building
1602 with the "-O2" compiler flag for best performance and most
1603 helpful compile-time warnings.
1606 bool "Optimize for size (-Os)"
1608 Choosing this option will pass "-Os" to your compiler resulting
1609 in a smaller kernel.
1619 output sections. Care must be taken not to pull in unrelated
1620 sections (e.g., '.text.init'). Typically '.' in section names
1627 depends on $(cc-option,-ffunction-sections -fdata-sections)
1628 depends on $(ld-option,--gc-sections)
1631 the linker by compiling with -ffunction-sections -fdata-sections,
1632 and linking with --gc-sections.
1634 This can reduce on disk and in-memory size of the kernel
1637 silently broken kernel if the required annotations are not
1644 depends on $(ld-option,--orphan-handling=warn)
1645 depends on $(ld-option,--orphan-handling=error)
1662 Enable support for /proc/sys/debug/exception-trace.
1667 Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
1674 Enable support for /proc/sys/kernel/unaligned-trap
1677 see arch/parisc/kernel/unaligned.c for reference
1683 sys_sysfs is an obsolete system call no longer supported in libc.
1693 bool "Configure standard kernel features (expert users)"
1694 # Unhide debug options, to make the on-by-default options visible
1697 This option allows certain base kernel options and settings
1699 environments which can tolerate a "non-standard" kernel.
1703 bool "Enable 16-bit UID system calls" if EXPERT
1707 This enables the legacy 16-bit UID syscall wrappers.
1713 This option enables support for non-root users, groups and
1728 no longer supported in libc but still enabled by default in some
1740 different file system operations. This is useful in implementing
1750 This includes native support for POSIX timers to the kernel.
1752 can be configured out to reduce the size of the kernel image.
1769 eliminates most of the message strings from the kernel image
1770 and makes the kernel more or less silent. As this makes it
1781 For more information on KUnit and unit tests in general, please refer
1791 the size of your kernel image and potentially quietly ignoring
1805 bool "Enable PC-Speaker support" if EXPERT
1810 This option allows to disable the internal PC-Speaker
1814 bool "Enable smaller-sized data structures for core" if EXPERT
1817 kernel data structures. This saves memory on small machines,
1826 Disabling this option will cause the kernel to be built without
1827 support for "fast userspace mutexes". The resulting kernel may not
1828 run glibc-based applications correctly.
1849 Disabling this option will cause the kernel to be built without
1875 kernel notification (ie. KAIO) or userspace notifications.
1905 completion rings that are shared between the kernel and application.
1936 applications to advise the kernel about their future memory or file
1947 the cost of user-space memory barriers asymmetrically by transforming
1956 Enable the kernel resource comparison system call. It provides
1957 user-space with the ability to compare two processes to see if they
1970 user-space cache for the current CPU number value, which
1971 speeds up getting the current CPU number from user-space,
1972 as well as an ABI to speed up user-space operations on
1973 per-CPU data.
1978 bool "Enable rseq-based time slice extension mechanism"
1996 kernel debugging or performance analysis. While lightweight it's
1997 still adding code into the user/kernel mode transitions.
2009 This also can be controlled on the kernel command line via the
2038 Say Y here to let the kernel print out symbolic crash information and
2039 symbolic stack backtraces. This increases the size of the kernel
2040 somewhat, as all symbols have to be loaded into the kernel image.
2051 Start self-test automatically after system startup. Suggest executing
2053 displayed in the last line, indicating that the test is complete.
2056 bool "Include all symbols in kallsyms"
2062 enable kernel live patching, or other less common use cases (e.g.,
2066 This option makes sure that all symbols are loaded into the kernel
2067 image (i.e., symbols from all sections) in cost of increased kernel
2068 size (depending on the kernel configuration, it may be 300KiB or
2071 Say N unless you really need all symbols, or kernel live patching.
2073 # end of the "standard kernel features (expert users)" menu
2086 A 64-bit kernel is required for the memory sealing feature.
2095 from a kernel perspective.
2101 Documentation/userspace-api/mseal.rst
2121 menu "Kernel Performance Events And Counters"
2124 bool "Kernel performance events and counters"
2129 Enable kernel support for various performance events provided
2132 Software events are supported either built-in or via the
2138 suffered, or branches mis-predicted - without slowing down the
2139 kernel or applications. These registers can also trigger interrupts
2140 when a threshold number of events have passed - and can thus be
2145 system call and used by the "perf" utility in tools/perf/. It
2203 Enables Rust support in the kernel.
2205 This allows other Rust-related options, like drivers written in Rust,
2208 It is also required to be able to load external kernel modules
2209 written in Rust.
2225 default "$(shell,$(BINDGEN) --version 2>/dev/null)"
2235 source "kernel/Kconfig.kexec"
2237 source "kernel/liveupdate/Kconfig"
2251 source "kernel/module/Kconfig"
2276 inform it as to what tags are to be expected in a stream and what
2279 source "kernel/Kconfig.locks"
2291 # SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h>
2292 # and the COMPAT_ variants in <linux/compat.h>, in particular to use a
2294 # macros for not-implemented syscalls in kernel/sys_ni.c and
2295 # kernel/time/posix-stubs.c. All these overrides need to be available in