config: add function tracers
[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_PRINTK
8 bool "Enable support for printk"
9 default y
10
11 config KERNEL_CRASHLOG
12 bool "Crash logging"
13 depends on !(arm || powerpc || sparc || TARGET_uml)
14 default y
15
16 config KERNEL_SWAP
17 bool "Support for paging of anonymous memory (swap)"
18 default y
19
20 config KERNEL_DEBUG_FS
21 bool "Compile the kernel with debug filesystem enabled"
22 default y
23 help
24 debugfs is a virtual file system that kernel developers use to put
25 debugging files into. Enable this option to be able to read and
26 write to these files. Many common debugging facilities, such as
27 ftrace, require the existence of debugfs.
28
29 config KERNEL_PERF_EVENTS
30 bool
31 default n
32
33 config KERNEL_PROFILING
34 bool "Compile the kernel with profiling enabled"
35 default n
36 select KERNEL_PERF_EVENTS
37 help
38 Enable the extended profiling support mechanisms used by profilers such
39 as OProfile.
40
41 config KERNEL_KALLSYMS
42 bool "Compile the kernel with symbol table information"
43 default y
44 help
45 This will give you more information in stack traces from kernel oopses.
46
47 config KERNEL_FTRACE
48 bool "Compile the kernel with tracing support"
49 depends on !TARGET_uml
50 default n
51
52 config KERNEL_FTRACE_SYSCALLS
53 bool "Trace system calls"
54 depends on KERNEL_FTRACE
55 default n
56
57 config KERNEL_ENABLE_DEFAULT_TRACERS
58 bool "Trace process context switches and events"
59 depends on KERNEL_FTRACE
60 default n
61
62 config KERNEL_FUNCTION_TRACER
63 bool "Function tracer"
64 depends on KERNEL_FTRACE
65 default n
66
67 config KERNEL_FUNCTION_GRAPH_TRACER
68 bool "Function graph tracer"
69 depends on KERNEL_FUNCTION_TRACER
70 default n
71
72 config KERNEL_DYNAMIC_FTRACE
73 bool "Enable/disable function tracing dynamically"
74 depends on KERNEL_FUNCTION_TRACER
75 default n
76
77 config KERNEL_FUNCTION_PROFILER
78 bool "Function profiler"
79 depends on KERNEL_FUNCTION_TRACER
80 default n
81
82 config KERNEL_DEBUG_KERNEL
83 bool
84 default n
85
86 config KERNEL_DEBUG_INFO
87 bool "Compile the kernel with debug information"
88 default y
89 select KERNEL_DEBUG_KERNEL
90 help
91 This will compile your kernel and modules with debug information.
92
93 config KERNEL_DEBUG_LL_UART_NONE
94 bool
95 default n
96 depends on arm
97
98 config KERNEL_DEBUG_LL
99 bool
100 default n
101 depends on arm
102 select KERNEL_DEBUG_LL_UART_NONE
103 help
104 ARM low level debugging.
105
106 config KERNEL_DYNAMIC_DEBUG
107 bool "Compile the kernel with dynamic printk"
108 select KERNEL_DEBUG_FS
109 default n
110 help
111 Compiles debug level messages into the kernel, which would not
112 otherwise be available at runtime. These messages can then be
113 enabled/disabled based on various levels of scope - per source file,
114 function, module, format string, and line number. This mechanism
115 implicitly compiles in all pr_debug() and dev_dbg() calls, which
116 enlarges the kernel text size by about 2%.
117
118 config KERNEL_EARLY_PRINTK
119 bool "Compile the kernel with early printk"
120 default y if TARGET_bcm53xx
121 default n
122 depends on arm
123 select KERNEL_DEBUG_KERNEL
124 select KERNEL_DEBUG_LL if arm
125 help
126 Compile the kernel with early printk support. This is only useful for
127 debugging purposes to send messages over the serial console in early boot.
128 Enable this to debug early boot problems.
129
130 config KERNEL_AIO
131 bool "Compile the kernel with asynchronous IO support"
132 default n
133
134 config KERNEL_DIRECT_IO
135 bool "Compile the kernel with direct IO support"
136 default n
137
138 config KERNEL_MAGIC_SYSRQ
139 bool "Compile the kernel with SysRq support"
140 default y
141
142 config KERNEL_COREDUMP
143 bool
144
145 config KERNEL_ELF_CORE
146 bool "Enable process core dump support"
147 select KERNEL_COREDUMP
148 default y
149
150 config KERNEL_PROVE_LOCKING
151 bool "Enable kernel lock checking"
152 select KERNEL_DEBUG_KERNEL
153 default n
154
155 config KERNEL_PRINTK_TIME
156 bool "Enable printk timestamps"
157 default y
158
159 config KERNEL_SLUB_DEBUG
160 bool
161
162 config KERNEL_SLUB_DEBUG_ON
163 bool
164
165 config KERNEL_SLABINFO
166 select KERNEL_SLUB_DEBUG
167 select KERNEL_SLUB_DEBUG_ON
168 bool "Enable /proc slab debug info"
169
170 config KERNEL_PROC_PAGE_MONITOR
171 bool "Enable /proc page monitoring"
172
173 config KERNEL_RELAY
174 bool
175
176 config KERNEL_KEXEC
177 bool "Enable kexec support"
178
179 config USE_RFKILL
180 bool "Enable rfkill support"
181 default RFKILL_SUPPORT
182
183 config USE_SPARSE
184 bool "Enable sparse check during kernel build"
185 default n
186
187 #
188 # CGROUP support symbols
189 #
190
191 config KERNEL_CGROUPS
192 bool "Enable kernel cgroups"
193 default n
194
195 if KERNEL_CGROUPS
196
197 config KERNEL_CGROUP_DEBUG
198 bool "Example debug cgroup subsystem"
199 default n
200 help
201 This option enables a simple cgroup subsystem that
202 exports useful debugging information about the cgroups
203 framework.
204
205 config KERNEL_FREEZER
206 bool
207 default y if KERNEL_CGROUP_FREEZER
208
209 config KERNEL_CGROUP_FREEZER
210 bool "Freezer cgroup subsystem"
211 default y
212 help
213 Provides a way to freeze and unfreeze all tasks in a
214 cgroup.
215
216 config KERNEL_CGROUP_DEVICE
217 bool "Device controller for cgroups"
218 default y
219 help
220 Provides a cgroup implementing whitelists for devices which
221 a process in the cgroup can mknod or open.
222
223 config KERNEL_CPUSETS
224 bool "Cpuset support"
225 default n
226 help
227 This option will let you create and manage CPUSETs which
228 allow dynamically partitioning a system into sets of CPUs and
229 Memory Nodes and assigning tasks to run only within those sets.
230 This is primarily useful on large SMP or NUMA systems.
231
232 config KERNEL_PROC_PID_CPUSET
233 bool "Include legacy /proc/<pid>/cpuset file"
234 default n
235 depends on KERNEL_CPUSETS
236
237 config KERNEL_CGROUP_CPUACCT
238 bool "Simple CPU accounting cgroup subsystem"
239 default n
240 help
241 Provides a simple Resource Controller for monitoring the
242 total CPU consumed by the tasks in a cgroup.
243
244 config KERNEL_RESOURCE_COUNTERS
245 bool "Resource counters"
246 default n
247 help
248 This option enables controller independent resource accounting
249 infrastructure that works with cgroups.
250
251 config KERNEL_MM_OWNER
252 bool
253 default y if KERNEL_MEMCG
254
255 config KERNEL_MEMCG
256 bool "Memory Resource Controller for Control Groups"
257 default n
258 depends on KERNEL_RESOURCE_COUNTERS
259 help
260 Provides a memory resource controller that manages both anonymous
261 memory and page cache. (See Documentation/cgroups/memory.txt)
262
263 Note that setting this option increases fixed memory overhead
264 associated with each page of memory in the system. By this,
265 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
266 usage tracking struct at boot. Total amount of this is printed out
267 at boot.
268
269 Only enable when you're ok with these tradeoffs and really
270 sure you need the memory resource controller. Even when you enable
271 this, you can set "cgroup_disable=memory" at your boot option to
272 disable memory resource controller and you can avoid overheads
273 (but lose benefits of memory resource controller).
274
275 This config option also selects MM_OWNER config option, which
276 could in turn add some fork/exit overhead.
277
278 config KERNEL_MEMCG_SWAP
279 bool "Memory Resource Controller Swap Extension"
280 default n
281 depends on KERNEL_MEMCG
282 help
283 Add swap management feature to memory resource controller. When you
284 enable this, you can limit mem+swap usage per cgroup. In other words,
285 when you disable this, memory resource controller has no cares to
286 usage of swap...a process can exhaust all of the swap. This extension
287 is useful when you want to avoid exhaustion swap but this itself
288 adds more overheads and consumes memory for remembering information.
289 Especially if you use 32bit system or small memory system, please
290 be careful about enabling this. When memory resource controller
291 is disabled by boot option, this will be automatically disabled and
292 there will be no overhead from this. Even when you set this config=y,
293 if boot option "swapaccount=0" is set, swap will not be accounted.
294 Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
295 size is 4096bytes, 512k per 1Gbytes of swap.
296
297 config KERNEL_MEMCG_SWAP_ENABLED
298 bool "Memory Resource Controller Swap Extension enabled by default"
299 default n
300 depends on KERNEL_MEMCG_SWAP
301 help
302 Memory Resource Controller Swap Extension comes with its price in
303 a bigger memory consumption. General purpose distribution kernels
304 which want to enable the feature but keep it disabled by default
305 and let the user enable it by swapaccount boot command line
306 parameter should have this option unselected.
307
308 Those who want to have the feature enabled by default should
309 select this option (if, for some reason, they need to disable it,
310 then swapaccount=0 does the trick).
311
312
313 config KERNEL_MEMCG_KMEM
314 bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
315 default n
316 depends on KERNEL_MEMCG
317 help
318 The Kernel Memory extension for Memory Resource Controller can limit
319 the amount of memory used by kernel objects in the system. Those are
320 fundamentally different from the entities handled by the standard
321 Memory Controller, which are page-based, and can be swapped. Users of
322 the kmem extension can use it to guarantee that no group of processes
323 will ever exhaust kernel resources alone.
324
325 config KERNEL_CGROUP_PERF
326 bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
327 select KERNEL_PERF_EVENTS
328 default n
329 help
330 This option extends the per-cpu mode to restrict monitoring to
331 threads which belong to the cgroup specified and run on the
332 designated cpu.
333
334 menuconfig KERNEL_CGROUP_SCHED
335 bool "Group CPU scheduler"
336 default n
337 help
338 This feature lets CPU scheduler recognize task groups and control CPU
339 bandwidth allocation to such task groups. It uses cgroups to group
340 tasks.
341
342 if KERNEL_CGROUP_SCHED
343
344 config KERNEL_FAIR_GROUP_SCHED
345 bool "Group scheduling for SCHED_OTHER"
346 default n
347
348 config KERNEL_CFS_BANDWIDTH
349 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
350 default n
351 depends on KERNEL_FAIR_GROUP_SCHED
352 help
353 This option allows users to define CPU bandwidth rates (limits) for
354 tasks running within the fair group scheduler. Groups with no limit
355 set are considered to be unconstrained and will run with no
356 restriction.
357 See tip/Documentation/scheduler/sched-bwc.txt for more information.
358
359 config KERNEL_RT_GROUP_SCHED
360 bool "Group scheduling for SCHED_RR/FIFO"
361 default n
362 help
363 This feature lets you explicitly allocate real CPU bandwidth
364 to task groups. If enabled, it will also make it impossible to
365 schedule realtime tasks for non-root users until you allocate
366 realtime bandwidth for them.
367
368 endif
369
370 config KERNEL_BLK_CGROUP
371 bool "Block IO controller"
372 default y
373 help
374 Generic block IO controller cgroup interface. This is the common
375 cgroup interface which should be used by various IO controlling
376 policies.
377
378 Currently, CFQ IO scheduler uses it to recognize task groups and
379 control disk bandwidth allocation (proportional time slice allocation)
380 to such task groups. It is also used by bio throttling logic in
381 block layer to implement upper limit in IO rates on a device.
382
383 This option only enables generic Block IO controller infrastructure.
384 One needs to also enable actual IO controlling logic/policy. For
385 enabling proportional weight division of disk bandwidth in CFQ, set
386 CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
387 CONFIG_BLK_DEV_THROTTLING=y.
388
389 config KERNEL_DEBUG_BLK_CGROUP
390 bool "Enable Block IO controller debugging"
391 default n
392 depends on KERNEL_BLK_CGROUP
393 help
394 Enable some debugging help. Currently it exports additional stat
395 files in a cgroup which can be useful for debugging.
396
397 config KERNEL_NET_CLS_CGROUP
398 bool "Control Group Classifier"
399 default y
400
401 config KERNEL_NETPRIO_CGROUP
402 bool "Network priority cgroup"
403 default y
404
405 endif
406
407 #
408 # Namespace support symbols
409 #
410
411 config KERNEL_NAMESPACES
412 bool "Enable kernel namespaces"
413 default n
414
415 if KERNEL_NAMESPACES
416
417 config KERNEL_UTS_NS
418 bool "UTS namespace"
419 default y
420 help
421 In this namespace, tasks see different info provided
422 with the uname() system call.
423
424 config KERNEL_IPC_NS
425 bool "IPC namespace"
426 default y
427 help
428 In this namespace, tasks work with IPC ids which correspond to
429 different IPC objects in different namespaces.
430
431 config KERNEL_USER_NS
432 bool "User namespace (EXPERIMENTAL)"
433 default y
434 help
435 This allows containers, i.e. vservers, to use user namespaces
436 to provide different user info for different servers.
437
438 config KERNEL_PID_NS
439 bool "PID Namespaces"
440 default y
441 help
442 Support process id namespaces. This allows having multiple
443 processes with the same pid as long as they are in different
444 pid namespaces. This is a building block of containers.
445
446 config KERNEL_NET_NS
447 bool "Network namespace"
448 default y
449 help
450 Allow user space to create what appear to be multiple instances
451 of the network stack.
452
453 endif
454
455 #
456 # LXC related symbols
457 #
458
459 config KERNEL_LXC_MISC
460 bool "Enable miscellaneous LXC related options"
461 default n
462
463 if KERNEL_LXC_MISC
464
465 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
466 bool "Support multiple instances of devpts"
467 default y
468 help
469 Enable support for multiple instances of devpts filesystem.
470 If you want to have isolated PTY namespaces (eg: in containers),
471 say Y here. Otherwise, say N. If enabled, each mount of devpts
472 filesystem with the '-o newinstance' option will create an
473 independent PTY namespace.
474
475 config KERNEL_POSIX_MQUEUE
476 bool "POSIX Message Queues"
477 default y
478 help
479 POSIX variant of message queues is a part of IPC. In POSIX message
480 queues every message has a priority which decides about succession
481 of receiving it by a process. If you want to compile and run
482 programs written e.g. for Solaris with use of its POSIX message
483 queues (functions mq_*) say Y here.
484
485 POSIX message queues are visible as a filesystem called 'mqueue'
486 and can be mounted somewhere if you want to do filesystem
487 operations on message queues.
488
489 endif
490
491 config KERNEL_SECCOMP
492 bool "Enable seccomp support"
493 depends on !(TARGET_uml || TARGET_avr32)
494 default n
495 help
496 Build kernel with support for seccomp.
497
498 config KERNEL_SECCOMP_FILTER
499 bool "Enable seccomp filter support"
500 depends on KERNEL_SECCOMP
501 default n
502 help
503 Build kernel with support for seccomp BPF programs.
504
505 config KERNEL_FHANDLE
506 bool "Enable open by fhandle syscalls"
507 default n
508 help
509 Build kernel with support for open by fhandle syscalls