X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fwigyori.git;a=blobdiff_plain;f=config%2FConfig-kernel.in;h=f7ba2b67230c31c06a41906ba957fc9ebc520fc0;hp=0cbe5e8351a5a80171c0aa6f72c4782f44a3a0be;hb=69d179ec81dacf92e1f693783c4ddcbf5a68b231;hpb=fc166931fae87be0f98ea9e0c74b0f33ddd11113 diff --git a/config/Config-kernel.in b/config/Config-kernel.in index 0cbe5e8351..f7ba2b6723 100644 --- a/config/Config-kernel.in +++ b/config/Config-kernel.in @@ -6,6 +6,7 @@ config KERNEL_BUILD_USER string "Custom Kernel Build User Name" + default "builder" if BUILDBOT default "" help Sets the Kernel build user string, which for example will be returned @@ -14,6 +15,7 @@ config KERNEL_BUILD_USER config KERNEL_BUILD_DOMAIN string "Custom Kernel Build Domain Name" + default "buildhost" if BUILDBOT default "" help Sets the Kernel build domain string, which for example will be @@ -31,7 +33,7 @@ config KERNEL_CRASHLOG config KERNEL_SWAP bool "Support for paging of anonymous memory (swap)" - default y + default y if !SMALL_FLASH config KERNEL_DEBUG_FS bool "Compile the kernel with debug filesystem enabled" @@ -42,16 +44,39 @@ config KERNEL_DEBUG_FS write to these files. Many common debugging facilities, such as ftrace, require the existence of debugfs. +# remove KERNEL_MIPS_FPU_EMULATOR after kernel 4.14 and 4.14 are gone config KERNEL_MIPS_FPU_EMULATOR bool "Compile the kernel with MIPS FPU Emulator" default y if TARGET_pistachio depends on (mips || mipsel || mips64 || mips64el) +config KERNEL_MIPS_FP_SUPPORT + bool + default y if KERNEL_MIPS_FPU_EMULATOR + config KERNEL_ARM_PMU bool default n depends on (arm || aarch64) +config KERNEL_X86_VSYSCALL_EMULATION + bool "Enable vsyscall emulation" + default n + depends on x86_64 + help + This enables emulation of the legacy vsyscall page. Disabling + it is roughly equivalent to booting with vsyscall=none, except + that it will also disable the helpful warning if a program + tries to use a vsyscall. With this option set to N, offending + programs will just segfault, citing addresses of the form + 0xffffffffff600?00. + + This option is required by many programs built before 2013, and + care should be used even with newer programs if set to N. + + Disabling this option saves about 7K of kernel size and + possibly 4K of additional runtime pagetable memory. + config KERNEL_PERF_EVENTS bool "Compile the kernel with performance events and counters" default n @@ -65,6 +90,147 @@ config KERNEL_PROFILING Enable the extended profiling support mechanisms used by profilers such as OProfile. +config KERNEL_UBSAN + bool "Compile the kernel with undefined behaviour sanity checker" + help + This option enables undefined behaviour sanity checker + Compile-time instrumentation is used to detect various undefined + behaviours in runtime. Various types of checks may be enabled + via boot parameter ubsan_handle + (see: Documentation/dev-tools/ubsan.rst). + +config KERNEL_UBSAN_SANITIZE_ALL + bool "Enable instrumentation for the entire kernel" + depends on KERNEL_UBSAN + default y + help + This option activates instrumentation for the entire kernel. + If you don't enable this option, you have to explicitly specify + UBSAN_SANITIZE := y for the files/directories you want to check for UB. + Enabling this option will get kernel image size increased + significantly. + +config KERNEL_UBSAN_ALIGNMENT + bool "Enable checking of pointers alignment" + depends on KERNEL_UBSAN + help + This option enables detection of unaligned memory accesses. + Enabling this option on architectures that support unaligned + accesses may produce a lot of false positives. + +config KERNEL_UBSAN_NULL + bool "Enable checking of null pointers" + depends on KERNEL_UBSAN + help + This option enables detection of memory accesses via a + null pointer. + +config KERNEL_KASAN + bool "Compile the kernel with KASan: runtime memory debugger" + select KERNEL_SLUB_DEBUG + depends on (x86_64 || aarch64) + help + Enables kernel address sanitizer - runtime memory debugger, + designed to find out-of-bounds accesses and use-after-free bugs. + This is strictly a debugging feature and it requires a gcc version + of 4.9.2 or later. Detection of out of bounds accesses to stack or + global variables requires gcc 5.0 or later. + This feature consumes about 1/8 of available memory and brings about + ~x3 performance slowdown. + For better error detection enable CONFIG_STACKTRACE. + 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 + + +choice + prompt "Instrumentation type" + depends on KERNEL_KASAN + default KERNEL_KASAN_OUTLINE + +config KERNEL_KASAN_OUTLINE + bool "Outline instrumentation" + help + Before every memory access compiler insert function call + __asan_load*/__asan_store*. These functions performs check + of shadow memory. This is slower than inline instrumentation, + however it doesn't bloat size of kernel's .text section so + much as inline does. + +config KERNEL_KASAN_INLINE + bool "Inline instrumentation" + help + Compiler directly inserts code checking shadow memory before + memory accesses. This is faster than outline (in some workloads + it gives about x2 boost over outline instrumentation), but + make kernel's .text size much bigger. + This requires a gcc version of 5.0 or later. + +endchoice + +config KERNEL_KCOV + bool "Compile the kernel with code coverage for fuzzing" + select KERNEL_DEBUG_FS + help + KCOV exposes kernel code coverage information in a form suitable + for coverage-guided fuzzing (randomized testing). + + If RANDOMIZE_BASE is enabled, PC values will not be stable across + different machines and across reboots. If you need stable PC values, + disable RANDOMIZE_BASE. + + For more details, see Documentation/kcov.txt. + +config KERNEL_KCOV_ENABLE_COMPARISONS + bool "Enable comparison operands collection by KCOV" + depends on KERNEL_KCOV + help + KCOV also exposes operands of every comparison in the instrumented + code along with operand sizes and PCs of the comparison instructions. + These operands can be used by fuzzing engines to improve the quality + of fuzzing coverage. + +config KERNEL_KCOV_INSTRUMENT_ALL + bool "Instrument all code by default" + depends on KERNEL_KCOV + default y if KERNEL_KCOV + help + If you are doing generic system call fuzzing (like e.g. syzkaller), + then you will want to instrument the whole kernel and you should + say y here. If you are doing more targeted fuzzing (like e.g. + filesystem fuzzing with AFL) then you will want to enable coverage + for more specific subsets of files, and should say n here. + +config KERNEL_TASKSTATS + bool "Compile the kernel with task resource/io statistics and accounting" + default n + help + Enable the collection and publishing of task/io statistics and + accounting. Enable this option to enable i/o monitoring in system + monitors. + +if KERNEL_TASKSTATS + + config KERNEL_TASK_DELAY_ACCT + def_bool y + + config KERNEL_TASK_IO_ACCOUNTING + def_bool y + + config KERNEL_TASK_XACCT + def_bool y + +endif + config KERNEL_KALLSYMS bool "Compile the kernel with symbol table information" default y if !SMALL_FLASH @@ -112,7 +278,7 @@ config KERNEL_DEBUG_KERNEL config KERNEL_DEBUG_INFO bool "Compile the kernel with debug information" - default y + default y if !SMALL_FLASH select KERNEL_DEBUG_KERNEL help This will compile your kernel and modules with debug information. @@ -171,17 +337,21 @@ config KERNEL_KPROBE_EVENT bool default y if KERNEL_KPROBES +config KERNEL_KPROBE_EVENTS + bool + default y if KERNEL_KPROBES + config KERNEL_AIO bool "Compile the kernel with asynchronous IO support" - default n + default y if !SMALL_FLASH config KERNEL_FHANDLE bool "Compile the kernel with support for fhandle syscalls" - default n + default y if !SMALL_FLASH config KERNEL_FANOTIFY bool "Compile the kernel with modern file notification support" - default n + default y if !SMALL_FLASH config KERNEL_BLK_DEV_BSG bool "Compile the kernel with SCSI generic v4 support for any block device" @@ -205,13 +375,81 @@ config KERNEL_COREDUMP config KERNEL_ELF_CORE bool "Enable process core dump support" select KERNEL_COREDUMP - default y + default y if !SMALL_FLASH config KERNEL_PROVE_LOCKING bool "Enable kernel lock checking" select KERNEL_DEBUG_KERNEL default n +config KERNEL_LOCKUP_DETECTOR + bool "Compile the kernel with detect Hard and Soft Lockups" + depends on KERNEL_DEBUG_KERNEL + help + Say Y here to enable the kernel to act as a watchdog to detect + hard and 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. + + 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 + default KERNEL_LOCKUP_DETECTOR + help + Say Y here to enable the kernel to detect "hung tasks", + which are bugs that cause the task to be stuck in + uninterruptible "D" state indefinitely. + + When a hung task is detected, the kernel will print the + current stack trace (which you should report), but the + task will stay in uninterruptible state. If lockdep is + enabled then all held locks will also be reported. This + feature has negligible overhead. + +config KERNEL_WQ_WATCHDOG + bool "Compile the kernel with detect Workqueue Stalls" + depends on KERNEL_DEBUG_KERNEL + help + Say Y here to enable stall detection on workqueues. If a + worker pool doesn't make forward progress on a pending work + item for over a given amount of time, 30s by default, a + warning message is printed along with dump of workqueue + state. This can be configured through kernel parameter + "workqueue.watchdog_thresh" and its sysfs counterpart. + +config KERNEL_DEBUG_ATOMIC_SLEEP + bool "Compile the kernel with sleep inside atomic section checking" + depends on KERNEL_DEBUG_KERNEL + help + If you say Y here, various routines which may sleep will become very + noisy if they are called inside atomic sections: when a spinlock is + held, inside an rcu read side critical section, inside preempt disabled + sections, inside an interrupt, etc... + +config KERNEL_DEBUG_VM + bool "Compile the kernel with debug VM" + depends on KERNEL_DEBUG_KERNEL + help + Enable this to turn on extended checks in the virtual-memory system + that may impact performance. + + If unsure, say N. + config KERNEL_PRINTK_TIME bool "Enable printk timestamps" default y @@ -295,7 +533,7 @@ config KERNEL_ENCRYPTED_KEYS config KERNEL_CGROUPS bool "Enable kernel cgroups" - default n + default y if !SMALL_FLASH if KERNEL_CGROUPS @@ -334,7 +572,7 @@ if KERNEL_CGROUPS config KERNEL_CPUSETS bool "Cpuset support" - default n + default y if !SMALL_FLASH help This option will let you create and manage CPUSETs which allow dynamically partitioning a system into sets of CPUs and @@ -348,14 +586,14 @@ if KERNEL_CGROUPS config KERNEL_CGROUP_CPUACCT bool "Simple CPU accounting cgroup subsystem" - default n + default y if !SMALL_FLASH help Provides a simple Resource Controller for monitoring the total CPU consumed by the tasks in a cgroup. config KERNEL_RESOURCE_COUNTERS bool "Resource counters" - default n + default y if !SMALL_FLASH help This option enables controller independent resource accounting infrastructure that works with cgroups. @@ -366,7 +604,7 @@ if KERNEL_CGROUPS config KERNEL_MEMCG bool "Memory Resource Controller for Control Groups" - default n + default y if !SMALL_FLASH depends on KERNEL_RESOURCE_COUNTERS || !LINUX_3_18 help Provides a memory resource controller that manages both anonymous @@ -424,7 +662,7 @@ if KERNEL_CGROUPS config KERNEL_MEMCG_KMEM bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)" - default n + default y if !SMALL_FLASH depends on KERNEL_MEMCG help The Kernel Memory extension for Memory Resource Controller can limit @@ -445,7 +683,7 @@ if KERNEL_CGROUPS menuconfig KERNEL_CGROUP_SCHED bool "Group CPU scheduler" - default n + default y if !SMALL_FLASH help This feature lets CPU scheduler recognize task groups and control CPU bandwidth allocation to such task groups. It uses cgroups to group @@ -455,7 +693,7 @@ if KERNEL_CGROUPS config KERNEL_FAIR_GROUP_SCHED bool "Group scheduling for SCHED_OTHER" - default n + default y if !SMALL_FLASH config KERNEL_CFS_BANDWIDTH bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED" @@ -470,7 +708,7 @@ if KERNEL_CGROUPS config KERNEL_RT_GROUP_SCHED bool "Group scheduling for SCHED_RR/FIFO" - default n + default y if !SMALL_FLASH help This feature lets you explicitly allocate real CPU bandwidth to task groups. If enabled, it will also make it impossible to @@ -498,6 +736,20 @@ if KERNEL_CGROUPS CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set CONFIG_BLK_DEV_THROTTLING=y. + if KERNEL_BLK_CGROUP + + config KERNEL_CFQ_GROUP_IOSCHED + bool "Proportional weight of disk bandwidth in CFQ" + + config KERNEL_BLK_DEV_THROTTLING + bool "Enable throttling policy" + default y if TARGET_bcm27xx + + config KERNEL_BLK_DEV_THROTTLING_LOW + bool "Block throttling .low limit interface support (EXPERIMENTAL)" + depends on KERNEL_BLK_DEV_THROTTLING + endif + config KERNEL_DEBUG_BLK_CGROUP bool "Enable Block IO controller debugging" default n @@ -522,7 +774,7 @@ endif config KERNEL_NAMESPACES bool "Enable kernel namespaces" - default n + default y if !SMALL_FLASH if KERNEL_NAMESPACES @@ -564,51 +816,40 @@ if KERNEL_NAMESPACES endif -# -# LXC related symbols -# - -config KERNEL_LXC_MISC - bool "Enable miscellaneous LXC related options" - default n - -if KERNEL_LXC_MISC +config KERNEL_DEVPTS_MULTIPLE_INSTANCES + bool "Support multiple instances of devpts" + default y if !SMALL_FLASH + help + Enable support for multiple instances of devpts filesystem. + If you want to have isolated PTY namespaces (eg: in containers), + say Y here. Otherwise, say N. If enabled, each mount of devpts + filesystem with the '-o newinstance' option will create an + independent PTY namespace. + +config KERNEL_POSIX_MQUEUE + bool "POSIX Message Queues" + default y if !SMALL_FLASH + help + POSIX variant of message queues is a part of IPC. In POSIX message + queues every message has a priority which decides about succession + of receiving it by a process. If you want to compile and run + programs written e.g. for Solaris with use of its POSIX message + queues (functions mq_*) say Y here. - config KERNEL_DEVPTS_MULTIPLE_INSTANCES - bool "Support multiple instances of devpts" - default y - help - Enable support for multiple instances of devpts filesystem. - If you want to have isolated PTY namespaces (eg: in containers), - say Y here. Otherwise, say N. If enabled, each mount of devpts - filesystem with the '-o newinstance' option will create an - independent PTY namespace. - - config KERNEL_POSIX_MQUEUE - bool "POSIX Message Queues" - default y - help - POSIX variant of message queues is a part of IPC. In POSIX message - queues every message has a priority which decides about succession - of receiving it by a process. If you want to compile and run - programs written e.g. for Solaris with use of its POSIX message - queues (functions mq_*) say Y here. + POSIX message queues are visible as a filesystem called 'mqueue' + and can be mounted somewhere if you want to do filesystem + operations on message queues. - POSIX message queues are visible as a filesystem called 'mqueue' - and can be mounted somewhere if you want to do filesystem - operations on message queues. - -endif config KERNEL_SECCOMP_FILTER bool - default n + default y if !SMALL_FLASH config KERNEL_SECCOMP bool "Enable seccomp support" depends on !(TARGET_uml) select KERNEL_SECCOMP_FILTER - default n + default y if !SMALL_FLASH help Build kernel with support for seccomp. @@ -734,7 +975,7 @@ menu "Filesystem ACL and attr support options" select KERNEL_FS_POSIX_ACL default y if USE_FS_ACL_ATTR - config KERNEL_HFSPLUG_FS_POSIX_ACL + config KERNEL_HFSPLUS_FS_POSIX_ACL bool "Enable POSIX ACL for HFS+ Filesystems" select KERNEL_FS_POSIX_ACL default y if USE_FS_ACL_ATTR @@ -785,3 +1026,30 @@ config KERNEL_DEVKMEM Say Y here if you want to support the /dev/kmem device. The /dev/kmem device is rarely used, but can be used for certain kind of kernel debugging operations. + +config KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE + int "Number of squashfs fragments cached" + default 2 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT) + default 3 + +# +# compile optimiziation setting +# +choice + prompt "Compiler optimization level" + default KERNEL_CC_OPTIMIZE_FOR_SIZE if SMALL_FLASH + +config KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE + bool "Optimize for performance" + help + This is the default optimization level for the kernel, building + with the "-O2" compiler flag for best performance and most + helpful compile-time warnings. + +config KERNEL_CC_OPTIMIZE_FOR_SIZE + bool "Optimize for size" + help + Enabling this option will pass "-Os" instead of "-O2" to + your compiler resulting in a smaller kernel. + +endchoice