kernel: add DEBUG_INFO_REDUCED config option
[openwrt/staging/jow.git] / config / Config-kernel.in
index c0460db72aba5bbb9845bab0615eefdfdfdda860..e146107148b1f0721863175aaaad7daa5270a281 100644 (file)
@@ -1,8 +1,6 @@
-# Copyright (C) 2006-2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
+# SPDX-License-Identifier: GPL-2.0-only
 #
 #
+# Copyright (C) 2006-2014 OpenWrt.org
 
 config KERNEL_BUILD_USER
        string "Custom Kernel Build User Name"
 
 config KERNEL_BUILD_USER
        string "Custom Kernel Build User Name"
@@ -26,11 +24,6 @@ config KERNEL_PRINTK
        bool "Enable support for printk"
        default y
 
        bool "Enable support for printk"
        default y
 
-config KERNEL_CRASHLOG
-       bool "Crash logging"
-       depends on !(arm || powerpc || sparc || TARGET_uml || i386 || x86_64)
-       default y
-
 config KERNEL_SWAP
        bool "Support for paging of anonymous memory (swap)"
        default y if !SMALL_FLASH
 config KERNEL_SWAP
        bool "Support for paging of anonymous memory (swap)"
        default y if !SMALL_FLASH
@@ -88,6 +81,11 @@ config KERNEL_PROFILING
          Enable the extended profiling support mechanisms used by profilers such
          as OProfile.
 
          Enable the extended profiling support mechanisms used by profilers such
          as OProfile.
 
+config KERNEL_RPI_AXIPERF
+       bool "Compile the kernel with RaspberryPi AXI Performance monitors"
+       default y
+       depends on KERNEL_PERF_EVENTS && TARGET_bcm27xx
+
 config KERNEL_UBSAN
        bool "Compile the kernel with undefined behaviour sanity checker"
        help
 config KERNEL_UBSAN
        bool "Compile the kernel with undefined behaviour sanity checker"
        help
@@ -116,6 +114,16 @@ config KERNEL_UBSAN_ALIGNMENT
          Enabling this option on architectures that support unaligned
          accesses may produce a lot of false positives.
 
          Enabling this option on architectures that support unaligned
          accesses may produce a lot of false positives.
 
+config KERNEL_UBSAN_BOUNDS
+       bool "Perform array index bounds checking"
+       depends on KERNEL_UBSAN
+       help
+         This option enables detection of directly indexed out of bounds array
+         accesses, where the array size is known at compile time. Note that
+         this does not protect array overflows via bad calls to the
+         {str,mem}*cpy() family of functions (that is addressed by
+         FORTIFY_SOURCE).
+
 config KERNEL_UBSAN_NULL
        bool "Enable checking of null pointers"
        depends on KERNEL_UBSAN
 config KERNEL_UBSAN_NULL
        bool "Enable checking of null pointers"
        depends on KERNEL_UBSAN
@@ -123,6 +131,19 @@ config KERNEL_UBSAN_NULL
          This option enables detection of memory accesses via a
          null pointer.
 
          This option enables detection of memory accesses via a
          null pointer.
 
+config KERNEL_UBSAN_TRAP
+       bool "On Sanitizer warnings, abort the running kernel code"
+       depends on KERNEL_UBSAN
+       help
+         Building kernels with Sanitizer features enabled tends to grow the
+         kernel size by around 5%, due to adding all the debugging text on
+         failure paths. To avoid this, Sanitizer instrumentation can just
+         issue a trap. This reduces the kernel size overhead but turns all
+         warnings (including potentially harmless conditions) into full
+         exceptions that abort the running kernel code (regardless of context,
+         locks held, etc), which may destabilize the system. For some system
+         builders this is an acceptable trade-off.
+
 config KERNEL_KASAN
        bool "Compile the kernel with KASan: runtime memory debugger"
        select KERNEL_SLUB_DEBUG
 config KERNEL_KASAN
        bool "Compile the kernel with KASan: runtime memory debugger"
        select KERNEL_SLUB_DEBUG
