x86: generate EFI platform bootable images
[openwrt/staging/chunkeey.git] / config / Config-kernel.in
1 # Copyright (C) 2006-2014 OpenWrt.org
2 #
3 # This is free software, licensed under the GNU General Public License v2.
4 # See /LICENSE for more information.
5 #
6
7 config KERNEL_BUILD_USER
8 string "Custom Kernel Build User Name"
9 default "builder" if BUILDBOT
10 default ""
11 help
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.
15
16 config KERNEL_BUILD_DOMAIN
17 string "Custom Kernel Build Domain Name"
18 default "buildhost" if BUILDBOT
19 default ""
20 help
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.
24
25 config KERNEL_PRINTK
26 bool "Enable support for printk"
27 default y
28
29 config KERNEL_CRASHLOG
30 bool "Crash logging"
31 depends on !(arm || powerpc || sparc || TARGET_uml || i386 || x86_64)
32 default y
33
34 config KERNEL_SWAP
35 bool "Support for paging of anonymous memory (swap)"
36 default y if !SMALL_FLASH
37
38 config KERNEL_DEBUG_FS
39 bool "Compile the kernel with debug filesystem enabled"
40 default y
41 help
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.
46
47 # remove KERNEL_MIPS_FPU_EMULATOR after kernel 4.14 and 4.14 are gone
48 config KERNEL_MIPS_FPU_EMULATOR
49 bool "Compile the kernel with MIPS FPU Emulator"
50 default y if TARGET_pistachio
51 depends on (mips || mipsel || mips64 || mips64el)
52
53 config KERNEL_MIPS_FP_SUPPORT
54 bool
55 default y if KERNEL_MIPS_FPU_EMULATOR
56
57 config KERNEL_ARM_PMU
58 bool
59 default n
60 depends on (arm || aarch64)
61
62 config KERNEL_X86_VSYSCALL_EMULATION
63 bool "Enable vsyscall emulation"
64 default n
65 depends on x86_64
66 help
67 This enables emulation of the legacy vsyscall page. Disabling
68 it is roughly equivalent to booting with vsyscall=none, except
69 that it will also disable the helpful warning if a program
70 tries to use a vsyscall. With this option set to N, offending
71 programs will just segfault, citing addresses of the form
72 0xffffffffff600?00.
73
74 This option is required by many programs built before 2013, and
75 care should be used even with newer programs if set to N.
76
77 Disabling this option saves about 7K of kernel size and
78 possibly 4K of additional runtime pagetable memory.
79
80 config KERNEL_PERF_EVENTS
81 bool "Compile the kernel with performance events and counters"
82 default n
83 select KERNEL_ARM_PMU if (arm || aarch64)
84
85 config KERNEL_PROFILING
86 bool "Compile the kernel with profiling enabled"
87 default n
88 select KERNEL_PERF_EVENTS
89 help
90 Enable the extended profiling support mechanisms used by profilers such
91 as OProfile.
92
93 config KERNEL_UBSAN
94 bool "Compile the kernel with undefined behaviour sanity checker"
95 help
96 This option enables undefined behaviour sanity checker
97 Compile-time instrumentation is used to detect various undefined
98 behaviours in runtime. Various types of checks may be enabled
99 via boot parameter ubsan_handle
100 (see: Documentation/dev-tools/ubsan.rst).
101
102 config KERNEL_UBSAN_SANITIZE_ALL
103 bool "Enable instrumentation for the entire kernel"
104 depends on KERNEL_UBSAN
105 default y
106 help
107 This option activates instrumentation for the entire kernel.
108 If you don't enable this option, you have to explicitly specify
109 UBSAN_SANITIZE := y for the files/directories you want to check for UB.
110 Enabling this option will get kernel image size increased
111 significantly.
112
113 config KERNEL_UBSAN_ALIGNMENT
114 bool "Enable checking of pointers alignment"
115 depends on KERNEL_UBSAN
116 help
117 This option enables detection of unaligned memory accesses.
118 Enabling this option on architectures that support unaligned
119 accesses may produce a lot of false positives.
120
121 config KERNEL_UBSAN_NULL
122 bool "Enable checking of null pointers"
123 depends on KERNEL_UBSAN
124 help
125 This option enables detection of memory accesses via a
126 null pointer.
127
128 config KERNEL_KASAN
129 bool "Compile the kernel with KASan: runtime memory debugger"
130 select KERNEL_SLUB_DEBUG
131 depends on (x86_64 || aarch64)
132 help
133 Enables kernel address sanitizer - runtime memory debugger,
134 designed to find out-of-bounds accesses and use-after-free bugs.
135 This is strictly a debugging feature and it requires a gcc version
136 of 4.9.2 or later. Detection of out of bounds accesses to stack or
137 global variables requires gcc 5.0 or later.
138 This feature consumes about 1/8 of available memory and brings about
139 ~x3 performance slowdown.
140 For better error detection enable CONFIG_STACKTRACE.
141 Currently CONFIG_KASAN doesn't work with CONFIG_DEBUG_SLAB
142 (the resulting kernel does not boot).
143
144 config KERNEL_KASAN_EXTRA
145 bool "KAsan: extra checks"
146 depends on KERNEL_KASAN && KERNEL_DEBUG_KERNEL
147 help
148 This enables further checks in the kernel address sanitizer, for now
149 it only includes the address-use-after-scope check that can lead
150 to excessive kernel stack usage, frame size warnings and longer
151 compile time.
152 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81715 has more
153
154
155 choice
156 prompt "Instrumentation type"
157 depends on KERNEL_KASAN
158 default KERNEL_KASAN_OUTLINE
159
160 config KERNEL_KASAN_OUTLINE
161 bool "Outline instrumentation"
162 help
163 Before every memory access compiler insert function call
164 __asan_load*/__asan_store*. These functions performs check
165 of shadow memory. This is slower than inline instrumentation,
166 however it doesn't bloat size of kernel's .text section so
167 much as inline does.
168
169 config KERNEL_KASAN_INLINE
170 bool "Inline instrumentation"
171 help
172 Compiler directly inserts code checking shadow memory before
173 memory accesses. This is faster than outline (in some workloads
174 it gives about x2 boost over outline instrumentation), but
175 make kernel's .text size much bigger.
176 This requires a gcc version of 5.0 or later.
177
178 endchoice
179
180 config KERNEL_KCOV
181 bool "Compile the kernel with code coverage for fuzzing"
182 select KERNEL_DEBUG_FS
183 help
184 KCOV exposes kernel code coverage information in a form suitable
185 for coverage-guided fuzzing (randomized testing).
186
187 If RANDOMIZE_BASE is enabled, PC values will not be stable across
188 different machines and across reboots. If you need stable PC values,
189 disable RANDOMIZE_BASE.
190
191 For more details, see Documentation/kcov.txt.
192
193 config KERNEL_KCOV_ENABLE_COMPARISONS
194 bool "Enable comparison operands collection by KCOV"
195 depends on KERNEL_KCOV
196 help
197 KCOV also exposes operands of every comparison in the instrumented
198 code along with operand sizes and PCs of the comparison instructions.
199 These operands can be used by fuzzing engines to improve the quality
200 of fuzzing coverage.
201
202 config KERNEL_KCOV_INSTRUMENT_ALL
203 bool "Instrument all code by default"
204 depends on KERNEL_KCOV
205 default y if KERNEL_KCOV
206 help
207 If you are doing generic system call fuzzing (like e.g. syzkaller),
208 then you will want to instrument the whole kernel and you should
209 say y here. If you are doing more targeted fuzzing (like e.g.
210 filesystem fuzzing with AFL) then you will want to enable coverage
211 for more specific subsets of files, and should say n here.
212
213 config KERNEL_TASKSTATS
214 bool "Compile the kernel with task resource/io statistics and accounting"
215 default n
216 help
217 Enable the collection and publishing of task/io statistics and
218 accounting. Enable this option to enable i/o monitoring in system
219 monitors.
220
221 if KERNEL_TASKSTATS
222
223 config KERNEL_TASK_DELAY_ACCT
224 def_bool y
225
226 config KERNEL_TASK_IO_ACCOUNTING
227 def_bool y
228
229 config KERNEL_TASK_XACCT
230 def_bool y
231
232 endif
233
234 config KERNEL_KALLSYMS
235 bool "Compile the kernel with symbol table information"
236 default y if !SMALL_FLASH
237 help
238 This will give you more information in stack traces from kernel oopses.
239
240 config KERNEL_FTRACE
241 bool "Compile the kernel with tracing support"
242 depends on !TARGET_uml
243 default n
244
245 config KERNEL_FTRACE_SYSCALLS
246 bool "Trace system calls"
247 depends on KERNEL_FTRACE
248 default n
249
250 config KERNEL_ENABLE_DEFAULT_TRACERS
251 bool "Trace process context switches and events"
252 depends on KERNEL_FTRACE
253 default n
254
255 config KERNEL_FUNCTION_TRACER
256 bool "Function tracer"
257 depends on KERNEL_FTRACE
258 default n
259
260 config KERNEL_FUNCTION_GRAPH_TRACER
261 bool "Function graph tracer"
262 depends on KERNEL_FUNCTION_TRACER
263 default n
264
265 config KERNEL_DYNAMIC_FTRACE
266 bool "Enable/disable function tracing dynamically"
267 depends on KERNEL_FUNCTION_TRACER
268 default n
269
270 config KERNEL_FUNCTION_PROFILER
271 bool "Function profiler"
272 depends on KERNEL_FUNCTION_TRACER
273 default n
274
275 config KERNEL_DEBUG_KERNEL
276 bool
277 default n
278
279 config KERNEL_DEBUG_INFO
280 bool "Compile the kernel with debug information"
281 default y if !SMALL_FLASH
282 select KERNEL_DEBUG_KERNEL
283 help
284 This will compile your kernel and modules with debug information.
285
286 config KERNEL_DEBUG_LL_UART_NONE
287 bool
288 default n
289 depends on arm
290
291 config KERNEL_DEBUG_LL
292 bool
293 default n
294 depends on arm
295 select KERNEL_DEBUG_LL_UART_NONE
296 help
297 ARM low level debugging.
298
299 config KERNEL_DYNAMIC_DEBUG
300 bool "Compile the kernel with dynamic printk"
301 select KERNEL_DEBUG_FS
302 default n
303 help
304 Compiles debug level messages into the kernel, which would not
305 otherwise be available at runtime. These messages can then be
306 enabled/disabled based on various levels of scope - per source file,
307 function, module, format string, and line number. This mechanism
308 implicitly compiles in all pr_debug() and dev_dbg() calls, which
309 enlarges the kernel text size by about 2%.
310
311 config KERNEL_EARLY_PRINTK
312 bool "Compile the kernel with early printk"
313 default y if TARGET_bcm53xx
314 default n
315 depends on arm
316 select KERNEL_DEBUG_KERNEL
317 select KERNEL_DEBUG_LL if arm
318 help
319 Compile the kernel with early printk support. This is only useful for
320 debugging purposes to send messages over the serial console in early boot.
321 Enable this to debug early boot problems.
322
323 config KERNEL_KPROBES
324 bool "Compile the kernel with kprobes support"
325 default n
326 select KERNEL_FTRACE
327 select KERNEL_PERF_EVENTS
328 help
329 Compiles the kernel with KPROBES support, which allows you to trap
330 at almost any kernel address and execute a callback function.
331 register_kprobe() establishes a probepoint and specifies the
332 callback. Kprobes is useful for kernel debugging, non-intrusive
333 instrumentation and testing.
334 If in doubt, say "N".
335
336 config KERNEL_KPROBE_EVENT
337 bool
338 default y if KERNEL_KPROBES
339
340 config KERNEL_KPROBE_EVENTS
341 bool
342 default y if KERNEL_KPROBES
343
344 config KERNEL_AIO
345 bool "Compile the kernel with asynchronous IO support"
346 default y if !SMALL_FLASH
347
348 config KERNEL_FHANDLE
349 bool "Compile the kernel with support for fhandle syscalls"
350 default y if !SMALL_FLASH
351
352 config KERNEL_FANOTIFY
353 bool "Compile the kernel with modern file notification support"
354 default y if !SMALL_FLASH
355
356 config KERNEL_BLK_DEV_BSG
357 bool "Compile the kernel with SCSI generic v4 support for any block device"
358 default n
359
360 config KERNEL_MAGIC_SYSRQ
361 bool "Compile the kernel with SysRq support"
362 default y
363
364 config KERNEL_DEBUG_PINCTRL
365 bool "Compile the kernel with pinctrl debugging"
366 select KERNEL_DEBUG_KERNEL
367
368 config KERNEL_DEBUG_GPIO
369 bool "Compile the kernel with gpio debugging"
370 select KERNEL_DEBUG_KERNEL
371
372 config KERNEL_COREDUMP
373 bool
374
375 config KERNEL_ELF_CORE
376 bool "Enable process core dump support"
377 select KERNEL_COREDUMP
378 default y if !SMALL_FLASH
379
380 config KERNEL_PROVE_LOCKING
381 bool "Enable kernel lock checking"
382 select KERNEL_DEBUG_KERNEL
383 default n
384
385 config KERNEL_LOCKUP_DETECTOR
386 bool "Compile the kernel with detect Hard and Soft Lockups"
387 depends on KERNEL_DEBUG_KERNEL
388 help
389 Say Y here to enable the kernel to act as a watchdog to detect
390 hard and soft lockups.
391
392 Softlockups are bugs that cause the kernel to loop in kernel
393 mode for more than 20 seconds, without giving other tasks a
394 chance to run. The current stack trace is displayed upon
395 detection and the system will stay locked up.
396
397 Hardlockups are bugs that cause the CPU to loop in kernel mode
398 for more than 10 seconds, without letting other interrupts have a
399 chance to run. The current stack trace is displayed upon detection
400 and the system will stay locked up.
401
402 The overhead should be minimal. A periodic hrtimer runs to
403 generate interrupts and kick the watchdog task every 4 seconds.
404 An NMI is generated every 10 seconds or so to check for hardlockups.
405
406 The frequency of hrtimer and NMI events and the soft and hard lockup
407 thresholds can be controlled through the sysctl watchdog_thresh.
408
409 config KERNEL_DETECT_HUNG_TASK
410 bool "Compile the kernel with detect Hung Tasks"
411 depends on KERNEL_DEBUG_KERNEL
412 default KERNEL_LOCKUP_DETECTOR
413 help
414 Say Y here to enable the kernel to detect "hung tasks",
415 which are bugs that cause the task to be stuck in
416 uninterruptible "D" state indefinitely.
417
418 When a hung task is detected, the kernel will print the
419 current stack trace (which you should report), but the
420 task will stay in uninterruptible state. If lockdep is
421 enabled then all held locks will also be reported. This
422 feature has negligible overhead.
423
424 config KERNEL_WQ_WATCHDOG
425 bool "Compile the kernel with detect Workqueue Stalls"
426 depends on KERNEL_DEBUG_KERNEL
427 help
428 Say Y here to enable stall detection on workqueues. If a
429 worker pool doesn't make forward progress on a pending work
430 item for over a given amount of time, 30s by default, a
431 warning message is printed along with dump of workqueue
432 state. This can be configured through kernel parameter
433 "workqueue.watchdog_thresh" and its sysfs counterpart.
434
435 config KERNEL_DEBUG_ATOMIC_SLEEP
436 bool "Compile the kernel with sleep inside atomic section checking"
437 depends on KERNEL_DEBUG_KERNEL
438 help
439 If you say Y here, various routines which may sleep will become very
440 noisy if they are called inside atomic sections: when a spinlock is
441 held, inside an rcu read side critical section, inside preempt disabled
442 sections, inside an interrupt, etc...
443
444 config KERNEL_DEBUG_VM
445 bool "Compile the kernel with debug VM"
446 depends on KERNEL_DEBUG_KERNEL
447 help
448 Enable this to turn on extended checks in the virtual-memory system
449 that may impact performance.
450
451 If unsure, say N.
452
453 config KERNEL_PRINTK_TIME
454 bool "Enable printk timestamps"
455 default y
456
457 config KERNEL_SLUB_DEBUG
458 bool
459
460 config KERNEL_SLUB_DEBUG_ON
461 bool
462
463 config KERNEL_SLABINFO
464 select KERNEL_SLUB_DEBUG
465 select KERNEL_SLUB_DEBUG_ON
466 bool "Enable /proc slab debug info"
467
468 config KERNEL_PROC_PAGE_MONITOR
469 bool "Enable /proc page monitoring"
470
471 config KERNEL_RELAY
472 bool
473
474 config KERNEL_KEXEC
475 bool "Enable kexec support"
476
477 config KERNEL_PROC_VMCORE
478 bool
479
480 config KERNEL_PROC_KCORE
481 bool
482
483 config KERNEL_CRASH_DUMP
484 depends on i386 || x86_64 || arm || armeb
485 select KERNEL_KEXEC
486 select KERNEL_PROC_VMCORE
487 select KERNEL_PROC_KCORE
488 bool "Enable support for kexec crashdump"
489 default y
490
491 config USE_RFKILL
492 bool "Enable rfkill support"
493 default RFKILL_SUPPORT
494
495 config USE_SPARSE
496 bool "Enable sparse check during kernel build"
497 default n
498
499 config KERNEL_DEVTMPFS
500 bool "Compile the kernel with device tmpfs enabled"
501 default n
502 help
503 devtmpfs is a simple, kernel-managed /dev filesystem. The kernel creates
504 devices nodes for all registered devices to simplify boot, but leaves more
505 complex tasks to userspace (e.g. udev).
506
507 if KERNEL_DEVTMPFS
508
509 config KERNEL_DEVTMPFS_MOUNT
510 bool "Automatically mount devtmpfs after root filesystem is mounted"
511 default n
512
513 endif
514
515 config KERNEL_KEYS
516 bool "Enable kernel access key retention support"
517 default n
518
519 config KERNEL_PERSISTENT_KEYRINGS
520 bool "Enable kernel persistent keyrings"
521 depends on KERNEL_KEYS
522 default n
523
524 config KERNEL_BIG_KEYS
525 bool "Enable large payload keys on kernel keyrings"
526 depends on KERNEL_KEYS
527 default n
528
529 config KERNEL_ENCRYPTED_KEYS
530 tristate "Enable keys with encrypted payloads on kernel keyrings"
531 depends on KERNEL_KEYS
532 default n
533
534 #
535 # CGROUP support symbols
536 #
537
538 config KERNEL_CGROUPS
539 bool "Enable kernel cgroups"
540 default y if !SMALL_FLASH
541
542 if KERNEL_CGROUPS
543
544 config KERNEL_CGROUP_DEBUG
545 bool "Example debug cgroup subsystem"
546 default n
547 help
548 This option enables a simple cgroup subsystem that
549 exports useful debugging information about the cgroups
550 framework.
551
552 config KERNEL_FREEZER
553 bool
554 default y if KERNEL_CGROUP_FREEZER
555
556 config KERNEL_CGROUP_FREEZER
557 bool "Freezer cgroup subsystem"
558 default y
559 help
560 Provides a way to freeze and unfreeze all tasks in a
561 cgroup.
562
563 config KERNEL_CGROUP_DEVICE
564 bool "Device controller for cgroups"
565 default y
566 help
567 Provides a cgroup implementing whitelists for devices which
568 a process in the cgroup can mknod or open.
569
570 config KERNEL_CGROUP_PIDS
571 bool "PIDs cgroup subsystem"
572 default y
573 help
574 Provides enforcement of process number limits in the scope of a
575 cgroup.
576
577 config KERNEL_CPUSETS
578 bool "Cpuset support"
579 default y if !SMALL_FLASH
580 help
581 This option will let you create and manage CPUSETs which
582 allow dynamically partitioning a system into sets of CPUs and
583 Memory Nodes and assigning tasks to run only within those sets.
584 This is primarily useful on large SMP or NUMA systems.
585
586 config KERNEL_PROC_PID_CPUSET
587 bool "Include legacy /proc/<pid>/cpuset file"
588 default n
589 depends on KERNEL_CPUSETS
590
591 config KERNEL_CGROUP_CPUACCT
592 bool "Simple CPU accounting cgroup subsystem"
593 default y if !SMALL_FLASH
594 help
595 Provides a simple Resource Controller for monitoring the
596 total CPU consumed by the tasks in a cgroup.
597
598 config KERNEL_RESOURCE_COUNTERS
599 bool "Resource counters"
600 default y if !SMALL_FLASH
601 help
602 This option enables controller independent resource accounting
603 infrastructure that works with cgroups.
604
605 config KERNEL_MM_OWNER
606 bool
607 default y if KERNEL_MEMCG
608
609 config KERNEL_MEMCG
610 bool "Memory Resource Controller for Control Groups"
611 default y if !SMALL_FLASH
612 depends on KERNEL_RESOURCE_COUNTERS || !LINUX_3_18
613 help
614 Provides a memory resource controller that manages both anonymous
615 memory and page cache. (See Documentation/cgroups/memory.txt)
616
617 Note that setting this option increases fixed memory overhead
618 associated with each page of memory in the system. By this,
619 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
620 usage tracking struct at boot. Total amount of this is printed out
621 at boot.
622
623 Only enable when you're ok with these tradeoffs and really
624 sure you need the memory resource controller. Even when you enable
625 this, you can set "cgroup_disable=memory" at your boot option to
626 disable memory resource controller and you can avoid overheads
627 (but lose benefits of memory resource controller).
628
629 This config option also selects MM_OWNER config option, which
630 could in turn add some fork/exit overhead.
631
632 config KERNEL_MEMCG_SWAP
633 bool "Memory Resource Controller Swap Extension"
634 default n
635 depends on KERNEL_MEMCG
636 help
637 Add swap management feature to memory resource controller. When you
638 enable this, you can limit mem+swap usage per cgroup. In other words,
639 when you disable this, memory resource controller has no cares to
640 usage of swap...a process can exhaust all of the swap. This extension
641 is useful when you want to avoid exhaustion swap but this itself
642 adds more overheads and consumes memory for remembering information.
643 Especially if you use 32bit system or small memory system, please
644 be careful about enabling this. When memory resource controller
645 is disabled by boot option, this will be automatically disabled and
646 there will be no overhead from this. Even when you set this config=y,
647 if boot option "swapaccount=0" is set, swap will not be accounted.
648 Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
649 size is 4096bytes, 512k per 1Gbytes of swap.
650
651 config KERNEL_MEMCG_SWAP_ENABLED
652 bool "Memory Resource Controller Swap Extension enabled by default"
653 default n
654 depends on KERNEL_MEMCG_SWAP
655 help
656 Memory Resource Controller Swap Extension comes with its price in
657 a bigger memory consumption. General purpose distribution kernels
658 which want to enable the feature but keep it disabled by default
659 and let the user enable it by swapaccount boot command line
660 parameter should have this option unselected.
661
662 Those who want to have the feature enabled by default should
663 select this option (if, for some reason, they need to disable it,
664 then swapaccount=0 does the trick).
665
666
667 config KERNEL_MEMCG_KMEM
668 bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
669 default y if !SMALL_FLASH
670 depends on KERNEL_MEMCG
671 help
672 The Kernel Memory extension for Memory Resource Controller can limit
673 the amount of memory used by kernel objects in the system. Those are
674 fundamentally different from the entities handled by the standard
675 Memory Controller, which are page-based, and can be swapped. Users of
676 the kmem extension can use it to guarantee that no group of processes
677 will ever exhaust kernel resources alone.
678
679 config KERNEL_CGROUP_PERF
680 bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
681 select KERNEL_PERF_EVENTS
682 default n
683 help
684 This option extends the per-cpu mode to restrict monitoring to
685 threads which belong to the cgroup specified and run on the
686 designated cpu.
687
688 menuconfig KERNEL_CGROUP_SCHED
689 bool "Group CPU scheduler"
690 default y if !SMALL_FLASH
691 help
692 This feature lets CPU scheduler recognize task groups and control CPU
693 bandwidth allocation to such task groups. It uses cgroups to group
694 tasks.
695
696 if KERNEL_CGROUP_SCHED
697
698 config KERNEL_FAIR_GROUP_SCHED
699 bool "Group scheduling for SCHED_OTHER"
700 default y if !SMALL_FLASH
701
702 config KERNEL_CFS_BANDWIDTH
703 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
704 default n
705 depends on KERNEL_FAIR_GROUP_SCHED
706 help
707 This option allows users to define CPU bandwidth rates (limits) for
708 tasks running within the fair group scheduler. Groups with no limit
709 set are considered to be unconstrained and will run with no
710 restriction.
711 See tip/Documentation/scheduler/sched-bwc.txt for more information.
712
713 config KERNEL_RT_GROUP_SCHED
714 bool "Group scheduling for SCHED_RR/FIFO"
715 default y if !SMALL_FLASH
716 help
717 This feature lets you explicitly allocate real CPU bandwidth
718 to task groups. If enabled, it will also make it impossible to
719 schedule realtime tasks for non-root users until you allocate
720 realtime bandwidth for them.
721
722 endif
723
724 config KERNEL_BLK_CGROUP
725 bool "Block IO controller"
726 default y
727 help
728 Generic block IO controller cgroup interface. This is the common
729 cgroup interface which should be used by various IO controlling
730 policies.
731
732 Currently, CFQ IO scheduler uses it to recognize task groups and
733 control disk bandwidth allocation (proportional time slice allocation)
734 to such task groups. It is also used by bio throttling logic in
735 block layer to implement upper limit in IO rates on a device.
736
737 This option only enables generic Block IO controller infrastructure.
738 One needs to also enable actual IO controlling logic/policy. For
739 enabling proportional weight division of disk bandwidth in CFQ, set
740 CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
741 CONFIG_BLK_DEV_THROTTLING=y.
742
743 if KERNEL_BLK_CGROUP
744
745 config KERNEL_CFQ_GROUP_IOSCHED
746 bool "Proportional weight of disk bandwidth in CFQ"
747
748 config KERNEL_BLK_DEV_THROTTLING
749 bool "Enable throttling policy"
750 default y if TARGET_bcm27xx
751
752 config KERNEL_BLK_DEV_THROTTLING_LOW
753 bool "Block throttling .low limit interface support (EXPERIMENTAL)"
754 depends on KERNEL_BLK_DEV_THROTTLING
755 endif
756
757 config KERNEL_DEBUG_BLK_CGROUP
758 bool "Enable Block IO controller debugging"
759 default n
760 depends on KERNEL_BLK_CGROUP
761 help
762 Enable some debugging help. Currently it exports additional stat
763 files in a cgroup which can be useful for debugging.
764
765 config KERNEL_NET_CLS_CGROUP
766 bool "Control Group Classifier"
767 default y
768
769 config KERNEL_NETPRIO_CGROUP
770 bool "Network priority cgroup"
771 default y
772
773 endif
774
775 #
776 # Namespace support symbols
777 #
778
779 config KERNEL_NAMESPACES
780 bool "Enable kernel namespaces"
781 default y if !SMALL_FLASH
782
783 if KERNEL_NAMESPACES
784
785 config KERNEL_UTS_NS
786 bool "UTS namespace"
787 default y
788 help
789 In this namespace, tasks see different info provided
790 with the uname() system call.
791
792 config KERNEL_IPC_NS
793 bool "IPC namespace"
794 default y
795 help
796 In this namespace, tasks work with IPC ids which correspond to
797 different IPC objects in different namespaces.
798
799 config KERNEL_USER_NS
800 bool "User namespace (EXPERIMENTAL)"
801 default y
802 help
803 This allows containers, i.e. vservers, to use user namespaces
804 to provide different user info for different servers.
805
806 config KERNEL_PID_NS
807 bool "PID Namespaces"
808 default y
809 help
810 Support process id namespaces. This allows having multiple
811 processes with the same pid as long as they are in different
812 pid namespaces. This is a building block of containers.
813
814 config KERNEL_NET_NS
815 bool "Network namespace"
816 default y
817 help
818 Allow user space to create what appear to be multiple instances
819 of the network stack.
820
821 endif
822
823 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
824 bool "Support multiple instances of devpts"
825 default y if !SMALL_FLASH
826 help
827 Enable support for multiple instances of devpts filesystem.
828 If you want to have isolated PTY namespaces (eg: in containers),
829 say Y here. Otherwise, say N. If enabled, each mount of devpts
830 filesystem with the '-o newinstance' option will create an
831 independent PTY namespace.
832
833 config KERNEL_POSIX_MQUEUE
834 bool "POSIX Message Queues"
835 default y if !SMALL_FLASH
836 help
837 POSIX variant of message queues is a part of IPC. In POSIX message
838 queues every message has a priority which decides about succession
839 of receiving it by a process. If you want to compile and run
840 programs written e.g. for Solaris with use of its POSIX message
841 queues (functions mq_*) say Y here.
842
843 POSIX message queues are visible as a filesystem called 'mqueue'
844 and can be mounted somewhere if you want to do filesystem
845 operations on message queues.
846
847
848 config KERNEL_SECCOMP_FILTER
849 bool
850 default y if !SMALL_FLASH
851
852 config KERNEL_SECCOMP
853 bool "Enable seccomp support"
854 depends on !(TARGET_uml)
855 select KERNEL_SECCOMP_FILTER
856 default y if !SMALL_FLASH
857 help
858 Build kernel with support for seccomp.
859
860 #
861 # IPv4 configuration
862 #
863
864 config KERNEL_IP_MROUTE
865 bool "Enable IPv4 multicast routing"
866 default y
867 help
868 Multicast routing requires a multicast routing daemon in
869 addition to kernel support.
870
871 #
872 # IPv6 configuration
873 #
874
875 config KERNEL_IPV6
876 def_bool IPV6
877
878 if KERNEL_IPV6
879
880 config KERNEL_IPV6_MULTIPLE_TABLES
881 def_bool y
882
883 config KERNEL_IPV6_SUBTREES
884 def_bool y
885
886 config KERNEL_IPV6_MROUTE
887 bool "Enable IPv6 multicast routing"
888 default y
889 help
890 Multicast routing requires a multicast routing daemon in
891 addition to kernel support.
892
893 config KERNEL_IPV6_PIMSM_V2
894 def_bool n
895
896 endif
897
898 #
899 # NFS related symbols
900 #
901 config KERNEL_IP_PNP
902 bool "Compile the kernel with rootfs on NFS"
903 help
904 If you want to make your kernel boot off a NFS server as root
905 filesystem, select Y here.
906
907 if KERNEL_IP_PNP
908
909 config KERNEL_IP_PNP_DHCP
910 def_bool y
911
912 config KERNEL_IP_PNP_BOOTP
913 def_bool n
914
915 config KERNEL_IP_PNP_RARP
916 def_bool n
917
918 config KERNEL_NFS_FS
919 def_bool y
920
921 config KERNEL_NFS_V2
922 def_bool y
923
924 config KERNEL_NFS_V3
925 def_bool y
926
927 config KERNEL_ROOT_NFS
928 def_bool y
929
930 endif
931
932 menu "Filesystem ACL and attr support options"
933 config USE_FS_ACL_ATTR
934 bool "Use filesystem ACL and attr support by default"
935 default n
936 help
937 Make using ACLs (e.g. POSIX ACL, NFSv4 ACL) the default
938 for kernel and packages, except tmpfs, flash filesystems,
939 and old NFS. Also enable userspace extended attribute support
940 by default. (OpenWrt already has an expection it will be
941 present in the kernel).
942
943 config KERNEL_FS_POSIX_ACL
944 bool "Enable POSIX ACL support"
945 default y if USE_FS_ACL_ATTR
946
947 config KERNEL_BTRFS_FS_POSIX_ACL
948 bool "Enable POSIX ACL for BtrFS Filesystems"
949 select KERNEL_FS_POSIX_ACL
950 default y if USE_FS_ACL_ATTR
951
952 config KERNEL_EXT4_FS_POSIX_ACL
953 bool "Enable POSIX ACL for Ext4 Filesystems"
954 select KERNEL_FS_POSIX_ACL
955 default y if USE_FS_ACL_ATTR
956
957 config KERNEL_F2FS_FS_POSIX_ACL
958 bool "Enable POSIX ACL for F2FS Filesystems"
959 select KERNEL_FS_POSIX_ACL
960 default n
961
962 config KERNEL_JFFS2_FS_POSIX_ACL
963 bool "Enable POSIX ACL for JFFS2 Filesystems"
964 select KERNEL_FS_POSIX_ACL
965 default n
966
967 config KERNEL_TMPFS_POSIX_ACL
968 bool "Enable POSIX ACL for TMPFS Filesystems"
969 select KERNEL_FS_POSIX_ACL
970 default n
971
972 config KERNEL_CIFS_ACL
973 bool "Enable CIFS ACLs"
974 select KERNEL_FS_POSIX_ACL
975 default y if USE_FS_ACL_ATTR
976
977 config KERNEL_HFS_FS_POSIX_ACL
978 bool "Enable POSIX ACL for HFS Filesystems"
979 select KERNEL_FS_POSIX_ACL
980 default y if USE_FS_ACL_ATTR
981
982 config KERNEL_HFSPLUS_FS_POSIX_ACL
983 bool "Enable POSIX ACL for HFS+ Filesystems"
984 select KERNEL_FS_POSIX_ACL
985 default y if USE_FS_ACL_ATTR
986
987 config KERNEL_NFS_ACL_SUPPORT
988 bool "Enable ACLs for NFS"
989 default y if USE_FS_ACL_ATTR
990
991 config KERNEL_NFS_V3_ACL_SUPPORT
992 bool "Enable ACLs for NFSv3"
993 default n
994
995 config KERNEL_NFSD_V2_ACL_SUPPORT
996 bool "Enable ACLs for NFSDv2"
997 default n
998
999 config KERNEL_NFSD_V3_ACL_SUPPORT
1000 bool "Enable ACLs for NFSDv3"
1001 default n
1002
1003 config KERNEL_REISER_FS_POSIX_ACL
1004 bool "Enable POSIX ACLs for ReiserFS"
1005 select KERNEL_FS_POSIX_ACL
1006 default y if USE_FS_ACL_ATTR
1007
1008 config KERNEL_XFS_POSIX_ACL
1009 bool "Enable POSIX ACLs for XFS"
1010 select KERNEL_FS_POSIX_ACL
1011 default y if USE_FS_ACL_ATTR
1012
1013 config KERNEL_JFS_POSIX_ACL
1014 bool "Enable POSIX ACLs for JFS"
1015 select KERNEL_FS_POSIX_ACL
1016 default y if USE_FS_ACL_ATTR
1017
1018 endmenu
1019
1020 config KERNEL_DEVMEM
1021 bool "/dev/mem virtual device support"
1022 help
1023 Say Y here if you want to support the /dev/mem device.
1024 The /dev/mem device is used to access areas of physical
1025 memory.
1026
1027 config KERNEL_DEVKMEM
1028 bool "/dev/kmem virtual device support"
1029 help
1030 Say Y here if you want to support the /dev/kmem device. The
1031 /dev/kmem device is rarely used, but can be used for certain
1032 kind of kernel debugging operations.
1033
1034 config KERNEL_SQUASHFS_FRAGMENT_CACHE_SIZE
1035 int "Number of squashfs fragments cached"
1036 default 2 if (SMALL_FLASH && !LOW_MEMORY_FOOTPRINT)
1037 default 3
1038
1039 #
1040 # compile optimiziation setting
1041 #
1042 choice
1043 prompt "Compiler optimization level"
1044 default KERNEL_CC_OPTIMIZE_FOR_SIZE if SMALL_FLASH
1045
1046 config KERNEL_CC_OPTIMIZE_FOR_PERFORMANCE
1047 bool "Optimize for performance"
1048 help
1049 This is the default optimization level for the kernel, building
1050 with the "-O2" compiler flag for best performance and most
1051 helpful compile-time warnings.
1052
1053 config KERNEL_CC_OPTIMIZE_FOR_SIZE
1054 bool "Optimize for size"
1055 help
1056 Enabling this option will pass "-Os" instead of "-O2" to
1057 your compiler resulting in a smaller kernel.
1058
1059 endchoice