Root/
1 | config ARCH |
2 | string |
3 | option env="ARCH" |
4 | |
5 | config KERNELVERSION |
6 | string |
7 | option env="KERNELVERSION" |
8 | |
9 | config DEFCONFIG_LIST |
10 | string |
11 | depends on !UML |
12 | option defconfig_list |
13 | default "/lib/modules/$UNAME_RELEASE/.config" |
14 | default "/etc/kernel-config" |
15 | default "/boot/config-$UNAME_RELEASE" |
16 | default "$ARCH_DEFCONFIG" |
17 | default "arch/$ARCH/defconfig" |
18 | |
19 | config CONSTRUCTORS |
20 | bool |
21 | depends on !UML |
22 | |
23 | config HAVE_IRQ_WORK |
24 | bool |
25 | |
26 | config IRQ_WORK |
27 | bool |
28 | depends on HAVE_IRQ_WORK |
29 | |
30 | menu "General setup" |
31 | |
32 | config EXPERIMENTAL |
33 | bool "Prompt for development and/or incomplete code/drivers" |
34 | ---help--- |
35 | Some of the various things that Linux supports (such as network |
36 | drivers, file systems, network protocols, etc.) can be in a state |
37 | of development where the functionality, stability, or the level of |
38 | testing is not yet high enough for general use. This is usually |
39 | known as the "alpha-test" phase among developers. If a feature is |
40 | currently in alpha-test, then the developers usually discourage |
41 | uninformed widespread use of this feature by the general public to |
42 | avoid "Why doesn't this work?" type mail messages. However, active |
43 | testing and use of these systems is welcomed. Just be aware that it |
44 | may not meet the normal level of reliability or it may fail to work |
45 | in some special cases. Detailed bug reports from people familiar |
46 | with the kernel internals are usually welcomed by the developers |
47 | (before submitting bug reports, please read the documents |
48 | <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, |
49 | <file:Documentation/BUG-HUNTING>, and |
50 | <file:Documentation/oops-tracing.txt> in the kernel source). |
51 | |
52 | This option will also make obsoleted drivers available. These are |
53 | drivers that have been replaced by something else, and/or are |
54 | scheduled to be removed in a future kernel release. |
55 | |
56 | Unless you intend to help test and develop a feature or driver that |
57 | falls into this category, or you have a situation that requires |
58 | using these features, you should probably say N here, which will |
59 | cause the configurator to present you with fewer choices. If |
60 | you say Y here, you will be offered the choice of using features or |
61 | drivers that are currently considered to be in the alpha-test phase. |
62 | |
63 | config BROKEN |
64 | bool |
65 | |
66 | config BROKEN_ON_SMP |
67 | bool |
68 | depends on BROKEN || !SMP |
69 | default y |
70 | |
71 | config INIT_ENV_ARG_LIMIT |
72 | int |
73 | default 32 if !UML |
74 | default 128 if UML |
75 | help |
76 | Maximum of each of the number of arguments and environment |
77 | variables passed to init from the kernel command line. |
78 | |
79 | |
80 | config CROSS_COMPILE |
81 | string "Cross-compiler tool prefix" |
82 | help |
83 | Same as running 'make CROSS_COMPILE=prefix-' but stored for |
84 | default make runs in this kernel build directory. You don't |
85 | need to set this unless you want the configured kernel build |
86 | directory to select the cross-compiler automatically. |
87 | |
88 | config LOCALVERSION |
89 | string "Local version - append to kernel release" |
90 | help |
91 | Append an extra string to the end of your kernel version. |
92 | This will show up when you type uname, for example. |
93 | The string you set here will be appended after the contents of |
94 | any files with a filename matching localversion* in your |
95 | object and source tree, in that order. Your total string can |
96 | be a maximum of 64 characters. |
97 | |
98 | config LOCALVERSION_AUTO |
99 | bool "Automatically append version information to the version string" |
100 | default y |
101 | help |
102 | This will try to automatically determine if the current tree is a |
103 | release tree by looking for git tags that belong to the current |
104 | top of tree revision. |
105 | |
106 | A string of the format -gxxxxxxxx will be added to the localversion |
107 | if a git-based tree is found. The string generated by this will be |
108 | appended after any matching localversion* files, and after the value |
109 | set in CONFIG_LOCALVERSION. |
110 | |
111 | (The actual string used here is the first eight characters produced |
112 | by running the command: |
113 | |
114 | $ git rev-parse --verify HEAD |
115 | |
116 | which is done within the script "scripts/setlocalversion".) |
117 | |
118 | config HAVE_KERNEL_GZIP |
119 | bool |
120 | |
121 | config HAVE_KERNEL_BZIP2 |
122 | bool |
123 | |
124 | config HAVE_KERNEL_LZMA |
125 | bool |
126 | |
127 | config HAVE_KERNEL_XZ |
128 | bool |
129 | |
130 | config HAVE_KERNEL_LZO |
131 | bool |
132 | |
133 | choice |
134 | prompt "Kernel compression mode" |
135 | default KERNEL_GZIP |
136 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO |
137 | help |
138 | The linux kernel is a kind of self-extracting executable. |
139 | Several compression algorithms are available, which differ |
140 | in efficiency, compression and decompression speed. |
141 | Compression speed is only relevant when building a kernel. |
142 | Decompression speed is relevant at each boot. |
143 | |
144 | If you have any problems with bzip2 or lzma compressed |
145 | kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older |
146 | version of this functionality (bzip2 only), for 2.4, was |
147 | supplied by Christian Ludwig) |
148 | |
149 | High compression options are mostly useful for users, who |
150 | are low on disk space (embedded systems), but for whom ram |
151 | size matters less. |
152 | |
153 | If in doubt, select 'gzip' |
154 | |
155 | config KERNEL_GZIP |
156 | bool "Gzip" |
157 | depends on HAVE_KERNEL_GZIP |
158 | help |
159 | The old and tried gzip compression. It provides a good balance |
160 | between compression ratio and decompression speed. |
161 | |
162 | config KERNEL_BZIP2 |
163 | bool "Bzip2" |
164 | depends on HAVE_KERNEL_BZIP2 |
165 | help |
166 | Its compression ratio and speed is intermediate. |
167 | Decompression speed is slowest among the three. The kernel |
168 | size is about 10% smaller with bzip2, in comparison to gzip. |
169 | Bzip2 uses a large amount of memory. For modern kernels you |
170 | will need at least 8MB RAM or more for booting. |
171 | |
172 | config KERNEL_LZMA |
173 | bool "LZMA" |
174 | depends on HAVE_KERNEL_LZMA |
175 | help |
176 | The most recent compression algorithm. |
177 | Its ratio is best, decompression speed is between the other |
178 | two. Compression is slowest. The kernel size is about 33% |
179 | smaller with LZMA in comparison to gzip. |
180 | |
181 | config KERNEL_XZ |
182 | bool "XZ" |
183 | depends on HAVE_KERNEL_XZ |
184 | help |
185 | XZ uses the LZMA2 algorithm and instruction set specific |
186 | BCJ filters which can improve compression ratio of executable |
187 | code. The size of the kernel is about 30% smaller with XZ in |
188 | comparison to gzip. On architectures for which there is a BCJ |
189 | filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ |
190 | will create a few percent smaller kernel than plain LZMA. |
191 | |
192 | The speed is about the same as with LZMA: The decompression |
193 | speed of XZ is better than that of bzip2 but worse than gzip |
194 | and LZO. Compression is slow. |
195 | |
196 | config KERNEL_LZO |
197 | bool "LZO" |
198 | depends on HAVE_KERNEL_LZO |
199 | help |
200 | Its compression ratio is the poorest among the 4. The kernel |
201 | size is about 10% bigger than gzip; however its speed |
202 | (both compression and decompression) is the fastest. |
203 | |
204 | endchoice |
205 | |
206 | config DEFAULT_HOSTNAME |
207 | string "Default hostname" |
208 | default "(none)" |
209 | help |
210 | This option determines the default system hostname before userspace |
211 | calls sethostname(2). The kernel traditionally uses "(none)" here, |
212 | but you may wish to use a different default here to make a minimal |
213 | system more usable with less configuration. |
214 | |
215 | config SWAP |
216 | bool "Support for paging of anonymous memory (swap)" |
217 | depends on MMU && BLOCK |
218 | default y |
219 | help |
220 | This option allows you to choose whether you want to have support |
221 | for so called swap devices or swap files in your kernel that are |
222 | used to provide more virtual memory than the actual RAM present |
223 | in your computer. If unsure say Y. |
224 | |
225 | config SYSVIPC |
226 | bool "System V IPC" |
227 | ---help--- |
228 | Inter Process Communication is a suite of library functions and |
229 | system calls which let processes (running programs) synchronize and |
230 | exchange information. It is generally considered to be a good thing, |
231 | and some programs won't run unless you say Y here. In particular, if |
232 | you want to run the DOS emulator dosemu under Linux (read the |
233 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), |
234 | you'll need to say Y here. |
235 | |
236 | You can find documentation about IPC with "info ipc" and also in |
237 | section 6.4 of the Linux Programmer's Guide, available from |
238 | <http://www.tldp.org/guides.html>. |
239 | |
240 | config SYSVIPC_SYSCTL |
241 | bool |
242 | depends on SYSVIPC |
243 | depends on SYSCTL |
244 | default y |
245 | |
246 | config POSIX_MQUEUE |
247 | bool "POSIX Message Queues" |
248 | depends on NET && EXPERIMENTAL |
249 | ---help--- |
250 | POSIX variant of message queues is a part of IPC. In POSIX message |
251 | queues every message has a priority which decides about succession |
252 | of receiving it by a process. If you want to compile and run |
253 | programs written e.g. for Solaris with use of its POSIX message |
254 | queues (functions mq_*) say Y here. |
255 | |
256 | POSIX message queues are visible as a filesystem called 'mqueue' |
257 | and can be mounted somewhere if you want to do filesystem |
258 | operations on message queues. |
259 | |
260 | If unsure, say Y. |
261 | |
262 | config POSIX_MQUEUE_SYSCTL |
263 | bool |
264 | depends on POSIX_MQUEUE |
265 | depends on SYSCTL |
266 | default y |
267 | |
268 | config BSD_PROCESS_ACCT |
269 | bool "BSD Process Accounting" |
270 | help |
271 | If you say Y here, a user level program will be able to instruct the |
272 | kernel (via a special system call) to write process accounting |
273 | information to a file: whenever a process exits, information about |
274 | that process will be appended to the file by the kernel. The |
275 | information includes things such as creation time, owning user, |
276 | command name, memory usage, controlling terminal etc. (the complete |
277 | list is in the struct acct in <file:include/linux/acct.h>). It is |
278 | up to the user level program to do useful things with this |
279 | information. This is generally a good idea, so say Y. |
280 | |
281 | config BSD_PROCESS_ACCT_V3 |
282 | bool "BSD Process Accounting version 3 file format" |
283 | depends on BSD_PROCESS_ACCT |
284 | default n |
285 | help |
286 | If you say Y here, the process accounting information is written |
287 | in a new file format that also logs the process IDs of each |
288 | process and it's parent. Note that this file format is incompatible |
289 | with previous v0/v1/v2 file formats, so you will need updated tools |
290 | for processing it. A preliminary version of these tools is available |
291 | at <http://www.gnu.org/software/acct/>. |
292 | |
293 | config FHANDLE |
294 | bool "open by fhandle syscalls" |
295 | select EXPORTFS |
296 | help |
297 | If you say Y here, a user level program will be able to map |
298 | file names to handle and then later use the handle for |
299 | different file system operations. This is useful in implementing |
300 | userspace file servers, which now track files using handles instead |
301 | of names. The handle would remain the same even if file names |
302 | get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2) |
303 | syscalls. |
304 | |
305 | config TASKSTATS |
306 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" |
307 | depends on NET |
308 | default n |
309 | help |
310 | Export selected statistics for tasks/processes through the |
311 | generic netlink interface. Unlike BSD process accounting, the |
312 | statistics are available during the lifetime of tasks/processes as |
313 | responses to commands. Like BSD accounting, they are sent to user |
314 | space on task exit. |
315 | |
316 | Say N if unsure. |
317 | |
318 | config TASK_DELAY_ACCT |
319 | bool "Enable per-task delay accounting (EXPERIMENTAL)" |
320 | depends on TASKSTATS |
321 | help |
322 | Collect information on time spent by a task waiting for system |
323 | resources like cpu, synchronous block I/O completion and swapping |
324 | in pages. Such statistics can help in setting a task's priorities |
325 | relative to other tasks for cpu, io, rss limits etc. |
326 | |
327 | Say N if unsure. |
328 | |
329 | config TASK_XACCT |
330 | bool "Enable extended accounting over taskstats (EXPERIMENTAL)" |
331 | depends on TASKSTATS |
332 | help |
333 | Collect extended task accounting data and send the data |
334 | to userland for processing over the taskstats interface. |
335 | |
336 | Say N if unsure. |
337 | |
338 | config TASK_IO_ACCOUNTING |
339 | bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" |
340 | depends on TASK_XACCT |
341 | help |
342 | Collect information on the number of bytes of storage I/O which this |
343 | task has caused. |
344 | |
345 | Say N if unsure. |
346 | |
347 | config AUDIT |
348 | bool "Auditing support" |
349 | depends on NET |
350 | help |
351 | Enable auditing infrastructure that can be used with another |
352 | kernel subsystem, such as SELinux (which requires this for |
353 | logging of avc messages output). Does not do system-call |
354 | auditing without CONFIG_AUDITSYSCALL. |
355 | |
356 | config AUDITSYSCALL |
357 | bool "Enable system-call auditing support" |
358 | depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH) |
359 | default y if SECURITY_SELINUX |
360 | help |
361 | Enable low-overhead system-call auditing infrastructure that |
362 | can be used independently or with another kernel subsystem, |
363 | such as SELinux. |
364 | |
365 | config AUDIT_WATCH |
366 | def_bool y |
367 | depends on AUDITSYSCALL |
368 | select FSNOTIFY |
369 | |
370 | config AUDIT_TREE |
371 | def_bool y |
372 | depends on AUDITSYSCALL |
373 | select FSNOTIFY |
374 | |
375 | source "kernel/irq/Kconfig" |
376 | |
377 | menu "RCU Subsystem" |
378 | |
379 | choice |
380 | prompt "RCU Implementation" |
381 | default TREE_RCU |
382 | |
383 | config TREE_RCU |
384 | bool "Tree-based hierarchical RCU" |
385 | depends on !PREEMPT && SMP |
386 | help |
387 | This option selects the RCU implementation that is |
388 | designed for very large SMP system with hundreds or |
389 | thousands of CPUs. It also scales down nicely to |
390 | smaller systems. |
391 | |
392 | config TREE_PREEMPT_RCU |
393 | bool "Preemptible tree-based hierarchical RCU" |
394 | depends on PREEMPT |
395 | help |
396 | This option selects the RCU implementation that is |
397 | designed for very large SMP systems with hundreds or |
398 | thousands of CPUs, but for which real-time response |
399 | is also required. It also scales down nicely to |
400 | smaller systems. |
401 | |
402 | config TINY_RCU |
403 | bool "UP-only small-memory-footprint RCU" |
404 | depends on !SMP |
405 | help |
406 | This option selects the RCU implementation that is |
407 | designed for UP systems from which real-time response |
408 | is not required. This option greatly reduces the |
409 | memory footprint of RCU. |
410 | |
411 | config TINY_PREEMPT_RCU |
412 | bool "Preemptible UP-only small-memory-footprint RCU" |
413 | depends on !SMP && PREEMPT |
414 | help |
415 | This option selects the RCU implementation that is designed |
416 | for real-time UP systems. This option greatly reduces the |
417 | memory footprint of RCU. |
418 | |
419 | endchoice |
420 | |
421 | config PREEMPT_RCU |
422 | def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU ) |
423 | help |
424 | This option enables preemptible-RCU code that is common between |
425 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. |
426 | |
427 | config RCU_TRACE |
428 | bool "Enable tracing for RCU" |
429 | help |
430 | This option provides tracing in RCU which presents stats |
431 | in debugfs for debugging RCU implementation. |
432 | |
433 | Say Y here if you want to enable RCU tracing |
434 | Say N if you are unsure. |
435 | |
436 | config RCU_FANOUT |
437 | int "Tree-based hierarchical RCU fanout value" |
438 | range 2 64 if 64BIT |
439 | range 2 32 if !64BIT |
440 | depends on TREE_RCU || TREE_PREEMPT_RCU |
441 | default 64 if 64BIT |
442 | default 32 if !64BIT |
443 | help |
444 | This option controls the fanout of hierarchical implementations |
445 | of RCU, allowing RCU to work efficiently on machines with |
446 | large numbers of CPUs. This value must be at least the fourth |
447 | root of NR_CPUS, which allows NR_CPUS to be insanely large. |
448 | The default value of RCU_FANOUT should be used for production |
449 | systems, but if you are stress-testing the RCU implementation |
450 | itself, small RCU_FANOUT values allow you to test large-system |
451 | code paths on small(er) systems. |
452 | |
453 | Select a specific number if testing RCU itself. |
454 | Take the default if unsure. |
455 | |
456 | config RCU_FANOUT_EXACT |
457 | bool "Disable tree-based hierarchical RCU auto-balancing" |
458 | depends on TREE_RCU || TREE_PREEMPT_RCU |
459 | default n |
460 | help |
461 | This option forces use of the exact RCU_FANOUT value specified, |
462 | regardless of imbalances in the hierarchy. This is useful for |
463 | testing RCU itself, and might one day be useful on systems with |
464 | strong NUMA behavior. |
465 | |
466 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. |
467 | |
468 | Say N if unsure. |
469 | |
470 | config RCU_FAST_NO_HZ |
471 | bool "Accelerate last non-dyntick-idle CPU's grace periods" |
472 | depends on TREE_RCU && NO_HZ && SMP |
473 | default n |
474 | help |
475 | This option causes RCU to attempt to accelerate grace periods |
476 | in order to allow the final CPU to enter dynticks-idle state |
477 | more quickly. On the other hand, this option increases the |
478 | overhead of the dynticks-idle checking, particularly on systems |
479 | with large numbers of CPUs. |
480 | |
481 | Say Y if energy efficiency is critically important, particularly |
482 | if you have relatively few CPUs. |
483 | |
484 | Say N if you are unsure. |
485 | |
486 | config TREE_RCU_TRACE |
487 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) |
488 | select DEBUG_FS |
489 | help |
490 | This option provides tracing for the TREE_RCU and |
491 | TREE_PREEMPT_RCU implementations, permitting Makefile to |
492 | trivially select kernel/rcutree_trace.c. |
493 | |
494 | config RCU_BOOST |
495 | bool "Enable RCU priority boosting" |
496 | depends on RT_MUTEXES && PREEMPT_RCU |
497 | default n |
498 | help |
499 | This option boosts the priority of preempted RCU readers that |
500 | block the current preemptible RCU grace period for too long. |
501 | This option also prevents heavy loads from blocking RCU |
502 | callback invocation for all flavors of RCU. |
503 | |
504 | Say Y here if you are working with real-time apps or heavy loads |
505 | Say N here if you are unsure. |
506 | |
507 | config RCU_BOOST_PRIO |
508 | int "Real-time priority to boost RCU readers to" |
509 | range 1 99 |
510 | depends on RCU_BOOST |
511 | default 1 |
512 | help |
513 | This option specifies the real-time priority to which preempted |
514 | RCU readers are to be boosted. If you are working with CPU-bound |
515 | real-time applications, you should specify a priority higher then |
516 | the highest-priority CPU-bound application. |
517 | |
518 | Specify the real-time priority, or take the default if unsure. |
519 | |
520 | config RCU_BOOST_DELAY |
521 | int "Milliseconds to delay boosting after RCU grace-period start" |
522 | range 0 3000 |
523 | depends on RCU_BOOST |
524 | default 500 |
525 | help |
526 | This option specifies the time to wait after the beginning of |
527 | a given grace period before priority-boosting preempted RCU |
528 | readers blocking that grace period. Note that any RCU reader |
529 | blocking an expedited RCU grace period is boosted immediately. |
530 | |
531 | Accept the default if unsure. |
532 | |
533 | endmenu # "RCU Subsystem" |
534 | |
535 | config IKCONFIG |
536 | tristate "Kernel .config support" |
537 | ---help--- |
538 | This option enables the complete Linux kernel ".config" file |
539 | contents to be saved in the kernel. It provides documentation |
540 | of which kernel options are used in a running kernel or in an |
541 | on-disk kernel. This information can be extracted from the kernel |
542 | image file with the script scripts/extract-ikconfig and used as |
543 | input to rebuild the current kernel or to build another kernel. |
544 | It can also be extracted from a running kernel by reading |
545 | /proc/config.gz if enabled (below). |
546 | |
547 | config IKCONFIG_PROC |
548 | bool "Enable access to .config through /proc/config.gz" |
549 | depends on IKCONFIG && PROC_FS |
550 | ---help--- |
551 | This option enables access to the kernel configuration file |
552 | through /proc/config.gz. |
553 | |
554 | config LOG_BUF_SHIFT |
555 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" |
556 | range 12 21 |
557 | default 17 |
558 | help |
559 | Select kernel log buffer size as a power of 2. |
560 | Examples: |
561 | 17 => 128 KB |
562 | 16 => 64 KB |
563 | 15 => 32 KB |
564 | 14 => 16 KB |
565 | 13 => 8 KB |
566 | 12 => 4 KB |
567 | |
568 | # |
569 | # Architectures with an unreliable sched_clock() should select this: |
570 | # |
571 | config HAVE_UNSTABLE_SCHED_CLOCK |
572 | bool |
573 | |
574 | menuconfig CGROUPS |
575 | boolean "Control Group support" |
576 | depends on EVENTFD |
577 | help |
578 | This option adds support for grouping sets of processes together, for |
579 | use with process control subsystems such as Cpusets, CFS, memory |
580 | controls or device isolation. |
581 | See |
582 | - Documentation/scheduler/sched-design-CFS.txt (CFS) |
583 | - Documentation/cgroups/ (features for grouping, isolation |
584 | and resource control) |
585 | |
586 | Say N if unsure. |
587 | |
588 | if CGROUPS |
589 | |
590 | config CGROUP_DEBUG |
591 | bool "Example debug cgroup subsystem" |
592 | default n |
593 | help |
594 | This option enables a simple cgroup subsystem that |
595 | exports useful debugging information about the cgroups |
596 | framework. |
597 | |
598 | Say N if unsure. |
599 | |
600 | config CGROUP_FREEZER |
601 | bool "Freezer cgroup subsystem" |
602 | help |
603 | Provides a way to freeze and unfreeze all tasks in a |
604 | cgroup. |
605 | |
606 | config CGROUP_DEVICE |
607 | bool "Device controller for cgroups" |
608 | help |
609 | Provides a cgroup implementing whitelists for devices which |
610 | a process in the cgroup can mknod or open. |
611 | |
612 | config CPUSETS |
613 | bool "Cpuset support" |
614 | help |
615 | This option will let you create and manage CPUSETs which |
616 | allow dynamically partitioning a system into sets of CPUs and |
617 | Memory Nodes and assigning tasks to run only within those sets. |
618 | This is primarily useful on large SMP or NUMA systems. |
619 | |
620 | Say N if unsure. |
621 | |
622 | config PROC_PID_CPUSET |
623 | bool "Include legacy /proc/<pid>/cpuset file" |
624 | depends on CPUSETS |
625 | default y |
626 | |
627 | config CGROUP_CPUACCT |
628 | bool "Simple CPU accounting cgroup subsystem" |
629 | help |
630 | Provides a simple Resource Controller for monitoring the |
631 | total CPU consumed by the tasks in a cgroup. |
632 | |
633 | config RESOURCE_COUNTERS |
634 | bool "Resource counters" |
635 | help |
636 | This option enables controller independent resource accounting |
637 | infrastructure that works with cgroups. |
638 | |
639 | config CGROUP_MEM_RES_CTLR |
640 | bool "Memory Resource Controller for Control Groups" |
641 | depends on RESOURCE_COUNTERS |
642 | select MM_OWNER |
643 | help |
644 | Provides a memory resource controller that manages both anonymous |
645 | memory and page cache. (See Documentation/cgroups/memory.txt) |
646 | |
647 | Note that setting this option increases fixed memory overhead |
648 | associated with each page of memory in the system. By this, |
649 | 20(40)bytes/PAGE_SIZE on 32(64)bit system will be occupied by memory |
650 | usage tracking struct at boot. Total amount of this is printed out |
651 | at boot. |
652 | |
653 | Only enable when you're ok with these trade offs and really |
654 | sure you need the memory resource controller. Even when you enable |
655 | this, you can set "cgroup_disable=memory" at your boot option to |
656 | disable memory resource controller and you can avoid overheads. |
657 | (and lose benefits of memory resource controller) |
658 | |
659 | This config option also selects MM_OWNER config option, which |
660 | could in turn add some fork/exit overhead. |
661 | |
662 | config CGROUP_MEM_RES_CTLR_SWAP |
663 | bool "Memory Resource Controller Swap Extension" |
664 | depends on CGROUP_MEM_RES_CTLR && SWAP |
665 | help |
666 | Add swap management feature to memory resource controller. When you |
667 | enable this, you can limit mem+swap usage per cgroup. In other words, |
668 | when you disable this, memory resource controller has no cares to |
669 | usage of swap...a process can exhaust all of the swap. This extension |
670 | is useful when you want to avoid exhaustion swap but this itself |
671 | adds more overheads and consumes memory for remembering information. |
672 | Especially if you use 32bit system or small memory system, please |
673 | be careful about enabling this. When memory resource controller |
674 | is disabled by boot option, this will be automatically disabled and |
675 | there will be no overhead from this. Even when you set this config=y, |
676 | if boot option "swapaccount=0" is set, swap will not be accounted. |
677 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page |
678 | size is 4096bytes, 512k per 1Gbytes of swap. |
679 | config CGROUP_MEM_RES_CTLR_SWAP_ENABLED |
680 | bool "Memory Resource Controller Swap Extension enabled by default" |
681 | depends on CGROUP_MEM_RES_CTLR_SWAP |
682 | default y |
683 | help |
684 | Memory Resource Controller Swap Extension comes with its price in |
685 | a bigger memory consumption. General purpose distribution kernels |
686 | which want to enable the feature but keep it disabled by default |
687 | and let the user enable it by swapaccount boot command line |
688 | parameter should have this option unselected. |
689 | For those who want to have the feature enabled by default should |
690 | select this option (if, for some reason, they need to disable it |
691 | then swapaccount=0 does the trick). |
692 | |
693 | config CGROUP_PERF |
694 | bool "Enable perf_event per-cpu per-container group (cgroup) monitoring" |
695 | depends on PERF_EVENTS && CGROUPS |
696 | help |
697 | This option extends the per-cpu mode to restrict monitoring to |
698 | threads which belong to the cgroup specified and run on the |
699 | designated cpu. |
700 | |
701 | Say N if unsure. |
702 | |
703 | menuconfig CGROUP_SCHED |
704 | bool "Group CPU scheduler" |
705 | depends on EXPERIMENTAL |
706 | default n |
707 | help |
708 | This feature lets CPU scheduler recognize task groups and control CPU |
709 | bandwidth allocation to such task groups. It uses cgroups to group |
710 | tasks. |
711 | |
712 | if CGROUP_SCHED |
713 | config FAIR_GROUP_SCHED |
714 | bool "Group scheduling for SCHED_OTHER" |
715 | depends on CGROUP_SCHED |
716 | default CGROUP_SCHED |
717 | |
718 | config RT_GROUP_SCHED |
719 | bool "Group scheduling for SCHED_RR/FIFO" |
720 | depends on EXPERIMENTAL |
721 | depends on CGROUP_SCHED |
722 | default n |
723 | help |
724 | This feature lets you explicitly allocate real CPU bandwidth |
725 | to task groups. If enabled, it will also make it impossible to |
726 | schedule realtime tasks for non-root users until you allocate |
727 | realtime bandwidth for them. |
728 | See Documentation/scheduler/sched-rt-group.txt for more information. |
729 | |
730 | endif #CGROUP_SCHED |
731 | |
732 | config BLK_CGROUP |
733 | tristate "Block IO controller" |
734 | depends on BLOCK |
735 | default n |
736 | ---help--- |
737 | Generic block IO controller cgroup interface. This is the common |
738 | cgroup interface which should be used by various IO controlling |
739 | policies. |
740 | |
741 | Currently, CFQ IO scheduler uses it to recognize task groups and |
742 | control disk bandwidth allocation (proportional time slice allocation) |
743 | to such task groups. It is also used by bio throttling logic in |
744 | block layer to implement upper limit in IO rates on a device. |
745 | |
746 | This option only enables generic Block IO controller infrastructure. |
747 | One needs to also enable actual IO controlling logic/policy. For |
748 | enabling proportional weight division of disk bandwidth in CFQ, set |
749 | CONFIG_CFQ_GROUP_IOSCHED=y; for enabling throttling policy, set |
750 | CONFIG_BLK_DEV_THROTTLING=y. |
751 | |
752 | See Documentation/cgroups/blkio-controller.txt for more information. |
753 | |
754 | config DEBUG_BLK_CGROUP |
755 | bool "Enable Block IO controller debugging" |
756 | depends on BLK_CGROUP |
757 | default n |
758 | ---help--- |
759 | Enable some debugging help. Currently it exports additional stat |
760 | files in a cgroup which can be useful for debugging. |
761 | |
762 | endif # CGROUPS |
763 | |
764 | menuconfig NAMESPACES |
765 | bool "Namespaces support" if EXPERT |
766 | default !EXPERT |
767 | help |
768 | Provides the way to make tasks work with different objects using |
769 | the same id. For example same IPC id may refer to different objects |
770 | or same user id or pid may refer to different tasks when used in |
771 | different namespaces. |
772 | |
773 | if NAMESPACES |
774 | |
775 | config UTS_NS |
776 | bool "UTS namespace" |
777 | default y |
778 | help |
779 | In this namespace tasks see different info provided with the |
780 | uname() system call |
781 | |
782 | config IPC_NS |
783 | bool "IPC namespace" |
784 | depends on (SYSVIPC || POSIX_MQUEUE) |
785 | default y |
786 | help |
787 | In this namespace tasks work with IPC ids which correspond to |
788 | different IPC objects in different namespaces. |
789 | |
790 | config USER_NS |
791 | bool "User namespace (EXPERIMENTAL)" |
792 | depends on EXPERIMENTAL |
793 | default y |
794 | help |
795 | This allows containers, i.e. vservers, to use user namespaces |
796 | to provide different user info for different servers. |
797 | If unsure, say N. |
798 | |
799 | config PID_NS |
800 | bool "PID Namespaces" |
801 | default y |
802 | help |
803 | Support process id namespaces. This allows having multiple |
804 | processes with the same pid as long as they are in different |
805 | pid namespaces. This is a building block of containers. |
806 | |
807 | config NET_NS |
808 | bool "Network namespace" |
809 | depends on NET |
810 | default y |
811 | help |
812 | Allow user space to create what appear to be multiple instances |
813 | of the network stack. |
814 | |
815 | endif # NAMESPACES |
816 | |
817 | config SCHED_AUTOGROUP |
818 | bool "Automatic process group scheduling" |
819 | select EVENTFD |
820 | select CGROUPS |
821 | select CGROUP_SCHED |
822 | select FAIR_GROUP_SCHED |
823 | help |
824 | This option optimizes the scheduler for common desktop workloads by |
825 | automatically creating and populating task groups. This separation |
826 | of workloads isolates aggressive CPU burners (like build jobs) from |
827 | desktop applications. Task group autogeneration is currently based |
828 | upon task session. |
829 | |
830 | config MM_OWNER |
831 | bool |
832 | |
833 | config SYSFS_DEPRECATED |
834 | bool "Enable deprecated sysfs features to support old userspace tools" |
835 | depends on SYSFS |
836 | default n |
837 | help |
838 | This option adds code that switches the layout of the "block" class |
839 | devices, to not show up in /sys/class/block/, but only in |
840 | /sys/block/. |
841 | |
842 | This switch is only active when the sysfs.deprecated=1 boot option is |
843 | passed or the SYSFS_DEPRECATED_V2 option is set. |
844 | |
845 | This option allows new kernels to run on old distributions and tools, |
846 | which might get confused by /sys/class/block/. Since 2007/2008 all |
847 | major distributions and tools handle this just fine. |
848 | |
849 | Recent distributions and userspace tools after 2009/2010 depend on |
850 | the existence of /sys/class/block/, and will not work with this |
851 | option enabled. |
852 | |
853 | Only if you are using a new kernel on an old distribution, you might |
854 | need to say Y here. |
855 | |
856 | config SYSFS_DEPRECATED_V2 |
857 | bool "Enable deprecated sysfs features by default" |
858 | default n |
859 | depends on SYSFS |
860 | depends on SYSFS_DEPRECATED |
861 | help |
862 | Enable deprecated sysfs by default. |
863 | |
864 | See the CONFIG_SYSFS_DEPRECATED option for more details about this |
865 | option. |
866 | |
867 | Only if you are using a new kernel on an old distribution, you might |
868 | need to say Y here. Even then, odds are you would not need it |
869 | enabled, you can always pass the boot option if absolutely necessary. |
870 | |
871 | config RELAY |
872 | bool "Kernel->user space relay support (formerly relayfs)" |
873 | help |
874 | This option enables support for relay interface support in |
875 | certain file systems (such as debugfs). |
876 | It is designed to provide an efficient mechanism for tools and |
877 | facilities to relay large amounts of data from kernel space to |
878 | user space. |
879 | |
880 | If unsure, say N. |
881 | |
882 | config BLK_DEV_INITRD |
883 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" |
884 | depends on BROKEN || !FRV |
885 | help |
886 | The initial RAM filesystem is a ramfs which is loaded by the |
887 | boot loader (loadlin or lilo) and that is mounted as root |
888 | before the normal boot procedure. It is typically used to |
889 | load modules needed to mount the "real" root file system, |
890 | etc. See <file:Documentation/initrd.txt> for details. |
891 | |
892 | If RAM disk support (BLK_DEV_RAM) is also included, this |
893 | also enables initial RAM disk (initrd) support and adds |
894 | 15 Kbytes (more on some other architectures) to the kernel size. |
895 | |
896 | If unsure say Y. |
897 | |
898 | if BLK_DEV_INITRD |
899 | |
900 | source "usr/Kconfig" |
901 | |
902 | endif |
903 | |
904 | config CC_OPTIMIZE_FOR_SIZE |
905 | bool "Optimize for size" |
906 | help |
907 | Enabling this option will pass "-Os" instead of "-O2" to gcc |
908 | resulting in a smaller kernel. |
909 | |
910 | If unsure, say Y. |
911 | |
912 | config SYSCTL |
913 | bool |
914 | |
915 | config ANON_INODES |
916 | bool |
917 | |
918 | menuconfig EXPERT |
919 | bool "Configure standard kernel features (expert users)" |
920 | # Unhide debug options, to make the on-by-default options visible |
921 | select DEBUG_KERNEL |
922 | help |
923 | This option allows certain base kernel options and settings |
924 | to be disabled or tweaked. This is for specialized |
925 | environments which can tolerate a "non-standard" kernel. |
926 | Only use this if you really know what you are doing. |
927 | |
928 | config UID16 |
929 | bool "Enable 16-bit UID system calls" if EXPERT |
930 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) |
931 | default y |
932 | help |
933 | This enables the legacy 16-bit UID syscall wrappers. |
934 | |
935 | config SYSCTL_SYSCALL |
936 | bool "Sysctl syscall support" if EXPERT |
937 | depends on PROC_SYSCTL |
938 | default y |
939 | select SYSCTL |
940 | ---help--- |
941 | sys_sysctl uses binary paths that have been found challenging |
942 | to properly maintain and use. The interface in /proc/sys |
943 | using paths with ascii names is now the primary path to this |
944 | information. |
945 | |
946 | Almost nothing using the binary sysctl interface so if you are |
947 | trying to save some space it is probably safe to disable this, |
948 | making your kernel marginally smaller. |
949 | |
950 | If unsure say Y here. |
951 | |
952 | config KALLSYMS |
953 | bool "Load all symbols for debugging/ksymoops" if EXPERT |
954 | default y |
955 | help |
956 | Say Y here to let the kernel print out symbolic crash information and |
957 | symbolic stack backtraces. This increases the size of the kernel |
958 | somewhat, as all symbols have to be loaded into the kernel image. |
959 | |
960 | config KALLSYMS_ALL |
961 | bool "Include all symbols in kallsyms" |
962 | depends on DEBUG_KERNEL && KALLSYMS |
963 | help |
964 | Normally kallsyms only contains the symbols of functions for nicer |
965 | OOPS messages and backtraces (i.e., symbols from the text and inittext |
966 | sections). This is sufficient for most cases. And only in very rare |
967 | cases (e.g., when a debugger is used) all symbols are required (e.g., |
968 | names of variables from the data sections, etc). |
969 | |
970 | This option makes sure that all symbols are loaded into the kernel |
971 | image (i.e., symbols from all sections) in cost of increased kernel |
972 | size (depending on the kernel configuration, it may be 300KiB or |
973 | something like this). |
974 | |
975 | Say N unless you really need all symbols. |
976 | |
977 | config HOTPLUG |
978 | bool "Support for hot-pluggable devices" if EXPERT |
979 | default y |
980 | help |
981 | This option is provided for the case where no hotplug or uevent |
982 | capabilities is wanted by the kernel. You should only consider |
983 | disabling this option for embedded systems that do not use modules, a |
984 | dynamic /dev tree, or dynamic device discovery. Just say Y. |
985 | |
986 | config PRINTK |
987 | default y |
988 | bool "Enable support for printk" if EXPERT |
989 | help |
990 | This option enables normal printk support. Removing it |
991 | eliminates most of the message strings from the kernel image |
992 | and makes the kernel more or less silent. As this makes it |
993 | very difficult to diagnose system problems, saying N here is |
994 | strongly discouraged. |
995 | |
996 | config BUG |
997 | bool "BUG() support" if EXPERT |
998 | default y |
999 | help |
1000 | Disabling this option eliminates support for BUG and WARN, reducing |
1001 | the size of your kernel image and potentially quietly ignoring |
1002 | numerous fatal conditions. You should only consider disabling this |
1003 | option for embedded systems with no facilities for reporting errors. |
1004 | Just say Y. |
1005 | |
1006 | config ELF_CORE |
1007 | default y |
1008 | bool "Enable ELF core dumps" if EXPERT |
1009 | help |
1010 | Enable support for generating core dumps. Disabling saves about 4k. |
1011 | |
1012 | |
1013 | config PCSPKR_PLATFORM |
1014 | bool "Enable PC-Speaker support" if EXPERT |
1015 | depends on HAVE_PCSPKR_PLATFORM |
1016 | select I8253_LOCK |
1017 | default y |
1018 | help |
1019 | This option allows to disable the internal PC-Speaker |
1020 | support, saving some memory. |
1021 | |
1022 | config HAVE_PCSPKR_PLATFORM |
1023 | bool |
1024 | |
1025 | config BASE_FULL |
1026 | default y |
1027 | bool "Enable full-sized data structures for core" if EXPERT |
1028 | help |
1029 | Disabling this option reduces the size of miscellaneous core |
1030 | kernel data structures. This saves memory on small machines, |
1031 | but may reduce performance. |
1032 | |
1033 | config FUTEX |
1034 | bool "Enable futex support" if EXPERT |
1035 | default y |
1036 | select RT_MUTEXES |
1037 | help |
1038 | Disabling this option will cause the kernel to be built without |
1039 | support for "fast userspace mutexes". The resulting kernel may not |
1040 | run glibc-based applications correctly. |
1041 | |
1042 | config EPOLL |
1043 | bool "Enable eventpoll support" if EXPERT |
1044 | default y |
1045 | select ANON_INODES |
1046 | help |
1047 | Disabling this option will cause the kernel to be built without |
1048 | support for epoll family of system calls. |
1049 | |
1050 | config SIGNALFD |
1051 | bool "Enable signalfd() system call" if EXPERT |
1052 | select ANON_INODES |
1053 | default y |
1054 | help |
1055 | Enable the signalfd() system call that allows to receive signals |
1056 | on a file descriptor. |
1057 | |
1058 | If unsure, say Y. |
1059 | |
1060 | config TIMERFD |
1061 | bool "Enable timerfd() system call" if EXPERT |
1062 | select ANON_INODES |
1063 | default y |
1064 | help |
1065 | Enable the timerfd() system call that allows to receive timer |
1066 | events on a file descriptor. |
1067 | |
1068 | If unsure, say Y. |
1069 | |
1070 | config EVENTFD |
1071 | bool "Enable eventfd() system call" if EXPERT |
1072 | select ANON_INODES |
1073 | default y |
1074 | help |
1075 | Enable the eventfd() system call that allows to receive both |
1076 | kernel notification (ie. KAIO) or userspace notifications. |
1077 | |
1078 | If unsure, say Y. |
1079 | |
1080 | config SHMEM |
1081 | bool "Use full shmem filesystem" if EXPERT |
1082 | default y |
1083 | depends on MMU |
1084 | help |
1085 | The shmem is an internal filesystem used to manage shared memory. |
1086 | It is backed by swap and manages resource limits. It is also exported |
1087 | to userspace as tmpfs if TMPFS is enabled. Disabling this |
1088 | option replaces shmem and tmpfs with the much simpler ramfs code, |
1089 | which may be appropriate on small systems without swap. |
1090 | |
1091 | config AIO |
1092 | bool "Enable AIO support" if EXPERT |
1093 | default y |
1094 | help |
1095 | This option enables POSIX asynchronous I/O which may by used |
1096 | by some high performance threaded applications. Disabling |
1097 | this option saves about 7k. |
1098 | |
1099 | config EMBEDDED |
1100 | bool "Embedded system" |
1101 | select EXPERT |
1102 | help |
1103 | This option should be enabled if compiling the kernel for |
1104 | an embedded system so certain expert options are available |
1105 | for configuration. |
1106 | |
1107 | config HAVE_PERF_EVENTS |
1108 | bool |
1109 | help |
1110 | See tools/perf/design.txt for details. |
1111 | |
1112 | config PERF_USE_VMALLOC |
1113 | bool |
1114 | help |
1115 | See tools/perf/design.txt for details |
1116 | |
1117 | menu "Kernel Performance Events And Counters" |
1118 | |
1119 | config PERF_EVENTS |
1120 | bool "Kernel performance events and counters" |
1121 | default y if (PROFILING || PERF_COUNTERS) |
1122 | depends on HAVE_PERF_EVENTS |
1123 | select ANON_INODES |
1124 | select IRQ_WORK |
1125 | help |
1126 | Enable kernel support for various performance events provided |
1127 | by software and hardware. |
1128 | |
1129 | Software events are supported either built-in or via the |
1130 | use of generic tracepoints. |
1131 | |
1132 | Most modern CPUs support performance events via performance |
1133 | counter registers. These registers count the number of certain |
1134 | types of hw events: such as instructions executed, cachemisses |
1135 | suffered, or branches mis-predicted - without slowing down the |
1136 | kernel or applications. These registers can also trigger interrupts |
1137 | when a threshold number of events have passed - and can thus be |
1138 | used to profile the code that runs on that CPU. |
1139 | |
1140 | The Linux Performance Event subsystem provides an abstraction of |
1141 | these software and hardware event capabilities, available via a |
1142 | system call and used by the "perf" utility in tools/perf/. It |
1143 | provides per task and per CPU counters, and it provides event |
1144 | capabilities on top of those. |
1145 | |
1146 | Say Y if unsure. |
1147 | |
1148 | config PERF_COUNTERS |
1149 | bool "Kernel performance counters (old config option)" |
1150 | depends on HAVE_PERF_EVENTS |
1151 | help |
1152 | This config has been obsoleted by the PERF_EVENTS |
1153 | config option - please see that one for details. |
1154 | |
1155 | It has no effect on the kernel whether you enable |
1156 | it or not, it is a compatibility placeholder. |
1157 | |
1158 | Say N if unsure. |
1159 | |
1160 | config DEBUG_PERF_USE_VMALLOC |
1161 | default n |
1162 | bool "Debug: use vmalloc to back perf mmap() buffers" |
1163 | depends on PERF_EVENTS && DEBUG_KERNEL |
1164 | select PERF_USE_VMALLOC |
1165 | help |
1166 | Use vmalloc memory to back perf mmap() buffers. |
1167 | |
1168 | Mostly useful for debugging the vmalloc code on platforms |
1169 | that don't require it. |
1170 | |
1171 | Say N if unsure. |
1172 | |
1173 | endmenu |
1174 | |
1175 | config VM_EVENT_COUNTERS |
1176 | default y |
1177 | bool "Enable VM event counters for /proc/vmstat" if EXPERT |
1178 | help |
1179 | VM event counters are needed for event counts to be shown. |
1180 | This option allows the disabling of the VM event counters |
1181 | on EXPERT systems. /proc/vmstat will only show page counts |
1182 | if VM event counters are disabled. |
1183 | |
1184 | config PCI_QUIRKS |
1185 | default y |
1186 | bool "Enable PCI quirk workarounds" if EXPERT |
1187 | depends on PCI |
1188 | help |
1189 | This enables workarounds for various PCI chipset |
1190 | bugs/quirks. Disable this only if your target machine is |
1191 | unaffected by PCI quirks. |
1192 | |
1193 | config SLUB_DEBUG |
1194 | default y |
1195 | bool "Enable SLUB debugging support" if EXPERT |
1196 | depends on SLUB && SYSFS |
1197 | help |
1198 | SLUB has extensive debug support features. Disabling these can |
1199 | result in significant savings in code size. This also disables |
1200 | SLUB sysfs support. /sys/slab will not exist and there will be |
1201 | no support for cache validation etc. |
1202 | |
1203 | config COMPAT_BRK |
1204 | bool "Disable heap randomization" |
1205 | default y |
1206 | help |
1207 | Randomizing heap placement makes heap exploits harder, but it |
1208 | also breaks ancient binaries (including anything libc5 based). |
1209 | This option changes the bootup default to heap randomization |
1210 | disabled, and can be overridden at runtime by setting |
1211 | /proc/sys/kernel/randomize_va_space to 2. |
1212 | |
1213 | On non-ancient distros (post-2000 ones) N is usually a safe choice. |
1214 | |
1215 | choice |
1216 | prompt "Choose SLAB allocator" |
1217 | default SLUB |
1218 | help |
1219 | This option allows to select a slab allocator. |
1220 | |
1221 | config SLAB |
1222 | bool "SLAB" |
1223 | help |
1224 | The regular slab allocator that is established and known to work |
1225 | well in all environments. It organizes cache hot objects in |
1226 | per cpu and per node queues. |
1227 | |
1228 | config SLUB |
1229 | bool "SLUB (Unqueued Allocator)" |
1230 | help |
1231 | SLUB is a slab allocator that minimizes cache line usage |
1232 | instead of managing queues of cached objects (SLAB approach). |
1233 | Per cpu caching is realized using slabs of objects instead |
1234 | of queues of objects. SLUB can use memory efficiently |
1235 | and has enhanced diagnostics. SLUB is the default choice for |
1236 | a slab allocator. |
1237 | |
1238 | config SLOB |
1239 | depends on EXPERT |
1240 | bool "SLOB (Simple Allocator)" |
1241 | help |
1242 | SLOB replaces the stock allocator with a drastically simpler |
1243 | allocator. SLOB is generally more space efficient but |
1244 | does not perform as well on large systems. |
1245 | |
1246 | endchoice |
1247 | |
1248 | config MMAP_ALLOW_UNINITIALIZED |
1249 | bool "Allow mmapped anonymous memory to be uninitialized" |
1250 | depends on EXPERT && !MMU |
1251 | default n |
1252 | help |
1253 | Normally, and according to the Linux spec, anonymous memory obtained |
1254 | from mmap() has it's contents cleared before it is passed to |
1255 | userspace. Enabling this config option allows you to request that |
1256 | mmap() skip that if it is given an MAP_UNINITIALIZED flag, thus |
1257 | providing a huge performance boost. If this option is not enabled, |
1258 | then the flag will be ignored. |
1259 | |
1260 | This is taken advantage of by uClibc's malloc(), and also by |
1261 | ELF-FDPIC binfmt's brk and stack allocator. |
1262 | |
1263 | Because of the obvious security issues, this option should only be |
1264 | enabled on embedded devices where you control what is run in |
1265 | userspace. Since that isn't generally a problem on no-MMU systems, |
1266 | it is normally safe to say Y here. |
1267 | |
1268 | See Documentation/nommu-mmap.txt for more information. |
1269 | |
1270 | config PROFILING |
1271 | bool "Profiling support" |
1272 | help |
1273 | Say Y here to enable the extended profiling support mechanisms used |
1274 | by profilers such as OProfile. |
1275 | |
1276 | # |
1277 | # Place an empty function call at each tracepoint site. Can be |
1278 | # dynamically changed for a probe function. |
1279 | # |
1280 | config TRACEPOINTS |
1281 | bool |
1282 | |
1283 | source "arch/Kconfig" |
1284 | |
1285 | endmenu # General setup |
1286 | |
1287 | config HAVE_GENERIC_DMA_COHERENT |
1288 | bool |
1289 | default n |
1290 | |
1291 | config SLABINFO |
1292 | bool |
1293 | depends on PROC_FS |
1294 | depends on SLAB || SLUB_DEBUG |
1295 | default y |
1296 | |
1297 | config RT_MUTEXES |
1298 | boolean |
1299 | |
1300 | config BASE_SMALL |
1301 | int |
1302 | default 0 if BASE_FULL |
1303 | default 1 if !BASE_FULL |
1304 | |
1305 | menuconfig MODULES |
1306 | bool "Enable loadable module support" |
1307 | help |
1308 | Kernel modules are small pieces of compiled code which can |
1309 | be inserted in the running kernel, rather than being |
1310 | permanently built into the kernel. You use the "modprobe" |
1311 | tool to add (and sometimes remove) them. If you say Y here, |
1312 | many parts of the kernel can be built as modules (by |
1313 | answering M instead of Y where indicated): this is most |
1314 | useful for infrequently used options which are not required |
1315 | for booting. For more information, see the man pages for |
1316 | modprobe, lsmod, modinfo, insmod and rmmod. |
1317 | |
1318 | If you say Y here, you will need to run "make |
1319 | modules_install" to put the modules under /lib/modules/ |
1320 | where modprobe can find them (you may need to be root to do |
1321 | this). |
1322 | |
1323 | If unsure, say Y. |
1324 | |
1325 | if MODULES |
1326 | |
1327 | config MODULE_FORCE_LOAD |
1328 | bool "Forced module loading" |
1329 | default n |
1330 | help |
1331 | Allow loading of modules without version information (ie. modprobe |
1332 | --force). Forced module loading sets the 'F' (forced) taint flag and |
1333 | is usually a really bad idea. |
1334 | |
1335 | config MODULE_UNLOAD |
1336 | bool "Module unloading" |
1337 | help |
1338 | Without this option you will not be able to unload any |
1339 | modules (note that some modules may not be unloadable |
1340 | anyway), which makes your kernel smaller, faster |
1341 | and simpler. If unsure, say Y. |
1342 | |
1343 | config MODULE_FORCE_UNLOAD |
1344 | bool "Forced module unloading" |
1345 | depends on MODULE_UNLOAD && EXPERIMENTAL |
1346 | help |
1347 | This option allows you to force a module to unload, even if the |
1348 | kernel believes it is unsafe: the kernel will remove the module |
1349 | without waiting for anyone to stop using it (using the -f option to |
1350 | rmmod). This is mainly for kernel developers and desperate users. |
1351 | If unsure, say N. |
1352 | |
1353 | config MODVERSIONS |
1354 | bool "Module versioning support" |
1355 | help |
1356 | Usually, you have to use modules compiled with your kernel. |
1357 | Saying Y here makes it sometimes possible to use modules |
1358 | compiled for different kernels, by adding enough information |
1359 | to the modules to (hopefully) spot any changes which would |
1360 | make them incompatible with the kernel you are running. If |
1361 | unsure, say N. |
1362 | |
1363 | config MODULE_SRCVERSION_ALL |
1364 | bool "Source checksum for all modules" |
1365 | help |
1366 | Modules which contain a MODULE_VERSION get an extra "srcversion" |
1367 | field inserted into their modinfo section, which contains a |
1368 | sum of the source files which made it. This helps maintainers |
1369 | see exactly which source was used to build a module (since |
1370 | others sometimes change the module source without updating |
1371 | the version). With this option, such a "srcversion" field |
1372 | will be created for all modules. If unsure, say N. |
1373 | |
1374 | endif # MODULES |
1375 | |
1376 | config INIT_ALL_POSSIBLE |
1377 | bool |
1378 | help |
1379 | Back when each arch used to define their own cpu_online_map and |
1380 | cpu_possible_map, some of them chose to initialize cpu_possible_map |
1381 | with all 1s, and others with all 0s. When they were centralised, |
1382 | it was better to provide this option than to break all the archs |
1383 | and have several arch maintainers pursuing me down dark alleys. |
1384 | |
1385 | config STOP_MACHINE |
1386 | bool |
1387 | default y |
1388 | depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU |
1389 | help |
1390 | Need stop_machine() primitive. |
1391 | |
1392 | source "block/Kconfig" |
1393 | |
1394 | config PREEMPT_NOTIFIERS |
1395 | bool |
1396 | |
1397 | config PADATA |
1398 | depends on SMP |
1399 | bool |
1400 | |
1401 | source "kernel/Kconfig.locks" |
1402 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9