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 $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLA…
88 …default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLA…
92 …efault $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAG…
93 …efault $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(CLANG_FLAGS) $(USERCFLAGS) $(USERLDFLAG…
95 # Fixed in GCC 14, 13.3, 12.4 and 11.5
107 …nt x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
111 # Detect buggy gcc and clang, fixed in gcc-11 clang-14.
112 …foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $…
115 …env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
118 def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
121 … '__attribute__((no_profile_instrument_function)) int x();' | $(CC) -x c - -c -o /dev/null -Werror)
126 … __attribute__((__counted_by__(count))); };' | $(CC) $(CLANG_FLAGS) -x c - -c -o /dev/null -Werror)
128 # https://github.com/llvm/llvm-project/pull/110497
129 # https://github.com/llvm/llvm-project/pull/112636
137 default $(shell,$(srctree)/scripts/pahole-version.sh $(PAHOLE))
156 and put_task_stack() in save_thread_stack_tsk() and get_wchan().
174 variables passed to init from the kernel command line.
184 drivers to compile-test them.
191 bool "Compile the kernel with warnings as errors"
194 A kernel build should not cause any compiler warnings, and this
195 enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags
202 you may need to disable this config option in order to
203 successfully build the kernel.
205 If in doubt, say Y.
211 Compile test headers exported to user-space to ensure they are
212 self-contained, i.e. compilable as standalone units.
215 headers are self-contained, say Y here. Otherwise, choose N.
218 string "Local version - append to kernel release"
220 Append an extra string to the end of your kernel version.
223 any files with a filename matching localversion* in your
224 object and source tree, in that order. Your total string can
236 A string of the format -gxxxxxxxx will be added to the localversion
237 if a git-based tree is found. The string generated by this will be
239 set in CONFIG_LOCALVERSION.
244 $ git rev-parse --verify HEAD
253 this option will use the value in the calculation of the build id.
282 prompt "Kernel compression mode"
286 The linux kernel is a kind of self-extracting executable.
288 in efficiency, compression and decompression speed.
289 Compression speed is only relevant when building a kernel.
301 If in doubt, select 'gzip'
315 Decompression speed is slowest among the choices. The kernel
316 size is about 10% smaller with bzip2, in comparison to gzip.
326 The kernel size is about 33% smaller with LZMA in comparison to gzip.
334 code. The size of the kernel is about 30% smaller with XZ in
336 filter (i386, x86_64, ARM, ARM64, RISC-V, big endian PowerPC,
337 and SPARC), XZ will create a few percent smaller kernel than
348 Its compression ratio is the poorest among the choices. The kernel
356 LZ4 is an LZ77-type compressor with a fixed, byte-oriented encoding.
360 Its compression ratio is worse than LZO. The size of the kernel
378 Produce uncompressed kernel image. This option is usually not what
379 you want. It is useful for debugging the kernel in slow simulation
380 environments, where decompressing and moving the kernel is awfully
382 and jump right at uncompressed kernel image.
391 option is passed on the kernel command line. If the requested path is
401 calls sethostname(2). The kernel traditionally uses "(none)" here,
411 and some programs won't run unless you say Y here. In particular, if
413 DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>),
416 You can find documentation about IPC with "info ipc" and also in
434 POSIX variant of message queues is a part of IPC. In POSIX message
457 This is a general notification queue for the kernel to pass events to
458 userspace by splicing them into pipes. It can be used in conjunction
462 See Documentation/core-api/watch_queue.rst
478 This option enables the uselib syscall, a system call used in the
489 kernel subsystem, such as SELinux (which requires this for
501 source "kernel/irq/Kconfig"
502 source "kernel/time/Kconfig"
503 source "kernel/bpf/Kconfig"
504 source "kernel/Kconfig.preempt"
533 kernel entry and exit and on transitions within the kernel
535 small performance impact. In the case of s390 or IBM POWER > 5,
536 this also enables accounting of stolen time on logically-partitioned
549 kernel-user boundaries using the context tracking subsystem.
569 If in doubt, say N here.
583 Select this option to enable HW pressure accounting in the
585 that reflects the reduction in CPU compute capacity resulted from
600 kernel (via a special system call) to write process accounting
602 that process will be appended to the file by the kernel. The
605 list is in the struct acct in <file:include/linux/acct.h>). It is
615 in a new file format that also logs the process IDs of each
636 bool "Enable per-task delay accounting"
642 in pages. Such statistics can help in setting a task's priorities
657 bool "Enable per-task storage I/O accounting"
670 and IO capacity are in the system.
672 If you say Y here, the kernel will create /proc/pressure/ with the
674 the share of walltime in which some or all tasks in the system are
677 In kernels with cgroup support, cgroups (cgroup2 only) will
692 kernel commandline during boot.
696 common scheduling-intense workloads in practice (such as
697 webservers, memcache), but it does show up in artificial
700 If you are paranoid and not sure what the kernel will be
719 source "kernel/rcu/Kconfig"
722 tristate "Kernel .config support"
724 This option enables the complete Linux kernel ".config" file
725 contents to be saved in the kernel. It provides documentation
726 of which kernel options are used in a running kernel or in an
727 on-disk kernel. This information can be extracted from the kernel
728 image file with the script scripts/extract-ikconfig and used as
729 input to rebuild the current kernel or to build another kernel.
730 It can also be extracted from a running kernel by reading
737 This option enables access to the kernel configuration file
741 tristate "Enable kernel headers through /sys/kernel/kheaders.tar.xz"
744 This option enables access to the in-kernel headers that are generated during
747 kheaders.ko is built which can be loaded on-demand to get access to headers.
750 int "Kernel log buffer size (16 => 64KB, 17 => 128KB)"
755 Select the minimal kernel log buffer size as a power of 2.
769 int "CPU kernel log buffer size contribution (13 => 8 KB, 17 => 128KB)"
785 contributions is greater than the half of the default kernel ring
789 Also this option is ignored when "log_buf_len" kernel parameter is
812 /dev/kmsg, as it permits auditing the printk formats present in a
813 kernel, allowing detection of cases where monitored printks are
845 If in doubt, say N.
856 the precision of clamping aggregation and tracking at run-time.
860 be refcounted in the [20..39]% bucket and will set the bucket clamp
862 If a second 30% boosted task should be co-scheduled on the same CPU,
863 that task will be refcounted in the same bucket of the first task and
866 (20% in the example above) when there are no more tasks refcounted in
869 An additional boost/capping margin can be added to some tasks. In the
873 clamp buckets to trade off used memory for run-time tracking
876 If in doubt, use the default value.
881 # For architectures that want to enable the support for NUMA-affine scheduler
891 # written after the unmap. Details are in mm/rmap.c near the check for
898 def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
902 default "-Wimplicit-fallthrough=5" if CC_IS_GCC && $(cc-option,-Wimplicit-fallthrough=5)
903 default "-Wimplicit-fallthrough" if CC_IS_CLANG && $(cc-option,-Wunreachable-code-fallthrough)
905 # Currently, disable gcc-10+ array-bounds globally.
906 # It's still broken in gcc-13, so no upper bound yet.
914 # Currently, disable -Wstringop-overflow for GCC globally.
933 # all cpu-local but of different latencies, such as SuperH.
969 - Documentation/scheduler/sched-design-CFS.rst (CFS)
970 - Documentation/admin-guide/cgroup-v1/ (features for grouping, isolation
996 Provides control over the memory footprint of tasks in a cgroup.
1026 to such task groups. It is also used by bio throttling logic in
1027 block layer to implement upper limit in IO rates on a device.
1031 enabling proportional weight division of disk bandwidth in CFQ, set
1035 See Documentation/admin-guide/cgroup-v1/blkio-controller.rst for more information.
1069 See Documentation/scheduler/sched-bwc.rst for more information.
1078 schedule realtime tasks for non-root users until you allocate
1080 See Documentation/scheduler/sched-rt-group.rst for more information.
1104 CPU bandwidth which is allowed for each single task in a group.
1110 specified task-specific clamp value is constrained by the cgroup
1114 If in doubt, say N.
1119 Provides enforcement of process number limits in the scope of a
1120 cgroup. Any attempt to fork more processes than is allowed in the
1150 in the DRM subsystem.
1155 Provides a way to freeze and unfreeze all tasks in a
1159 controller includes important in-kernel memory consumers per default.
1176 control group is tracked in the third page lru pointer. This means
1213 devices which a process in the cgroup can mknod or open.
1219 total CPU consumed by the tasks in a cgroup.
1225 This option extends the perf per-cpu mode to restrict monitoring
1227 designated cpu. Or this can be used to have cgroup ID in samples
1240 In which context these programs are accessed depends on the type
1256 For more information, please check misc cgroup section in
1257 /Documentation/admin-guide/cgroup-v2.rst.
1284 or same user id or pid may refer to different tasks when used in
1293 In this namespace tasks see different info provided with the
1301 In this namespace boottime and monotonic clocks can be set.
1309 In this namespace tasks work with IPC ids which correspond to
1310 different IPC objects in different namespaces.
1319 When user namespaces are enabled in the kernel it is
1321 user-space use the memory control groups to limit the amount
1331 processes with the same pid as long as they are in different
1351 Enables additional kernel features in a sake of checkpoint/restore.
1352 In particular it adds auxiliary prctl codes to setup process text,
1371 bool "Kernel->user space relay support (formerly relayfs)"
1374 This option enables support for relay interface support in
1377 facilities to relay large amounts of data from kernel space to
1389 etc. See <file:Documentation/admin-guide/initrd.rst> for details.
1393 15 Kbytes (more on some other architectures) to the kernel size.
1408 complemental extension of kernel cmdline when booting.
1411 See <file:Documentation/admin-guide/bootconfig.rst> for details.
1421 out even when the "bootconfig" kernel-boot parameter is omitted.
1422 In fact, with this Kconfig option set, there is no way to
1423 make the kernel ignore the BOOT_CONFIG-supplied kernel-boot
1429 bool "Embed bootconfig file in the kernel"
1432 Embed a bootconfig file given by BOOT_CONFIG_EMBED_FILE in the
1433 kernel. Usually, the bootconfig file is loaded with the initrd
1435 help you by embedding a bootconfig file while building the kernel.
1443 Specify a bootconfig file which will be embedded to the kernel.
1445 bootconfig in the initrd.
1448 bool "Preserve cpio archive mtimes in initramfs"
1451 Each entry in an initramfs cpio archive carries an mtime value. When
1462 bool "Optimize for performance (-O2)"
1464 This is the default optimization level for the kernel, building
1465 with the "-O2" compiler flag for best performance and most
1466 helpful compile-time warnings.
1469 bool "Optimize for size (-Os)"
1471 Choosing this option will pass "-Os" to your compiler resulting
1472 in a smaller kernel.
1482 output sections. Care must be taken not to pull in unrelated
1483 sections (e.g., '.text.init'). Typically '.' in section names
1490 depends on $(cc-option,-ffunction-sections -fdata-sections)
1491 depends on $(ld-option,--gc-sections)
1494 the linker by compiling with -ffunction-sections -fdata-sections,
1495 and linking with --gc-sections.
1497 This can reduce on disk and in-memory size of the kernel
1500 silently broken kernel if the required annotations are not
1507 depends on $(ld-option,--orphan-handling=warn)
1508 depends on $(ld-option,--orphan-handling=error)
1525 Enable support for /proc/sys/debug/exception-trace.
1530 Enable support for /proc/sys/kernel/ignore-unaligned-usertrap
1537 Enable support for /proc/sys/kernel/unaligned-trap
1540 see arch/parisc/kernel/unaligned.c for reference
1546 bool "Configure standard kernel features (expert users)"
1547 # Unhide debug options, to make the on-by-default options visible
1550 This option allows certain base kernel options and settings
1552 environments which can tolerate a "non-standard" kernel.
1556 bool "Enable 16-bit UID system calls" if EXPERT
1560 This enables the legacy 16-bit UID syscall wrappers.
1566 This option enables support for non-root users, groups and
1581 no longer supported in libc but still enabled by default in some
1590 sys_sysfs is an obsolete system call no longer supported in libc.
1603 different file system operations. This is useful in implementing
1613 This includes native support for POSIX timers to the kernel.
1615 can be configured out to reduce the size of the kernel image.
1632 eliminates most of the message strings from the kernel image
1633 and makes the kernel more or less silent. As this makes it
1642 the size of your kernel image and potentially quietly ignoring
1656 bool "Enable PC-Speaker support" if EXPERT
1661 This option allows to disable the internal PC-Speaker
1665 bool "Enable smaller-sized data structures for core" if EXPERT
1668 kernel data structures. This saves memory on small machines,
1677 Disabling this option will cause the kernel to be built without
1678 support for "fast userspace mutexes". The resulting kernel may not
1679 run glibc-based applications correctly.
1690 Disabling this option will cause the kernel to be built without
1716 kernel notification (ie. KAIO) or userspace notifications.
1746 completion rings that are shared between the kernel and application.
1766 applications to advise the kernel about their future memory or file
1777 the cost of user-space memory barriers asymmetrically by transforming
1786 Enable the kernel resource comparison system call. It provides
1787 user-space with the ability to compare two processes to see if they
1800 user-space cache for the current CPU number value, which
1801 speeds up getting the current CPU number from user-space,
1802 as well as an ABI to speed up user-space operations on
1803 per-CPU data.
1837 Say Y here to let the kernel print out symbolic crash information and
1838 symbolic stack backtraces. This increases the size of the kernel
1839 somewhat, as all symbols have to be loaded into the kernel image.
1850 Start self-test automatically after system startup. Suggest executing
1852 displayed in the last line, indicating that the test is complete.
1855 bool "Include all symbols in kallsyms"
1861 enable kernel live patching, or other less common use cases (e.g.,
1865 This option makes sure that all symbols are loaded into the kernel
1866 image (i.e., symbols from all sections) in cost of increased kernel
1867 size (depending on the kernel configuration, it may be 300KiB or
1870 Say N unless you really need all symbols, or kernel live patching.
1877 # end of the "standard kernel features (expert users)" menu
1899 menu "Kernel Performance Events And Counters"
1902 bool "Kernel performance events and counters"
1907 Enable kernel support for various performance events provided
1910 Software events are supported either built-in or via the
1916 suffered, or branches mis-predicted - without slowing down the
1917 kernel or applications. These registers can also trigger interrupts
1918 when a threshold number of events have passed - and can thus be
1923 system call and used by the "perf" utility in tools/perf/. It
1983 Enables Rust support in the kernel.
1985 This allows other Rust-related options, like drivers written in Rust,
1988 It is also required to be able to load external kernel modules
1989 written in Rust.
2005 # The dummy parameter `workaround-for-0.69.0` is required to support 0.69.0
2006 # (https://github.com/rust-lang/rust-bindgen/pull/2678) and 0.71.0
2007 # (https://github.com/rust-lang/rust-bindgen/pull/3040). It can be removed
2010 default "$(shell,$(BINDGEN) --version workaround-for-0.69.0 2>/dev/null)"
2020 source "kernel/Kconfig.kexec"
2034 source "kernel/module/Kconfig"
2059 inform it as to what tags are to be expected in a stream and what
2062 source "kernel/Kconfig.locks"
2074 # SYSCALL_DEFINE() and __SYSCALL_DEFINEx() macros in <linux/syscalls.h>
2075 # and the COMPAT_ variants in <linux/compat.h>, in particular to use a
2077 # macros for not-implemented syscalls in kernel/sys_ni.c and
2078 # kernel/time/posix-stubs.c. All these overrides need to be available in