@@ -149,6 +170,30 @@ config KERNEL_KASAN_EXTRA
          compile time.
          https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
 
          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
+       help
+         By default, the shadow region for vmalloc space is the read-only
+         zero page. This means that KASAN cannot detect errors involving
+         vmalloc space.
+
+         Enabling this option will hook in to vmap/vmalloc and back those
+         mappings with real shadow memory allocated on demand. This allows
+         for KASAN to detect more sorts of errors (and to support vmapped
+         stacks), but at the cost of higher memory usage.
+
+         This option depends on HAVE_ARCH_KASAN_VMALLOC, but we can't
+         depend on that in here, so it is possible that enabling this
+         will have no effect.
+
+if KERNEL_KASAN
+       config KERNEL_KASAN_GENERIC
+       def_bool y
+
+       config KERNEL_KASAN_SW_TAGS
+       def_bool n
+endif
 
 choice
        prompt "Instrumentation type"
 
 choice
        prompt "Instrumentation type"
@@ -304,6 +349,19 @@ config KERNEL_PREEMPT_TRACER
          enabled. This option and the irqs-off timing option can be
          used together or separately.)
 
          enabled. This option and the irqs-off timing option can be
          used together or separately.)
 
+config KERNEL_HIST_TRIGGERS
+       bool "Histogram triggers"
+       depends on KERNEL_FTRACE
+       help
+         Hist triggers allow one or more arbitrary trace event fields to be
+         aggregated into hash tables and dumped to stdout by reading a
+         debugfs/tracefs file. They're useful for gathering quick and dirty
+         (though precise) summaries of event activity as an initial guide for
+         further investigation using more advanced tools.
+
+         Inter-event tracing of quantities such as latencies is also
+         supported using hist triggers under this option.
+
 config KERNEL_DEBUG_KERNEL
        bool
        default n
 config KERNEL_DEBUG_KERNEL
        bool
        default n
@@ -315,6 +373,20 @@ config KERNEL_DEBUG_INFO
        help
          This will compile your kernel and modules with debug information.
 
        help
          This will compile your kernel and modules with debug information.
 
+config KERNEL_DEBUG_INFO_REDUCED
+       bool "Reduce debugging information"
+       default y
+       depends on KERNEL_DEBUG_INFO
+       help
+         If you say Y here gcc is instructed to generate less debugging
+         information for structure types. This means that tools that
+         need full debugging information (like kgdb or systemtap) won't
+         be happy. But if you merely need debugging information to
+         resolve line numbers there is no loss. Advantage is that
+         build directory object sizes shrink dramatically over a full
+         DEBUG_INFO build and compile times are reduced too.
+         Only works with newer gcc versions.
+
 config KERNEL_DEBUG_LL_UART_NONE
        bool
        default n
 config KERNEL_DEBUG_LL_UART_NONE
        bool
        default n
@@ -369,6 +441,11 @@ config KERNEL_KPROBE_EVENTS
        bool
        default y if KERNEL_KPROBES
 
        bool
        default y if KERNEL_KPROBES
 
+config KERNEL_BPF_KPROBE_OVERRIDE
+       bool
+       depends on KERNEL_KPROBES
+       default n
+
 config KERNEL_AIO
        bool "Compile the kernel with asynchronous IO support"
        default y if !SMALL_FLASH
 config KERNEL_AIO
        bool "Compile the kernel with asynchronous IO support"
        default y if !SMALL_FLASH
@@ -438,34 +515,22 @@ config KERNEL_PROVE_LOCKING
        select KERNEL_DEBUG_KERNEL
        default n
 
        select KERNEL_DEBUG_KERNEL
        default n
 
-config KERNEL_LOCKUP_DETECTOR
-       bool "Compile the kernel with detect Hard and Soft Lockups"
+config KERNEL_SOFTLOCKUP_DETECTOR
+       bool "Compile the kernel with detect Soft Lockups"
        depends on KERNEL_DEBUG_KERNEL
        help
          Say Y here to enable the kernel to act as a watchdog to detect
        depends on KERNEL_DEBUG_KERNEL
        help
          Say Y here to enable the kernel to act as a watchdog to detect
