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