X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=config%2FConfig-kernel.in;h=496ec887cf6d345a7a41c83a88c17e26f7e54eef;hb=HEAD;hp=ad23b21479612797324e152ee5a72c2be2cfee42;hpb=4448b27930526e700d2fcb882bad2fd10aa17918;p=openwrt%2Fopenwrt.git diff --git a/config/Config-kernel.in b/config/Config-kernel.in index ad23b21479..4bd2cde135 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -47,8 +47,23 @@ config KERNEL_MIPS_FP_SUPPORT config KERNEL_ARM_PMU bool + default y if TARGET_armsr_armv8 depends on (arm || aarch64) +config KERNEL_ARM_PMUV3 + bool + default y if TARGET_armsr_armv8 + depends on (arm_v7 || aarch64) && LINUX_6_6 + +config KERNEL_RISCV_PMU + bool + select KERNEL_RISCV_PMU_SBI + depends on riscv64 + +config KERNEL_RISCV_PMU_SBI + bool + depends on riscv64 + config KERNEL_X86_VSYSCALL_EMULATION bool "Enable vsyscall emulation" depends on x86_64 @@ -69,6 +84,8 @@ config KERNEL_X86_VSYSCALL_EMULATION config KERNEL_PERF_EVENTS bool "Compile the kernel with performance events and counters" select KERNEL_ARM_PMU if (arm || aarch64) + select KERNEL_ARM_PMUV3 if (arm_v7 || aarch64) && LINUX_6_6 + select KERNEL_RISCV_PMU if riscv64 config KERNEL_PROFILING bool "Compile the kernel with profiling enabled" @@ -143,7 +160,7 @@ config KERNEL_UBSAN_TRAP config KERNEL_KASAN bool "Compile the kernel with KASan: runtime memory debugger" select KERNEL_SLUB_DEBUG - depends on (x86_64 || aarch64) + depends on (x86_64 || aarch64 || arm || powerpc || riscv64) help Enables kernel address sanitizer - runtime memory debugger, designed to find out-of-bounds accesses and use-after-free bugs. @@ -156,16 +173,6 @@ config KERNEL_KASAN Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB (the resulting kernel does not boot). -config KERNEL_KASAN_EXTRA - bool "KAsan: extra checks" - depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL - help - This enables further checks in the kernel address sanitizer, for now - it only includes the address-use-after-scope check that can lead - to excessive kernel stack usage, frame size warnings and longer - compile time. - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more - config KERNEL_KASAN_VMALLOC bool "Back mappings in vmalloc space with real shadow memory" depends on KERNEL_KASAN @@ -184,16 +191,73 @@ config KERNEL_KASAN_VMALLOC will have no effect. if KERNEL_KASAN - config KERNEL_KASAN_GENERIC - def_bool y +choice + prompt "KASAN mode" + depends on KERNEL_KASAN + default KERNEL_KASAN_GENERIC + help + KASAN has three modes: + + 1. Generic KASAN (supported by many architectures, enabled with + CONFIG_KASAN_GENERIC, similar to userspace ASan), + 2. Software Tag-Based KASAN (arm64 only, based on software memory + tagging, enabled with CONFIG_KASAN_SW_TAGS, similar to userspace + HWASan), and + 3. Hardware Tag-Based KASAN (arm64 only, based on hardware memory + tagging, enabled with CONFIG_KASAN_HW_TAGS). + +config KERNEL_KASAN_GENERIC + bool "Generic KASAN" + select KERNEL_SLUB_DEBUG + help + Enables Generic KASAN. + + Consumes about 1/8th of available memory at kernel start and adds an + overhead of ~50% for dynamic allocations. + The performance slowdown is ~x3. + +config KERNEL_KASAN_SW_TAGS + bool "Software Tag-Based KASAN" + depends on aarch64 + select KERNEL_SLUB_DEBUG + help + Enables Software Tag-Based KASAN. + + Supported only on arm64 CPUs and relies on Top Byte Ignore. + + Consumes about 1/16th of available memory at kernel start and + add an overhead of ~20% for dynamic allocations. + + May potentially introduce problems related to pointer casting and + comparison, as it embeds a tag into the top byte of each pointer. + +config KERNEL_KASAN_HW_TAGS + bool "Hardware Tag-Based KASAN" + depends on aarch64 + select KERNEL_SLUB_DEBUG + select KERNEL_ARM64_MTE + help + Enables Hardware Tag-Based KASAN. + + Supported only on arm64 CPUs starting from ARMv8.5 and relies on + Memory Tagging Extension and Top Byte Ignore. + + Consumes about 1/32nd of available memory. + + May potentially introduce problems related to pointer casting and + comparison, as it embeds a tag into the top byte of each pointer. + +endchoice + + config KERNEL_ARM64_MTE + def_bool n - config KERNEL_KASAN_SW_TAGS - def_bool n endif choice prompt "Instrumentation type" depends on KERNEL_KASAN + depends on !KERNEL_KASAN_HW_TAGS default KERNEL_KASAN_OUTLINE config KERNEL_KASAN_OUTLINE @@ -361,7 +425,6 @@ config KERNEL_DEBUG_INFO This will compile your kernel and modules with debug information. config KERNEL_DEBUG_INFO_BTF - bool "Enable additional BTF type information" depends on !HOST_OS_MACOS depends on KERNEL_DEBUG_INFO && !KERNEL_DEBUG_INFO_REDUCED @@ -373,6 +436,20 @@ config KERNEL_DEBUG_INFO_BTF Required to run BPF CO-RE applications. +config KERNEL_DEBUG_INFO_BTF_MODULES + def_bool y + depends on KERNEL_DEBUG_INFO_BTF + +config KERNEL_MODULE_ALLOW_BTF_MISMATCH + bool "Allow loading modules with non-matching BTF type info" + depends on KERNEL_DEBUG_INFO_BTF_MODULES + help + For modules whose split BTF does not match vmlinux, load without + BTF rather than refusing to load. The default behavior with + module BTF enabled is to reject modules with such mismatches; + this option will still load module BTF where possible but ignore + it when a mismatch is found. + config KERNEL_DEBUG_INFO_REDUCED bool "Reduce debugging information" default y @@ -387,6 +464,17 @@ config KERNEL_DEBUG_INFO_REDUCED DEBUG_INFO build and compile times are reduced too. Only works with newer gcc versions. +config KERNEL_FRAME_WARN + int + range 0 8192 + default 1280 if KERNEL_KASAN && !ARCH_64BIT + default 1024 if !ARCH_64BIT + default 2048 if ARCH_64BIT + help + Tell the compiler to warn at build time for stack frames larger than this. + Setting this too low will cause a lot of warnings. + Setting it to 0 disables the warning. + # KERNEL_DEBUG_LL symbols must have the default value set as otherwise # KConfig wont evaluate them unless KERNEL_EARLY_PRINTK is selected # which means that buildroot wont override the DEBUG_LL symbols in target @@ -458,6 +546,10 @@ config KERNEL_BPF_EVENTS for sending data from BPF programs to user-space for post-processing or logging. +config KERNEL_PROBE_EVENTS_BTF_ARGS + bool "Support BTF function arguments for probe events" + depends on KERNEL_DEBUG_INFO_BTF && KERNEL_KPROBE_EVENTS && LINUX_6_6 + config KERNEL_BPF_KPROBE_OVERRIDE bool depends on KERNEL_KPROBES @@ -469,7 +561,8 @@ config KERNEL_AIO config KERNEL_IO_URING bool "Compile the kernel with io_uring support" - default y if !SMALL_FLASH + depends on !SMALL_FLASH + default y if (x86_64 || aarch64) config KERNEL_FHANDLE bool "Compile the kernel with support for fhandle syscalls" @@ -541,6 +634,18 @@ config KERNEL_SOFTLOCKUP_DETECTOR chance to run. The current stack trace is displayed upon detection and the system will stay locked up. +config KERNEL_HARDLOCKUP_DETECTOR + bool "Compile the kernel with detect Hard Lockups" + depends on KERNEL_DEBUG_KERNEL + help + Say Y here to enable the kernel to act as a watchdog to detect + hard lockups. + + Hardlockups are bugs that cause the CPU to loop in kernel mode + for more than 10 seconds, without letting other interrupts have a + chance to run. The current stack trace is displayed upon detection + and the system will stay locked up. + config KERNEL_DETECT_HUNG_TASK bool "Compile the kernel with detect Hung Tasks" depends on KERNEL_DEBUG_KERNEL @@ -590,10 +695,23 @@ config KERNEL_PRINTK_TIME default y config KERNEL_SLUB_DEBUG - bool + bool "Enable SLUB debugging support" + help + This enables various debugging features: + - Accepts "slub_debug" kernel parameter + - Provides caches debugging options (e.g. tracing, validating) + - Adds /sys/kernel/slab/ attrs for reading amounts of *objects* + - Enables /proc/slabinfo support + - Prints info when running out of memory + + Enabling this can result in a significant increase of code size. config KERNEL_SLUB_DEBUG_ON - bool + depends on KERNEL_SLUB_DEBUG + bool "Boot kernel with basic caches debugging enabled" + help + This enables by default sanity_checks, red_zone, poison and store_user + debugging options for all caches. config KERNEL_SLABINFO select KERNEL_SLUB_DEBUG @@ -1073,20 +1191,11 @@ config KERNEL_NET_L3_MASTER_DEV This module provides glue between core networking code and device drivers to support L3 master devices like VRF. -config KERNEL_WIRELESS_EXT - def_bool n - -config KERNEL_WEXT_CORE - def_bool KERNEL_WIRELESS_EXT - -config KERNEL_WEXT_PRIV - def_bool KERNEL_WIRELESS_EXT - -config KERNEL_WEXT_PROC - def_bool KERNEL_WIRELESS_EXT - -config KERNEL_WEXT_SPY - def_bool KERNEL_WIRELESS_EXT +config KERNEL_XDP_SOCKETS + bool "XDP sockets support" + help + XDP sockets allows a channel between XDP programs and + userspace applications. config KERNEL_PAGE_POOL def_bool n @@ -1094,7 +1203,6 @@ config KERNEL_PAGE_POOL config KERNEL_PAGE_POOL_STATS bool "Page pool stats support" depends on KERNEL_PAGE_POOL - depends on !LINUX_5_10 # # NFS related symbols @@ -1130,13 +1238,20 @@ if KERNEL_IP_PNP endif +config KERNEL_BTRFS_FS + bool "Compile the kernel with built-in BTRFS support" + help + Say Y here if you want to make the kernel to be able to boot off a + BTRFS partition. + menu "Filesystem ACL and attr support options" config USE_FS_ACL_ATTR bool "Use filesystem ACL and attr support by default" + default y if !SMALL_FLASH help Make using ACLs (e.g. POSIX ACL, NFSv4 ACL) the default - for kernel and packages, except tmpfs, flash filesystems, - and old NFS. Also enable userspace extended attribute support + for kernel and packages, except old NFS. + Also enable userspace extended attribute support by default. (OpenWrt already has an expection it will be present in the kernel). @@ -1157,14 +1272,17 @@ menu "Filesystem ACL and attr support options" config KERNEL_F2FS_FS_POSIX_ACL bool "Enable POSIX ACL for F2FS Filesystems" select KERNEL_FS_POSIX_ACL + default y if USE_FS_ACL_ATTR config KERNEL_JFFS2_FS_POSIX_ACL bool "Enable POSIX ACL for JFFS2 Filesystems" select KERNEL_FS_POSIX_ACL + default y if USE_FS_ACL_ATTR config KERNEL_TMPFS_POSIX_ACL bool "Enable POSIX ACL for TMPFS Filesystems" select KERNEL_FS_POSIX_ACL + default y if USE_FS_ACL_ATTR config KERNEL_CIFS_ACL bool "Enable CIFS ACLs" @@ -1301,12 +1419,30 @@ config KERNEL_LSM config KERNEL_EXT4_FS_SECURITY bool "Ext4 Security Labels" + default y if !SMALL_FLASH config KERNEL_F2FS_FS_SECURITY bool "F2FS Security Labels" + default y if !SMALL_FLASH config KERNEL_UBIFS_FS_SECURITY bool "UBIFS Security Labels" + default y if !SMALL_FLASH config KERNEL_JFFS2_FS_SECURITY bool "JFFS2 Security Labels" + default y if !SMALL_FLASH + +config KERNEL_WERROR + bool "Compile the kernel with warnings as errors" + help + A kernel build should not cause any compiler warnings, and this + enables the '-Werror' (for C) and '-Dwarnings' (for Rust) flags + to enforce that rule by default. Certain warnings from other tools + such as the linker may be upgraded to errors with this option as + well. + + However, if you have a new (or very old) compiler or linker with odd + and unusual warnings, or you have some architecture with problems, + you may need to disable this config option in order to + successfully build the kernel.