-         hard and soft lockups.
+         soft lockups.
 
          Softlockups are bugs that cause the kernel to loop in kernel
          mode for more than 20 seconds, without giving other tasks a
          chance to run.  The current stack trace is displayed upon
          detection and the system will stay locked up.
 
 
          Softlockups are bugs that cause the kernel to loop in kernel
          mode for more than 20 seconds, without giving other tasks a
          chance to run.  The current stack trace is displayed upon
          detection and the system will stay locked up.
 
-         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.
-
-         The overhead should be minimal.  A periodic hrtimer runs to
-         generate interrupts and kick the watchdog task every 4 seconds.
-         An NMI is generated every 10 seconds or so to check for hardlockups.
-
-         The frequency of hrtimer and NMI events and the soft and hard lockup
-         thresholds can be controlled through the sysctl watchdog_thresh.
-
 config KERNEL_DETECT_HUNG_TASK
        bool "Compile the kernel with detect Hung Tasks"
        depends on KERNEL_DEBUG_KERNEL
 config KERNEL_DETECT_HUNG_TASK
        bool "Compile the kernel with detect Hung Tasks"
        depends on KERNEL_DEBUG_KERNEL
-       default KERNEL_LOCKUP_DETECTOR
+       default KERNEL_SOFTLOCKUP_DETECTOR
        help
          Say Y here to enable the kernel to detect "hung tasks",
          which are bugs that cause the task to be stuck in
        help
          Say Y here to enable the kernel to detect "hung tasks",
          which are bugs that cause the task to be stuck in
@@ -945,6 +1010,19 @@ config KERNEL_IP_MROUTE
          Multicast routing requires a multicast routing daemon in
          addition to kernel support.
 
          Multicast routing requires a multicast routing daemon in
          addition to kernel support.
 
+if KERNEL_IP_MROUTE
+
+       config KERNEL_IP_MROUTE_MULTIPLE_TABLES
+               def_bool y
+
+       config KERNEL_IP_PIMSM_V1
+               def_bool y
+
+       config KERNEL_IP_PIMSM_V2
+               def_bool y
+
+endif
+
 #
 # IPv6 configuration
 #
 #
 # IPv6 configuration
 #
@@ -967,8 +1045,15 @@ if KERNEL_IPV6
                  Multicast routing requires a multicast routing daemon in
                  addition to kernel support.
 
                  Multicast routing requires a multicast routing daemon in
                  addition to kernel support.
 
-       config KERNEL_IPV6_PIMSM_V2
-               def_bool n
+       if KERNEL_IPV6_MROUTE
+
+               config KERNEL_IPV6_MROUTE_MULTIPLE_TABLES
+                       def_bool y
+
+               config KERNEL_IPV6_PIMSM_V2
+                       def_bool y
+
+       endif
 
        config KERNEL_IPV6_SEG6_LWTUNNEL
                bool "Enable support for lightweight tunnels"
 
        config KERNEL_IPV6_SEG6_LWTUNNEL
                bool "Enable support for lightweight tunnels"
@@ -981,6 +1066,16 @@ if KERNEL_IPV6
 
 endif
 
 
 endif
 
+#
+# Miscellaneous network configuration
+#
+
+config KERNEL_NET_L3_MASTER_DEV
+       bool "L3 Master device support"
+       help
+         This module provides glue between core networking code and device
+         drivers to support L3 master devices like VRF.
+
 #
 # NFS related symbols
 #
 #
 # NFS related symbols
 #
@@ -1126,7 +1221,7 @@ config KERNEL_SQUASHFS_XATTR
        bool "Squashfs XATTR support"
 
 #
        bool "Squashfs XATTR support"
 
 #
-# compile optimiziation setting
+# compile optimization setting
 #
 choice
        prompt "Compiler optimization level"
 #
 choice
        prompt "Compiler optimization level"