2 bool "Compile the kernel with Debug FileSystem enabled"
5 debugfs is a virtual file system that kernel developers use to put
6 debugging files into. Enable this option to be able to read and
9 config KERNEL_PERF_EVENTS
13 config KERNEL_PROFILING
14 bool "Compile the kernel with profiling enabled"
16 select KERNEL_PERF_EVENTS
18 Enable the extended profiling support mechanisms used by profilers such
21 config KERNEL_KALLSYMS
22 bool "Compile the kernel with symbol table information"
25 This will give you more information in stack traces from kernel oopses
28 bool "Compile the kernel with tracing support"
31 config KERNEL_FTRACE_SYSCALLS
32 bool "Trace system calls"
33 depends on KERNEL_FTRACE
36 config KERNEL_ENABLE_DEFAULT_TRACERS
37 bool "Trace process context switches and events"
38 depends on KERNEL_FTRACE
41 config KERNEL_DEBUG_KERNEL
45 config KERNEL_DEBUG_INFO
46 bool "Compile the kernel with debug information"
48 select KERNEL_DEBUG_KERNEL
50 This will compile your kernel and modules with debug information.
52 config KERNEL_DEBUG_LL_UART_NONE
57 config KERNEL_DEBUG_LL
61 select KERNEL_DEBUG_LL_UART_NONE
63 ARM low level debugging
65 config KERNEL_EARLY_PRINTK
66 bool "Compile the kernel with early printk"
69 select KERNEL_DEBUG_KERNEL
70 select KERNEL_DEBUG_LL if arm
72 Compile the kernel with early printk support.
73 This is only useful for debugging purposes to send messages
74 over the serial console in early boot.
75 Enable this to debug early boot problems.
78 bool "Compile the kernel with asynchronous IO support"
81 config KERNEL_DIRECT_IO
82 bool "Compile the kernel with direct IO support"
85 config KERNEL_MAGIC_SYSRQ
86 bool "Compile the kernel with SysRq support"
89 config KERNEL_COREDUMP
92 config KERNEL_ELF_CORE
93 bool "Enable process core dump support"
94 select KERNEL_COREDUMP
97 config KERNEL_PROVE_LOCKING
98 bool "Enable kernel lock checking"
99 select KERNEL_DEBUG_KERNEL
102 config KERNEL_PRINTK_TIME
103 bool "Enable printk timestamps"
110 bool "Enable kexec support"
113 bool "Enable rfkill support"
114 default RFKILL_SUPPORT
117 # CGROUP support symbols
120 config KERNEL_CGROUPS
121 bool "Enable kernel cgroups"
126 config KERNEL_CGROUP_DEBUG
127 bool "Example debug cgroup subsystem"
130 This option enables a simple cgroup subsystem that
131 exports useful debugging information about the cgroups
134 config KERNEL_FREEZER
136 default y if KERNEL_CGROUP_FREEZER
138 config KERNEL_CGROUP_FREEZER
139 bool "Freezer cgroup subsystem"
142 Provides a way to freeze and unfreeze all tasks in a
145 config KERNEL_CGROUP_DEVICE
146 bool "Device controller for cgroups"
149 Provides a cgroup implementing whitelists for devices which
150 a process in the cgroup can mknod or open.
152 config KERNEL_CPUSETS
153 bool "Cpuset support"
156 This option will let you create and manage CPUSETs which
157 allow dynamically partitioning a system into sets of CPUs and
158 Memory Nodes and assigning tasks to run only within those sets.
159 This is primarily useful on large SMP or NUMA systems.
161 config KERNEL_PROC_PID_CPUSET
162 bool "Include legacy /proc/<pid>/cpuset file"
164 depends on KERNEL_CPUSETS
166 config KERNEL_CGROUP_CPUACCT
167 bool "Simple CPU accounting cgroup subsystem"
170 Provides a simple Resource Controller for monitoring the
171 total CPU consumed by the tasks in a cgroup.
173 config KERNEL_RESOURCE_COUNTERS
174 bool "Resource counters"
177 This option enables controller independent resource accounting
178 infrastructure that works with cgroups.
180 config KERNEL_MM_OWNER
182 default y if KERNEL_MEMCG
185 bool "Memory Resource Controller for Control Groups"
187 depends on KERNEL_RESOURCE_COUNTERS
189 Provides a memory resource controller that manages both anonymous
190 memory and page cache. (See Documentation/cgroups/memory.txt)
192 Note that setting this option increases fixed memory overhead
193 associated with each page of memory in the system. By this,
194 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory
195 usage tracking struct at boot. Total amount of this is printed out
198 Only enable when you're ok with these trade offs and really
199 sure you need the memory resource controller. Even when you enable
200 this, you can set "cgroup_disable=memory" at your boot option to
201 disable memory resource controller and you can avoid overheads.
202 (and lose benefits of memory resource controller)
204 This config option also selects MM_OWNER config option, which
205 could in turn add some fork/exit overhead.
207 config KERNEL_MEMCG_SWAP
208 bool "Memory Resource Controller Swap Extension"
210 depends on KERNEL_MEMCG
212 Add swap management feature to memory resource controller. When you
213 enable this, you can limit mem+swap usage per cgroup. In other words,
214 when you disable this, memory resource controller has no cares to
215 usage of swap...a process can exhaust all of the swap. This extension
216 is useful when you want to avoid exhaustion swap but this itself
217 adds more overheads and consumes memory for remembering information.
218 Especially if you use 32bit system or small memory system, please
219 be careful about enabling this. When memory resource controller
220 is disabled by boot option, this will be automatically disabled and
221 there will be no overhead from this. Even when you set this config=y,
222 if boot option "swapaccount=0" is set, swap will not be accounted.
223 Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
224 size is 4096bytes, 512k per 1Gbytes of swap.
226 config KERNEL_MEMCG_SWAP_ENABLED
227 bool "Memory Resource Controller Swap Extension enabled by default"
229 depends on KERNEL_MEMCG_SWAP
231 Memory Resource Controller Swap Extension comes with its price in
232 a bigger memory consumption. General purpose distribution kernels
233 which want to enable the feature but keep it disabled by default
234 and let the user enable it by swapaccount boot command line
235 parameter should have this option unselected.
236 For those who want to have the feature enabled by default should
237 select this option (if, for some reason, they need to disable it
238 then swapaccount=0 does the trick).
241 config KERNEL_MEMCG_KMEM
242 bool "Memory Resource Controller Kernel Memory accounting (EXPERIMENTAL)"
244 depends on KERNEL_MEMCG
246 The Kernel Memory extension for Memory Resource Controller can limit
247 the amount of memory used by kernel objects in the system. Those are
248 fundamentally different from the entities handled by the standard
249 Memory Controller, which are page-based, and can be swapped. Users of
250 the kmem extension can use it to guarantee that no group of processes
251 will ever exhaust kernel resources alone.
253 config KERNEL_PERF_EVENTS
255 default y if KERNEL_CGROUP_PERF
257 config KERNEL_CGROUP_PERF
258 bool "Enable perf_event per-cpu per-container group (cgroup) monitoring"
261 This option extends the per-cpu mode to restrict monitoring to
262 threads which belong to the cgroup specified and run on the
265 menuconfig KERNEL_CGROUP_SCHED
266 bool "Group CPU scheduler"
269 This feature lets CPU scheduler recognize task groups and control CPU
270 bandwidth allocation to such task groups. It uses cgroups to group
273 if KERNEL_CGROUP_SCHED
275 config KERNEL_FAIR_GROUP_SCHED
276 bool "Group scheduling for SCHED_OTHER"
279 config KERNEL_CFS_BANDWIDTH
280 bool "CPU bandwidth provisioning for FAIR_GROUP_SCHED"
282 depends on KERNEL_FAIR_GROUP_SCHED
284 This option allows users to define CPU bandwidth rates (limits) for
285 tasks running within the fair group scheduler. Groups with no limit
286 set are considered to be unconstrained and will run with no
288 See tip/Documentation/scheduler/sched-bwc.txt for more information.
290 config KERNEL_RT_GROUP_SCHED
291 bool "Group scheduling for SCHED_RR/FIFO"
294 This feature lets you explicitly allocate real CPU bandwidth
295 to task groups. If enabled, it will also make it impossible to
296 schedule realtime tasks for non-root users until you allocate
297 realtime bandwidth for them.
301 config KERNEL_BLK_CGROUP
302 bool "Block IO controller"
305 Generic block IO controller cgroup interface. This is the common
306 cgroup interface which should be used by various IO controlling
309 Currently, CFQ IO scheduler uses it to recognize task groups and
310 control disk bandwidth allocation (proportional time slice allocation)
311 to such task groups. It is also used by bio throttling logic in
312 block layer to implement upper limit in IO rates on a device.
314 This option only enables generic Block IO controller infrastructure.
315 One needs to also enable actual IO controlling logic/policy. For
316 enabling proportional weight division of disk bandwidth in CFQ, set
317 CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set
318 CONFIG_BLK_DEV_THROTTLING=y.
320 config KERNEL_DEBUG_BLK_CGROUP
321 bool "Enable Block IO controller debugging"
323 depends on KERNEL_BLK_CGROUP
325 Enable some debugging help. Currently it exports additional stat
326 files in a cgroup which can be useful for debugging.
328 config KERNEL_NET_CLS_CGROUP
329 bool "Control Group Classifier"
332 config KERNEL_NETPRIO_CGROUP
333 bool "Network priority cgroup"
339 # Namespace support symbols
342 config KERNEL_NAMESPACES
343 bool "Enable kernel namespaces"
352 In this namespace tasks see different info provided
353 with the uname() system call
359 In this namespace tasks work with IPC ids which correspond to
360 different IPC objects in different namespaces.
362 config KERNEL_USER_NS
363 bool "User namespace (EXPERIMENTAL)"
366 This allows containers, i.e. vservers, to use user namespaces
367 to provide different user info for different servers.
370 bool "PID Namespaces"
373 Support process id namespaces. This allows having multiple
374 processes with the same pid as long as they are in different
375 pid namespaces. This is a building block of containers.
378 bool "Network namespace"
381 Allow user space to create what appear to be multiple instances
382 of the network stack.
387 # LXC related symbols
390 config KERNEL_LXC_MISC
391 bool "Enable miscellaneous LXC related options"
396 config KERNEL_DEVPTS_MULTIPLE_INSTANCES
397 bool "Support multiple instances of devpts"
400 Enable support for multiple instances of devpts filesystem.
401 If you want to have isolated PTY namespaces (eg: in containers),
402 say Y here. Otherwise, say N. If enabled, each mount of devpts
403 filesystem with the '-o newinstance' option will create an
404 independent PTY namespace.
406 config KERNEL_POSIX_MQUEUE
407 bool "POSIX Message Queues"
410 POSIX variant of message queues is a part of IPC. In POSIX message
411 queues every message has a priority which decides about succession
412 of receiving it by a process. If you want to compile and run
413 programs written e.g. for Solaris with use of its POSIX message
414 queues (functions mq_*) say Y here.
416 POSIX message queues are visible as a filesystem called 'mqueue'
417 and can be mounted somewhere if you want to do filesystem
418 operations on message queues.