1 # Copyright (C) 2006-2014 OpenWrt.org
3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
7 config KERNEL_BUILD_USER
8 string "Custom Kernel Build User Name"
9 default "builder" if BUILDBOT
12 Sets the Kernel build user string, which for example will be returned
13 by 'uname -a' on running systems.
14 If not set, uses system user at build time.
16 config KERNEL_BUILD_DOMAIN
17 string "Custom Kernel Build Domain Name"
18 default "buildhost" if BUILDBOT
21 Sets the Kernel build domain string, which for example will be
22 returned by 'uname -a' on running systems.
23 If not set, uses system hostname at build time.
26 bool "Enable support for printk"
29 config KERNEL_CRASHLOG
31 depends on !(arm || powerpc || sparc || TARGET_uml || i386 || x86_64)
35 bool "Support for paging of anonymous memory (swap)"
36 default y if !SMALL_FLASH
38 config KERNEL_DEBUG_FS
39 bool "Compile the kernel with debug filesystem enabled"
42 debugfs is a virtual file system that kernel developers use to put
43 debugging files into. Enable this option to be able to read and
44 write to these files. Many common debugging facilities, such as
45 ftrace, require the existence of debugfs.
47 config KERNEL_MIPS_FP_SUPPORT
49 default y if TARGET_pistachio
54 depends on (arm || aarch64)
56 config KERNEL_X86_VSYSCALL_EMULATION
57 bool "Enable vsyscall emulation"
61 This enables emulation of the legacy vsyscall page. Disabling
62 it is roughly equivalent to booting with vsyscall=none, except
63 that it will also disable the helpful warning if a program
64 tries to use a vsyscall. With this option set to N, offending
65 programs will just segfault, citing addresses of the form
68 This option is required by many programs built before 2013, and
69 care should be used even with newer programs if set to N.
71 Disabling this option saves about 7K of kernel size and
72 possibly 4K of additional runtime pagetable memory.
74 config KERNEL_PERF_EVENTS
75 bool "Compile the kernel with performance events and counters"
77 select KERNEL_ARM_PMU if (arm || aarch64)
79 config KERNEL_PROFILING
80 bool "Compile the kernel with profiling enabled"
82 select KERNEL_PERF_EVENTS
84 Enable the extended profiling support mechanisms used by profilers such
88 bool "Compile the kernel with undefined behaviour sanity checker"
90 This option enables undefined behaviour sanity checker
91 Compile-time instrumentation is used to detect various undefined
92 behaviours in runtime. Various types of checks may be enabled
93 via boot parameter ubsan_handle
94 (see: Documentation/dev-tools/ubsan.rst).
96 config KERNEL_UBSAN_SANITIZE_ALL
97 bool "Enable instrumentation for the entire kernel"
98 depends on KERNEL_UBSAN
101 This option activates instrumentation for the entire kernel.
102 If you don't enable this option, you have to explicitly specify
103 UBSAN_SANITIZE := y for the files/directories you want to check for UB.
104 Enabling this option will get kernel image size increased
107 config KERNEL_UBSAN_ALIGNMENT
108 bool "Enable checking of pointers alignment"
109 depends on KERNEL_UBSAN
111 This option enables detection of unaligned memory accesses.
112 Enabling this option on architectures that support unaligned
113 accesses may produce a lot of false positives.
115 config KERNEL_UBSAN_NULL
116 bool "Enable checking of null pointers"
117 depends on KERNEL_UBSAN
119 This option enables detection of memory accesses via a
123 bool "Compile the kernel with KASan: runtime memory debugger"
124 select KERNEL_SLUB_DEBUG
125 depends on (x86_64 || aarch64)
127 Enables kernel address sanitizer - runtime memory debugger,
128 designed to find out-of-bounds accesses and use-after-free bugs.
129 This is strictly a debugging feature and it requires a gcc version
130 of 4.9.2 or later. Detection of out of bounds accesses to stack or
131 global variables requires gcc 5.0 or later.
132 This feature consumes about 1/8 of available memory and brings about
133 ~x3 performance slowdown.
134 For better error detection enable CONFIG_STACKTRACE.
135 Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB
136 (the resulting kernel does not boot).
138 config KERNEL_KASAN_EXTRA
139 bool "KAsan: extra checks"
140 depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL
142 This enables further checks in the kernel address sanitizer, for now
143 it only includes the address-use-after-scope check that can lead
144 to excessive kernel stack usage, frame size warnings and longer
146 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
150 prompt "Instrumentation type"
151 depends on KERNEL_KASAN
152 default KERNEL_KASAN_OUTLINE
154 config KERNEL_KASAN_OUTLINE
155 bool "Outline instrumentation"
157 Before every memory access compiler insert function call
158 __asan_load*/__asan_store*. These functions performs check
159 of shadow memory. This is slower than inline instrumentation,
160 however it doesn't bloat size of kernel's .text section so
163 config KERNEL_KASAN_INLINE
164 bool "Inline instrumentation"
166 Compiler directly inserts code checking shadow memory before
167 memory accesses. This is faster than outline (in some workloads
168 it gives about x2 boost over outline instrumentation), but
169 make kernel's .text size much bigger.
170 This requires a gcc version of 5.0 or later.
175 bool "Compile the kernel with code coverage for fuzzing"
176 select KERNEL_DEBUG_FS
178 KCOV exposes kernel code coverage information in a form suitable
179 for coverage-guided fuzzing (randomized testing).
181 If RANDOMIZE_BASE is enabled, PC values will not be stable across
182 different machines and across reboots. If you need stable PC values,
183 disable RANDOMIZE_BASE.
185 For more details, see Documentation/kcov.txt.
187 config KERNEL_KCOV_ENABLE_COMPARISONS
188 bool "Enable comparison operands collection by KCOV"
189 depends on KERNEL_KCOV
191 KCOV also exposes operands of every comparison in the instrumented
192 code along with operand sizes and PCs of the comparison instructions.
193 These operands can be used by fuzzing engines to improve the quality
196 config KERNEL_KCOV_INSTRUMENT_ALL
197 bool "Instrument all code by default"
198 depends on KERNEL_KCOV
199 default y if KERNEL_KCOV
201 If you are doing generic system call fuzzing (like e.g. syzkaller),
202 then you will want to instrument the whole kernel and you should
203 say y here. If you are doing more targeted fuzzing (like e.g.
204 filesystem fuzzing with AFL) then you will want to enable coverage
205 for more specific subsets of files, and should say n here.
207 config KERNEL_TASKSTATS
208 bool "Compile the kernel with task resource/io statistics and accounting"
211 Enable the collection and publishing of task/io statistics and
212 accounting. Enable this option to enable i/o monitoring in system
217 config KERNEL_TASK_DELAY_ACCT
220 config KERNEL_TASK_IO_ACCOUNTING
223 config KERNEL_TASK_XACCT
228 config KERNEL_KALLSYMS
229 bool "Compile the kernel with symbol table information"
230 default y if !SMALL_FLASH
232 This will give you more information in stack traces from kernel oopses.
235 bool "Compile the kernel with tracing support"
236 depends on !TARGET_uml
239 config KERNEL_FTRACE_SYSCALLS
240 bool "Trace system calls"
241 depends on KERNEL_FTRACE
244 config KERNEL_ENABLE_DEFAULT_TRACERS
245 bool "Trace process context switches and events"
246 depends on KERNEL_FTRACE
249 config KERNEL_FUNCTION_TRACER
250 bool "Function tracer"
251 depends on KERNEL_FTRACE
254 config KERNEL_FUNCTION_GRAPH_TRACER
255 bool "Function graph tracer"
256 depends on KERNEL_FUNCTION_TRACER
259 config KERNEL_DYNAMIC_FTRACE
260 bool "Enable/disable function tracing dynamically"
261 depends on KERNEL_FUNCTION_TRACER
264 config KERNEL_FUNCTION_PROFILER
265 bool "Function profiler"
266 depends on KERNEL_FUNCTION_TRACER
269 config KERNEL_IRQSOFF_TRACER
270 bool "Interrupts-off Latency Tracer"
271 depends on KERNEL_FTRACE
273 This option measures the time spent in irqs-off critical
274 sections, with microsecond accuracy.
276 The default measurement method is a maximum search, which is
277 disabled by default and can be runtime (re-)started
280 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
282 (Note that kernel size and overhead increase with this option
283 enabled. This option and the preempt-off timing option can be
284 used together or separately.)
286 config KERNEL_PREEMPT_TRACER
287 bool "Preemption-off Latency Tracer"
288 depends on KERNEL_FTRACE
290 This option measures the time spent in preemption-off critical
291 sections, with microsecond accuracy.
293 The default measurement method is a maximum search, which is
294 disabled by default and can be runtime (re-)started
297 echo 0 > /sys/kernel/debug/tracing/tracing_max_latency
299 (Note that kernel size and overhead increase with this option
300 enabled. This option and the irqs-off timing option can be
301 used together or separately.)
303 config KERNEL_DEBUG_KERNEL
307 config KERNEL_DEBUG_INFO
308 bool "Compile the kernel with debug information"
309 default y if !SMALL_FLASH
310 select KERNEL_DEBUG_KERNEL
312 This will compile your kernel and modules with debug information.
314 config KERNEL_DEBUG_LL_UART_NONE
319 config KERNEL_DEBUG_LL
323 select KERNEL_DEBUG_LL_UART_NONE
325 ARM low level debugging.
327 config KERNEL_DYNAMIC_DEBUG
328 bool "Compile the kernel with dynamic printk"
329 select KERNEL_DEBUG_FS
332 Compiles debug level messages into the kernel, which would not
333 otherwise be available at runtime. These messages can then be
334 enabled/disabled based on various levels of scope - per source file,
335 function, module, format string, and line number. This mechanism
336 implicitly compiles in all pr_debug() and dev_dbg() calls, which
337 enlarges the kernel text size by about 2%.
339 config KERNEL_EARLY_PRINTK
340 bool "Compile the kernel with early printk"
341 default y if TARGET_bcm53xx
344 select KERNEL_DEBUG_KERNEL
345 select KERNEL_DEBUG_LL if arm
347 Compile the kernel with early printk support. This is only useful for
348 debugging purposes to send messages over the serial console in early boot.
349 Enable this to debug early boot problems.
351 config KERNEL_KPROBES
352 bool "Compile the kernel with kprobes support"
355 select KERNEL_PERF_EVENTS
357 Compiles the kernel with KPROBES support, which allows you to trap
358 at almost any kernel address and execute a callback function.
359 register_kprobe() establishes a probepoint and specifies the
360 callback. Kprobes is useful for kernel debugging, non-intrusive
361 instrumentation and testing.
362 If in doubt, say "N".
364 config KERNEL_KPROBE_EVENT
366 default y if KERNEL_KPROBES
368 config KERNEL_KPROBE_EVENTS
370 default y if KERNEL_KPROBES
373 bool "Compile the kernel with asynchronous IO support"
374 default y if !SMALL_FLASH
376 config KERNEL_FHANDLE
377 bool "Compile the kernel with support for fhandle syscalls"
378 default y if !SMALL_FLASH
380 config KERNEL_FANOTIFY
381 bool "Compile the kernel with modern file notification support"
382 default y if !SMALL_FLASH
384 config KERNEL_BLK_DEV_BSG
385 bool "Compile the kernel with SCSI generic v4 support for any block device"
388 config KERNEL_TRANSPARENT_HUGEPAGE
392 prompt "Transparent Hugepage Support sysfs defaults"
393 depends on KERNEL_TRANSPARENT_HUGEPAGE
394 default KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS
396 config KERNEL_TRANSPARENT_HUGEPAGE_ALWAYS
399 config KERNEL_TRANSPARENT_HUGEPAGE_MADVISE
403 config KERNEL_HUGETLBFS
406 config KERNEL_HUGETLB_PAGE
407 bool "Compile the kernel with HugeTLB support"
408 select KERNEL_TRANSPARENT_HUGEPAGE
409 select KERNEL_HUGETLBFS
412 config KERNEL_MAGIC_SYSRQ
413 bool "Compile the kernel with SysRq support"
416 config KERNEL_DEBUG_PINCTRL
417 bool "Compile the kernel with pinctrl debugging"
418 select KERNEL_DEBUG_KERNEL
420 config KERNEL_DEBUG_GPIO
421 bool "Compile the kernel with gpio debugging"
422 select KERNEL_DEBUG_KERNEL
424 config KERNEL_COREDUMP
427 config KERNEL_ELF_CORE
428 bool "Enable process core dump support"
429 select KERNEL_COREDUMP
430 default y if !SMALL_FLASH
432 config KERNEL_PROVE_LOCKING
433 bool "Enable kernel lock checking"
434 select KERNEL_DEBUG_KERNEL
437 config KERNEL_LOCKUP_DETECTOR
438 bool "Compile the kernel with detect Hard and Soft Lockups"
439 depends on KERNEL_DEBUG_KERNEL
441 Say Y here to enable the kernel to act as a watchdog to detect
442 hard and soft lockups.
444 Softlockups are bugs that cause the kernel to loop in kernel
445 mode for more than 20 seconds, without giving other tasks a
446 chance to run. The current stack trace is displayed upon
447 detection and the system will stay locked up.
449 Hardlockups are bugs that cause the CPU to loop in kernel mode
450 for more than 10 seconds, without letting other interrupts have a
451 chance to run. The current stack trace is displayed upon detection
452 and the system will stay locked up.
454 The overhead should be minimal. A periodic hrtimer runs to
455 generate interrupts and kick the watchdog task every 4 seconds.
456 An NMI is generated every 10 seconds or so to check for hardlockups.
458 The frequency of hrtimer and NMI events and the soft and hard lockup
459 thresholds can be controlled through the sysctl watchdog_thresh.
461 config KERNEL_DETECT_HUNG_TASK
462 bool "Compile the kernel with detect Hung Tasks"
463 depends on KERNEL_DEBUG_KERNEL
464 default KERNEL_LOCKUP_DETECTOR
466 Say Y here to enable the kernel to detect "hung tasks",
467 which are bugs that cause the task to be stuck in
468 uninterruptible "D" state indefinitely.
470 When a hung task is detected, the kernel will print the
471 current stack trace (which you should report), but the
472 task will stay in uninterruptible state. If lockdep is
473 enabled then all held locks will also be reported. This
474 feature has negligible overhead.
476 config KERNEL_WQ_WATCHDOG
477 bool "Compile the kernel with detect Workqueue Stalls"
478 depends on KERNEL_DEBUG_KERNEL
480 Say Y here to enable stall detection on workqueues. If a
481 worker pool doesn't make forward progress on a pending work
482 item for over a given amount of time, 30s by default, a
483 warning message is printed along with dump of workqueue
484 state. This can be configured through kernel parameter
485 "workqueue.watchdog_thresh" and its sysfs counterpart.
487 config KERNEL_DEBUG_ATOMIC_SLEEP
488 bool "Compile the kernel with sleep inside atomic section checking"
489 depends on KERNEL_DEBUG_KERNEL
491 If you say Y here, various routines which may sleep will become very
492 noisy if they are called inside atomic sections: when a spinlock is
493 held, inside an rcu read side critical section, inside preempt disabled
494 sections, inside an interrupt, etc...
496 config KERNEL_DEBUG_VM
497 bool "Compile the kernel with debug VM"
498 depends on KERNEL_DEBUG_KERNEL
500 Enable this to turn on extended checks in the virtual-memory system
501 that may impact performance.
505 config KERNEL_PRINTK_TIME
506 bool "Enable printk timestamps"
509 config KERNEL_SLUB_DEBUG
512 config KERNEL_SLUB_DEBUG_ON
515 config KERNEL_SLABINFO
516 select KERNEL_SLUB_DEBUG
517 select KERNEL_SLUB_DEBUG_ON
518 bool "Enable /proc slab debug info"
520 config KERNEL_PROC_PAGE_MONITOR
521 bool "Enable /proc page monitoring"
527 bool "Enable kexec support"
529 config KERNEL_PROC_VMCORE
532 config KERNEL_PROC_KCORE
535 config KERNEL_CRASH_DUMP
536 depends on i386 || x86_64 || arm || armeb
538 select KERNEL_PROC_VMCORE
539 select KERNEL_PROC_KCORE
540 bool "Enable support for kexec crashdump"
544 bool "Enable rfkill support"
545 default RFKILL_SUPPORT
548 bool "Enable sparse check during kernel build"
551 config KERNEL_DEVTMPFS
552 bool "Compile the kernel with device tmpfs enabled"
555 devtmpfs is a simple, kernel-managed /dev filesystem. The kernel creates
556 devices nodes for all registered devices to simplify boot, but leaves more
557 complex tasks to userspace (e.g. udev).
561 config KERNEL_DEVTMPFS_MOUNT
562 bool "Automatically mount devtmpfs after root filesystem is mounted"
568 bool "Enable kernel access key retention support"
571 config KERNEL_PERSISTENT_KEYRINGS
572 bool "Enable kernel persistent keyrings"
573 depends on KERNEL_KEYS
576 config KERNEL_KEYS_REQUEST_CACHE
577 bool "Enable temporary caching of the last request_key() result"
578 depends on KERNEL_KEYS
581 config KERNEL_BIG_KEYS
582 bool "Enable large payload keys on kernel keyrings"
583 depends on KERNEL_KEYS
587 # CGROUP support symbols
590 config KERNEL_CGROUPS
591 bool "Enable kernel cgroups"
592 default y if !SMALL_FLASH
596 config KERNEL_CGROUP_DEBUG
597 bool "Example debug cgroup subsystem"
600 This option enables a simple cgroup subsystem that
601 exports useful debugging information about the cgroups
604 config KERNEL_FREEZER
607 config KERNEL_CGROUP_FREEZER
608 bool "legacy Freezer cgroup subsystem"
610 select KERNEL_FREEZER
612 Provides a way to freeze and unfreeze all tasks in a
614 (legacy cgroup1-only controller, in cgroup2 freezer
615 is integrated in the Memory controller)
617 config KERNEL_CGROUP_DEVICE
618 bool "legacy Device controller for cgroups"
621 Provides a cgroup implementing whitelists for devices which
622 a process in the cgroup can mknod or open.
623 (legacy cgroup1-only controller)
625 config KERNEL_CGROUP_HUGETLB
626 bool "HugeTLB controller"
628 select KERNEL_HUGETLB_PAGE
630 config KERNEL_CGROUP_PIDS
631 bool "PIDs cgroup subsystem"
634 Provides enforcement of process number limits in the scope of a
637 config KERNEL_CGROUP_RDMA
638 bool "RDMA controller for cgroups"
641 config KERNEL_CGROUP_BPF
642 bool "Support for eBPF programs attached to cgroups"
645 config KERNEL_CPUSETS
646 bool "Cpuset support"
649 This option will let you create and manage CPUSETs which
650 allow dynamically partitioning a system into sets of CPUs and
651 Memory Nodes and assigning tasks to run only within those sets.
652 This is primarily useful on large SMP or NUMA systems.
654 config KERNEL_PROC_PID_CPUSET
655 bool "Include legacy /proc/<pid>/cpuset file"
657 depends on KERNEL_CPUSETS
659 config KERNEL_CGROUP_CPUACCT
660 bool "Simple CPU accounting cgroup subsystem"
663 Provides a simple Resource Controller for monitoring the
664 total CPU consumed by the tasks in a cgroup.
666 config KERNEL_RESOURCE_COUNTERS
667 bool "Resource counters"
670 This option enables controller independent resource accounting
671 infrastructure that works with cgroups.
673 config KERNEL_MM_OWNER
675 default y if KERNEL_MEMCG
678 bool "Memory Resource Controller for Control Groups"
680 select KERNEL_FREEZER
681 depends on KERNEL_RESOURCE_COUNTERS || !LINUX_3_18
683 Provides a memory resource controller that manages both anonymous
684 memory and page cache. (See Documentation/cgroups/memory.txt)
686 Note that setting this option increases fixed memory overhead
687 associated with each page of memory in the system. By this,
688 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
689 usage tracking struct at boot. Total amount of this is printed out
692 Only enable when you're ok with these tradeoffs and really
693 sure you need the memory resource controller. Even when you enable
694 this, you can set "cgroup_disable=memory" at your boot option to
695 disable memory resource controller and you can avoid overheads
696 (but lose benefits of memory resource controller).
698 This config option also selects MM_OWNER config option, which
699 could in turn add some fork/exit overhead.
701 config KERNEL_MEMCG_SWAP
702 bool "Memory Resource Controller Swap Extension"
704 depends on KERNEL_MEMCG
706 Add swap management feature to memory resource controller. When you
707 enable this, you can limit mem+swap usage per cgroup. In other words,
708 when you disable this, memory resource controller has no cares to
709 usage of swap...a process can exhaust all of the swap. This extension
710 is useful when you want to avoid exhaustion swap but this itself
711 adds more overheads and consumes memory for remembering information.
712 Especially if you use 32bit system or small memory system, please
713 be careful about enabling this. When memory resource controller
714 is disabled by boot option, this will be automatically disabled and
715 there will be no overhead from this. Even when you set this config=y,
716 if boot option "swapaccount=0" is set, swap will not be accounted.
717 Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
718 size is 4096bytes, 512k per 1Gbytes of swap.
720 config KERNEL_MEMCG_SWAP_ENABLED
721 bool "Memory Resource Controller Swap Extension enabled by default"
723 depends on KERNEL_MEMCG_SWAP
725 Memory Resource Controller Swap Extension comes with its price in
726 a bigger memory consumption. General purpose distribution kernels
727 which want to enable the feature but keep it disabled by default
728 and let the user enable it by swapaccount boot command line
729 parameter should have this option unselected.
731 Those who want to have the feature enabled by default should
732 select this option (if, for some reason, they need to disable it,
733 then swapaccount=0 does the trick).
736 config KERNEL_MEMCG_KMEM
737 bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
739 depends on KERNEL_MEMCG
741 The Kernel Memory extension for Memory Resource Controller can limit
742 the amount of memory used by kernel objects in the system. Those are
743 fundamentally different from the entities handled by the standard
744 Memory Controller, which are page-based, and can be swapped. Users of
745 the kmem extension can use it to guarantee that no group of processes
746 will ever exhaust kernel resources alone.
748 config KERNEL_CGROUP_PERF
749 bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
750 select KERNEL_PERF_EVENTS
753 This option extends the per-cpu mode to restrict monitoring to
754 threads which belong to the cgroup specified and run on the
757 menuconfig KERNEL_CGROUP_SCHED
758 bool "Group CPU scheduler"
761 This feature lets CPU scheduler recognize task groups and control CPU
762 bandwidth allocation to such task groups. It uses cgroups to group
765 if KERNEL_CGROUP_SCHED
767 config KERNEL_FAIR_GROUP_SCHED
768 bool "Group scheduling for SCHED_OTHER"
771 config KERNEL_CFS_BANDWIDTH
772 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
774 depends on KERNEL_FAIR_GROUP_SCHED
776 This option allows users to define CPU bandwidth rates (limits) for
777 tasks running within the fair group scheduler. Groups with no limit
778 set are considered to be unconstrained and will run with no
780 See tip/Documentation/scheduler/sched-bwc.txt for more information.
782 config KERNEL_RT_GROUP_SCHED
783 bool "Group scheduling for SCHED_RR/FIFO"
786 This feature lets you explicitly allocate real CPU bandwidth
787 to task groups. If enabled, it will also make it impossible to
788 schedule realtime tasks for non-root users until you allocate
789 realtime bandwidth for them.
793 config KERNEL_BLK_CGROUP
794 bool "Block IO controller"
797 Generic block IO controller cgroup interface. This is the common
798 cgroup interface which should be used by various IO controlling
801 Currently, CFQ IO scheduler uses it to recognize task groups and
802 control disk bandwidth allocation (proportional time slice allocation)
803 to such task groups. It is also used by bio throttling logic in
804 block layer to implement upper limit in IO rates on a device.
806 This option only enables generic Block IO controller infrastructure.
807 One needs to also enable actual IO controlling logic/policy. For
808 enabling proportional weight division of disk bandwidth in CFQ, set
809 CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
810 CONFIG_BLK_DEV_THROTTLING=y.
814 config KERNEL_CFQ_GROUP_IOSCHED
815 bool "Proportional weight of disk bandwidth in CFQ"
817 config KERNEL_BLK_DEV_THROTTLING
818 bool "Enable throttling policy"
821 config KERNEL_BLK_DEV_THROTTLING_LOW
822 bool "Block throttling .low limit interface support (EXPERIMENTAL)"
823 depends on KERNEL_BLK_DEV_THROTTLING
826 config KERNEL_DEBUG_BLK_CGROUP
827 bool "Enable Block IO controller debugging"
829 depends on KERNEL_BLK_CGROUP
831 Enable some debugging help. Currently it exports additional stat
832 files in a cgroup which can be useful for debugging.
834 config KERNEL_NET_CLS_CGROUP
835 bool "legacy Control Group Classifier"
838 config KERNEL_CGROUP_NET_CLASSID
839 bool "legacy Network classid cgroup"
842 config KERNEL_CGROUP_NET_PRIO
843 bool "legacy Network priority cgroup"
849 # Namespace support symbols
852 config KERNEL_NAMESPACES
853 bool "Enable kernel namespaces"
854 default y if !SMALL_FLASH
862 In this namespace, tasks see different info provided
863 with the uname() system call.
869 In this namespace, tasks work with IPC ids which correspond to
870 different IPC objects in different namespaces.
872 config KERNEL_USER_NS
873 bool "User namespace (EXPERIMENTAL)"
876 This allows containers, i.e. vservers, to use user namespaces
877 to provide different user info for different servers.
880 bool "PID Namespaces"
883 Support process id namespaces. This allows having multiple
884 processes with the same pid as long as they are in different
885 pid namespaces. This is a building block of containers.
888 bool "Network namespace"
891 Allow user space to create what appear to be multiple instances
892 of the network stack.
896 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
897 bool "Support multiple instances of devpts"
898 default y if !SMALL_FLASH
900 Enable support for multiple instances of devpts filesystem.
901 If you want to have isolated PTY namespaces (eg: in containers),
902 say Y here. Otherwise, say N. If enabled, each mount of devpts
903 filesystem with the '-o newinstance' option will create an
904 independent PTY namespace.
906 config KERNEL_POSIX_MQUEUE
907 bool "POSIX Message Queues"
908 default y if !SMALL_FLASH
910 POSIX variant of message queues is a part of IPC. In POSIX message
911 queues every message has a priority which decides about succession
912 of receiving it by a process. If you want to compile and run
913 programs written e.g. for Solaris with use of its POSIX message
914 queues (functions mq_*) say Y here.
916 POSIX message queues are visible as a filesystem called 'mqueue'
917 and can be mounted somewhere if you want to do filesystem
918 operations on message queues.
921 config KERNEL_SECCOMP_FILTER
923 default y if !SMALL_FLASH
925 config KERNEL_SECCOMP
926 bool "Enable seccomp support"
927 depends on !(TARGET_uml)
928 select KERNEL_SECCOMP_FILTER
929 default y if !SMALL_FLASH
931 Build kernel with support for seccomp.
937 config KERNEL_IP_MROUTE
938 bool "Enable IPv4 multicast routing"
941 Multicast routing requires a multicast routing daemon in
942 addition to kernel support.
953 config KERNEL_IPV6_MULTIPLE_TABLES
956 config KERNEL_IPV6_SUBTREES
959 config KERNEL_IPV6_MROUTE
960 bool "Enable IPv6 multicast routing"
963 Multicast routing requires a multicast routing daemon in
964 addition to kernel support.
966 config KERNEL_IPV6_PIMSM_V2
972 # NFS related symbols
975 bool "Compile the kernel with rootfs on NFS"
977 If you want to make your kernel boot off a NFS server as root
978 filesystem, select Y here.
982 config KERNEL_IP_PNP_DHCP
985 config KERNEL_IP_PNP_BOOTP
988 config KERNEL_IP_PNP_RARP
1000 config KERNEL_ROOT_NFS
1005 menu "Filesystem ACL and attr support options"
1006 config USE_FS_ACL_ATTR
1007 bool "Use filesystem ACL and attr support by default"
1010 Make using ACLs (e.g. POSIX ACL, NFSv4 ACL) the default
1011 for kernel and packages, except tmpfs, flash filesystems,
1012 and old NFS. Also enable userspace extended attribute support
1013 by default. (OpenWrt already has an expection it will be
1014 present in the kernel).
1016 config KERNEL_FS_POSIX_ACL
1017 bool "Enable POSIX ACL support"
1018 default y if USE_FS_ACL_ATTR
1020 config KERNEL_BTRFS_FS_POSIX_ACL
1021 bool "Enable POSIX ACL for BtrFS Filesystems"
1022 select KERNEL_FS_POSIX_ACL
1023 default y if USE_FS_ACL_ATTR
1025 config KERNEL_EXT4_FS_POSIX_ACL
1026 bool "Enable POSIX ACL for Ext4 Filesystems"
1027 select KERNEL_FS_POSIX_ACL
1028 default y if USE_FS_ACL_ATTR
1030 config KERNEL_F2FS_FS_POSIX_ACL
1031 bool "Enable POSIX ACL for F2FS Filesystems"
1032 select KERNEL_FS_POSIX_ACL
1035 config KERNEL_JFFS2_FS_POSIX_ACL
1036 bool "Enable POSIX ACL for JFFS2 Filesystems"
1037 select KERNEL_FS_POSIX_ACL
1040 config KERNEL_TMPFS_POSIX_ACL
1041 bool "Enable POSIX ACL for TMPFS Filesystems"
1042 select KERNEL_FS_POSIX_ACL
1045 config KERNEL_CIFS_ACL
1046 bool "Enable CIFS ACLs"
1047 select KERNEL_FS_POSIX_ACL
1048 default y if USE_FS_ACL_ATTR
1050 config KERNEL_HFS_FS_POSIX_ACL
1051 bool "Enable POSIX ACL for HFS Filesystems"
1052 select KERNEL_FS_POSIX_ACL
1053 default y if USE_FS_ACL_ATTR
1055 config KERNEL_HFSPLUS_FS_POSIX_ACL
1056 bool "Enable POSIX ACL for HFS+ Filesystems"
1057 select KERNEL_FS_POSIX_ACL
1058 default y if USE_FS_ACL_ATTR
1060 config KERNEL_NFS_ACL_SUPPORT
1061 bool "Enable ACLs for NFS"
1062 default y if USE_FS_ACL_ATTR
1064 config KERNEL_NFS_V3_ACL_SUPPORT
1065 bool "Enable ACLs for NFSv3"
1068 config KERNEL_NFSD_V2_ACL_SUPPORT
1069 bool "Enable ACLs for NFSDv2"
1072 config KERNEL_NFSD_V3_ACL_SUPPORT
1073 bool "Enable ACLs for NFSDv3"
1076 config KERNEL_REISER_FS_POSIX_ACL
1077 bool "Enable POSIX ACLs for ReiserFS"
1078 select KERNEL_FS_POSIX_ACL
1079 default y if USE_FS_ACL_ATTR
1081 config KERNEL_XFS_POSIX_ACL
1082 bool "Enable POSIX ACLs for XFS"
1083 select KERNEL_FS_POSIX_ACL
1084 default y if USE_FS_ACL_ATTR
1086 config KERNEL_JFS_POSIX_ACL
1087 bool "Enable POSIX ACLs for JFS"
1088 select KERNEL_FS_POSIX_ACL
1089 default y if USE_FS_ACL_ATTR
1093 config KERNEL_DEVMEM
1094 bool "/dev/mem virtual device support"
1096 Say Y here if you want to support the /dev/mem device.
1097 The /dev/mem device is used to access areas of physical
1100 config KERNEL_DEVKMEM
1101 bool "/dev/kmem virtual device support"
1103 Say Y here if you want to support the /dev/kmem device. The
1104 /dev/kmem device is rarely used, but can be used for certain
1105 kind of kernel debugging operations.
1107 config KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE
1108 int "Number of squashfs fragments cached"
1109 default 2 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
1112 config KERNEL_SQUASHFS_XATTR
1113 bool "Squashfs XATTR support"
1116 # compile optimiziation setting
1119 prompt "Compiler optimization level"
1120 default KERNEL_CC_OPTIMIZE_FOR_SIZE if SMALL_FLASH
1122 config KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE
1123 bool "Optimize for performance"
1125 This is the default optimization level for the kernel, building
1126 with the "-O2" compiler flag for best performance and most
1127 helpful compile-time warnings.
1129 config KERNEL_CC_OPTIMIZE_FOR_SIZE
1130 bool "Optimize for size"
1132 Enabling this option will pass "-Os" instead of "-O2" to
1133 your compiler resulting in a smaller kernel.
1138 bool "Auditing support"
1140 config KERNEL_SECURITY
1141 bool "Enable different security models"
1143 config KERNEL_SECURITY_NETWORK
1144 bool "Socket and Networking Security Hooks"
1145 select KERNEL_SECURITY
1147 config KERNEL_SECURITY_SELINUX
1148 bool "NSA SELinux Support"
1149 select KERNEL_SECURITY_NETWORK
1152 config KERNEL_SECURITY_SELINUX_BOOTPARAM
1153 bool "NSA SELinux boot parameter"
1154 depends on KERNEL_SECURITY_SELINUX
1157 config KERNEL_SECURITY_SELINUX_DISABLE
1158 bool "NSA SELinux runtime disable"
1159 depends on KERNEL_SECURITY_SELINUX
1161 config KERNEL_SECURITY_SELINUX_DEVELOP
1162 bool "NSA SELinux Development Support"
1163 depends on KERNEL_SECURITY_SELINUX
1168 default "lockdown,yama,loadpin,safesetid,integrity,selinux"
1169 depends on KERNEL_SECURITY_SELINUX
1171 config KERNEL_EXT4_FS_SECURITY
1172 bool "Ext4 Security Labels"
1174 config KERNEL_F2FS_FS_SECURITY
1175 bool "F2FS Security Labels"
1177 config KERNEL_UBIFS_FS_SECURITY
1178 bool "UBIFS Security Labels"
1180 config KERNEL_JFFS2_FS_SECURITY
1181 bool "JFFS2 Security Labels"