Root/
Source at commit be977234bfb4a6dca8a39e7c52165e4cd536ad71 created 12 years 9 months ago. By Lars-Peter Clausen, jz4740: Fix compile error | |
---|---|
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 | default y |
23 | |
24 | config HAVE_IRQ_WORK |
25 | bool |
26 | |
27 | config IRQ_WORK |
28 | bool |
29 | depends on HAVE_IRQ_WORK |
30 | |
31 | menu "General setup" |
32 | |
33 | config EXPERIMENTAL |
34 | bool "Prompt for development and/or incomplete code/drivers" |
35 | ---help--- |
36 | Some of the various things that Linux supports (such as network |
37 | drivers, file systems, network protocols, etc.) can be in a state |
38 | of development where the functionality, stability, or the level of |
39 | testing is not yet high enough for general use. This is usually |
40 | known as the "alpha-test" phase among developers. If a feature is |
41 | currently in alpha-test, then the developers usually discourage |
42 | uninformed widespread use of this feature by the general public to |
43 | avoid "Why doesn't this work?" type mail messages. However, active |
44 | testing and use of these systems is welcomed. Just be aware that it |
45 | may not meet the normal level of reliability or it may fail to work |
46 | in some special cases. Detailed bug reports from people familiar |
47 | with the kernel internals are usually welcomed by the developers |
48 | (before submitting bug reports, please read the documents |
49 | <file:README>, <file:MAINTAINERS>, <file:REPORTING-BUGS>, |
50 | <file:Documentation/BUG-HUNTING>, and |
51 | <file:Documentation/oops-tracing.txt> in the kernel source). |
52 | |
53 | This option will also make obsoleted drivers available. These are |
54 | drivers that have been replaced by something else, and/or are |
55 | scheduled to be removed in a future kernel release. |
56 | |
57 | Unless you intend to help test and develop a feature or driver that |
58 | falls into this category, or you have a situation that requires |
59 | using these features, you should probably say N here, which will |
60 | cause the configurator to present you with fewer choices. If |
61 | you say Y here, you will be offered the choice of using features or |
62 | drivers that are currently considered to be in the alpha-test phase. |
63 | |
64 | config BROKEN |
65 | bool |
66 | |
67 | config BROKEN_ON_SMP |
68 | bool |
69 | depends on BROKEN || !SMP |
70 | default y |
71 | |
72 | config INIT_ENV_ARG_LIMIT |
73 | int |
74 | default 32 if !UML |
75 | default 128 if UML |
76 | help |
77 | Maximum of each of the number of arguments and environment |
78 | variables passed to init from the kernel command line. |
79 | |
80 | |
81 | config CROSS_COMPILE |
82 | string "Cross-compiler tool prefix" |
83 | help |
84 | Same as running 'make CROSS_COMPILE=prefix-' but stored for |
85 | default make runs in this kernel build directory. You don't |
86 | need to set this unless you want the configured kernel build |
87 | directory to select the cross-compiler automatically. |
88 | |
89 | config LOCALVERSION |
90 | string "Local version - append to kernel release" |
91 | help |
92 | Append an extra string to the end of your kernel version. |
93 | This will show up when you type uname, for example. |
94 | The string you set here will be appended after the contents of |
95 | any files with a filename matching localversion* in your |
96 | object and source tree, in that order. Your total string can |
97 | be a maximum of 64 characters. |
98 | |
99 | config LOCALVERSION_AUTO |
100 | bool "Automatically append version information to the version string" |
101 | default y |
102 | help |
103 | This will try to automatically determine if the current tree is a |
104 | release tree by looking for git tags that belong to the current |
105 | top of tree revision. |
106 | |
107 | A string of the format -gxxxxxxxx will be added to the localversion |
108 | if a git-based tree is found. The string generated by this will be |
109 | appended after any matching localversion* files, and after the value |
110 | set in CONFIG_LOCALVERSION. |
111 | |
112 | (The actual string used here is the first eight characters produced |
113 | by running the command: |
114 | |
115 | $ git rev-parse --verify HEAD |
116 | |
117 | which is done within the script "scripts/setlocalversion".) |
118 | |
119 | config HAVE_KERNEL_GZIP |
120 | bool |
121 | |
122 | config HAVE_KERNEL_BZIP2 |
123 | bool |
124 | |
125 | config HAVE_KERNEL_LZMA |
126 | bool |
127 | |
128 | config HAVE_KERNEL_XZ |
129 | bool |
130 | |
131 | config HAVE_KERNEL_LZO |
132 | bool |
133 | |
134 | choice |
135 | prompt "Kernel compression mode" |
136 | default KERNEL_GZIP |
137 | depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO |
138 | help |
139 | The linux kernel is a kind of self-extracting executable. |
140 | Several compression algorithms are available, which differ |
141 | in efficiency, compression and decompression speed. |
142 | Compression speed is only relevant when building a kernel. |
143 | Decompression speed is relevant at each boot. |
144 | |
145 | If you have any problems with bzip2 or lzma compressed |
146 | kernels, mail me (Alain Knaff) <alain@knaff.lu>. (An older |
147 | version of this functionality (bzip2 only), for 2.4, was |
148 | supplied by Christian Ludwig) |
149 | |
150 | High compression options are mostly useful for users, who |
151 | are low on disk space (embedded systems), but for whom ram |
152 | size matters less. |
153 | |
154 | If in doubt, select 'gzip' |
155 | |
156 | config KERNEL_GZIP |
157 | bool "Gzip" |
158 | depends on HAVE_KERNEL_GZIP |
159 | help |
160 | The old and tried gzip compression. It provides a good balance |
161 | between compression ratio and decompression speed. |
162 | |
163 | config KERNEL_BZIP2 |
164 | bool "Bzip2" |
165 | depends on HAVE_KERNEL_BZIP2 |
166 | help |
167 | Its compression ratio and speed is intermediate. |
168 | Decompression speed is slowest among the three. The kernel |
169 | size is about 10% smaller with bzip2, in comparison to gzip. |
170 | Bzip2 uses a large amount of memory. For modern kernels you |
171 | will need at least 8MB RAM or more for booting. |
172 | |
173 | config KERNEL_LZMA |
174 | bool "LZMA" |
175 | depends on HAVE_KERNEL_LZMA |
176 | help |
177 | The most recent compression algorithm. |
178 | Its ratio is best, decompression speed is between the other |
179 | two. Compression is slowest. The kernel size is about 33% |
180 | smaller with LZMA in comparison to gzip. |
181 | |
182 | config KERNEL_XZ |
183 | bool "XZ" |
184 | depends on HAVE_KERNEL_XZ |
185 | help |
186 | XZ uses the LZMA2 algorithm and instruction set specific |
187 | BCJ filters which can improve compression ratio of executable |
188 | code. The size of the kernel is about 30% smaller with XZ in |
189 | comparison to gzip. On architectures for which there is a BCJ |
190 | filter (i386, x86_64, ARM, IA-64, PowerPC, and SPARC), XZ |
191 | will create a few percent smaller kernel than plain LZMA. |
192 | |
193 | The speed is about the same as with LZMA: The decompression |
194 | speed of XZ is better than that of bzip2 but worse than gzip |
195 | and LZO. Compression is slow. |
196 | |
197 | config KERNEL_LZO |
198 | bool "LZO" |
199 | depends on HAVE_KERNEL_LZO |
200 | help |
201 | Its compression ratio is the poorest among the 4. The kernel |
202 | size is about 10% bigger than gzip; however its speed |
203 | (both compression and decompression) is the fastest. |
204 | |
205 | endchoice |
206 | |
207 | config SWAP |
208 | bool "Support for paging of anonymous memory (swap)" |
209 | depends on MMU && BLOCK |
210 | default y |
211 | help |
212 | This option allows you to choose whether you want to have support |
213 | for so called swap devices or swap files in your kernel that are |
214 | used to provide more virtual memory than the actual RAM present |
215 | in your computer. If unsure say Y. |
216 | |
217 | config SYSVIPC |
218 | bool "System V IPC" |
219 | ---help--- |
220 | Inter Process Communication is a suite of library functions and |
221 | system calls which let processes (running programs) synchronize and |
222 | exchange information. It is generally considered to be a good thing, |
223 | and some programs won't run unless you say Y here. In particular, if |
224 | you want to run the DOS emulator dosemu under Linux (read the |
225 | DOSEMU-HOWTO, available from <http://www.tldp.org/docs.html#howto>), |
226 | you'll need to say Y here. |
227 | |
228 | You can find documentation about IPC with "info ipc" and also in |
229 | section 6.4 of the Linux Programmer's Guide, available from |
230 | <http://www.tldp.org/guides.html>. |
231 | |
232 | config SYSVIPC_SYSCTL |
233 | bool |
234 | depends on SYSVIPC |
235 | depends on SYSCTL |
236 | default y |
237 | |
238 | config POSIX_MQUEUE |
239 | bool "POSIX Message Queues" |
240 | depends on NET && EXPERIMENTAL |
241 | ---help--- |
242 | POSIX variant of message queues is a part of IPC. In POSIX message |
243 | queues every message has a priority which decides about succession |
244 | of receiving it by a process. If you want to compile and run |
245 | programs written e.g. for Solaris with use of its POSIX message |
246 | queues (functions mq_*) say Y here. |
247 | |
248 | POSIX message queues are visible as a filesystem called 'mqueue' |
249 | and can be mounted somewhere if you want to do filesystem |
250 | operations on message queues. |
251 | |
252 | If unsure, say Y. |
253 | |
254 | config POSIX_MQUEUE_SYSCTL |
255 | bool |
256 | depends on POSIX_MQUEUE |
257 | depends on SYSCTL |
258 | default y |
259 | |
260 | config BSD_PROCESS_ACCT |
261 | bool "BSD Process Accounting" |
262 | help |
263 | If you say Y here, a user level program will be able to instruct the |
264 | kernel (via a special system call) to write process accounting |
265 | information to a file: whenever a process exits, information about |
266 | that process will be appended to the file by the kernel. The |
267 | information includes things such as creation time, owning user, |
268 | command name, memory usage, controlling terminal etc. (the complete |
269 | list is in the struct acct in <file:include/linux/acct.h>). It is |
270 | up to the user level program to do useful things with this |
271 | information. This is generally a good idea, so say Y. |
272 | |
273 | config BSD_PROCESS_ACCT_V3 |
274 | bool "BSD Process Accounting version 3 file format" |
275 | depends on BSD_PROCESS_ACCT |
276 | default n |
277 | help |
278 | If you say Y here, the process accounting information is written |
279 | in a new file format that also logs the process IDs of each |
280 | process and it's parent. Note that this file format is incompatible |
281 | with previous v0/v1/v2 file formats, so you will need updated tools |
282 | for processing it. A preliminary version of these tools is available |
283 | at <http://www.gnu.org/software/acct/>. |
284 | |
285 | config FHANDLE |
286 | bool "open by fhandle syscalls" |
287 | select EXPORTFS |
288 | help |
289 | If you say Y here, a user level program will be able to map |
290 | file names to handle and then later use the handle for |
291 | different file system operations. This is useful in implementing |
292 | userspace file servers, which now track files using handles instead |
293 | of names. The handle would remain the same even if file names |
294 | get renamed. Enables open_by_handle_at(2) and name_to_handle_at(2) |
295 | syscalls. |
296 | |
297 | config TASKSTATS |
298 | bool "Export task/process statistics through netlink (EXPERIMENTAL)" |
299 | depends on NET |
300 | default n |
301 | help |
302 | Export selected statistics for tasks/processes through the |
303 | generic netlink interface. Unlike BSD process accounting, the |
304 | statistics are available during the lifetime of tasks/processes as |
305 | responses to commands. Like BSD accounting, they are sent to user |
306 | space on task exit. |
307 | |
308 | Say N if unsure. |
309 | |
310 | config TASK_DELAY_ACCT |
311 | bool "Enable per-task delay accounting (EXPERIMENTAL)" |
312 | depends on TASKSTATS |
313 | help |
314 | Collect information on time spent by a task waiting for system |
315 | resources like cpu, synchronous block I/O completion and swapping |
316 | in pages. Such statistics can help in setting a task's priorities |
317 | relative to other tasks for cpu, io, rss limits etc. |
318 | |
319 | Say N if unsure. |
320 | |
321 | config TASK_XACCT |
322 | bool "Enable extended accounting over taskstats (EXPERIMENTAL)" |
323 | depends on TASKSTATS |
324 | help |
325 | Collect extended task accounting data and send the data |
326 | to userland for processing over the taskstats interface. |
327 | |
328 | Say N if unsure. |
329 | |
330 | config TASK_IO_ACCOUNTING |
331 | bool "Enable per-task storage I/O accounting (EXPERIMENTAL)" |
332 | depends on TASK_XACCT |
333 | help |
334 | Collect information on the number of bytes of storage I/O which this |
335 | task has caused. |
336 | |
337 | Say N if unsure. |
338 | |
339 | config AUDIT |
340 | bool "Auditing support" |
341 | depends on NET |
342 | help |
343 | Enable auditing infrastructure that can be used with another |
344 | kernel subsystem, such as SELinux (which requires this for |
345 | logging of avc messages output). Does not do system-call |
346 | auditing without CONFIG_AUDITSYSCALL. |
347 | |
348 | config AUDITSYSCALL |
349 | bool "Enable system-call auditing support" |
350 | depends on AUDIT && (X86 || PPC || S390 || IA64 || UML || SPARC64 || SUPERH) |
351 | default y if SECURITY_SELINUX |
352 | help |
353 | Enable low-overhead system-call auditing infrastructure that |
354 | can be used independently or with another kernel subsystem, |
355 | such as SELinux. |
356 | |
357 | config AUDIT_WATCH |
358 | def_bool y |
359 | depends on AUDITSYSCALL |
360 | select FSNOTIFY |
361 | |
362 | config AUDIT_TREE |
363 | def_bool y |
364 | depends on AUDITSYSCALL |
365 | select FSNOTIFY |
366 | |
367 | source "kernel/irq/Kconfig" |
368 | |
369 | menu "RCU Subsystem" |
370 | |
371 | choice |
372 | prompt "RCU Implementation" |
373 | default TREE_RCU |
374 | |
375 | config TREE_RCU |
376 | bool "Tree-based hierarchical RCU" |
377 | depends on !PREEMPT && SMP |
378 | help |
379 | This option selects the RCU implementation that is |
380 | designed for very large SMP system with hundreds or |
381 | thousands of CPUs. It also scales down nicely to |
382 | smaller systems. |
383 | |
384 | config TREE_PREEMPT_RCU |
385 | bool "Preemptible tree-based hierarchical RCU" |
386 | depends on PREEMPT |
387 | help |
388 | This option selects the RCU implementation that is |
389 | designed for very large SMP systems with hundreds or |
390 | thousands of CPUs, but for which real-time response |
391 | is also required. It also scales down nicely to |
392 | smaller systems. |
393 | |
394 | config TINY_RCU |
395 | bool "UP-only small-memory-footprint RCU" |
396 | depends on !SMP |
397 | help |
398 | This option selects the RCU implementation that is |
399 | designed for UP systems from which real-time response |
400 | is not required. This option greatly reduces the |
401 | memory footprint of RCU. |
402 | |
403 | config TINY_PREEMPT_RCU |
404 | bool "Preemptible UP-only small-memory-footprint RCU" |
405 | depends on !SMP && PREEMPT |
406 | help |
407 | This option selects the RCU implementation that is designed |
408 | for real-time UP systems. This option greatly reduces the |
409 | memory footprint of RCU. |
410 | |
411 | endchoice |
412 | |
413 | config PREEMPT_RCU |
414 | def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU ) |
415 | help |
416 | This option enables preemptible-RCU code that is common between |
417 | the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations. |
418 | |
419 | config RCU_TRACE |
420 | bool "Enable tracing for RCU" |
421 | help |
422 | This option provides tracing in RCU which presents stats |
423 | in debugfs for debugging RCU implementation. |
424 | |
425 | Say Y here if you want to enable RCU tracing |
426 | Say N if you are unsure. |
427 | |
428 | config RCU_FANOUT |
429 | int "Tree-based hierarchical RCU fanout value" |
430 | range 2 64 if 64BIT |
431 | range 2 32 if !64BIT |
432 | depends on TREE_RCU || TREE_PREEMPT_RCU |
433 | default 64 if 64BIT |
434 | default 32 if !64BIT |
435 | help |
436 | This option controls the fanout of hierarchical implementations |
437 | of RCU, allowing RCU to work efficiently on machines with |
438 | large numbers of CPUs. This value must be at least the fourth |
439 | root of NR_CPUS, which allows NR_CPUS to be insanely large. |
440 | The default value of RCU_FANOUT should be used for production |
441 | systems, but if you are stress-testing the RCU implementation |
442 | itself, small RCU_FANOUT values allow you to test large-system |
443 | code paths on small(er) systems. |
444 | |
445 | Select a specific number if testing RCU itself. |
446 | Take the default if unsure. |
447 | |
448 | config RCU_FANOUT_EXACT |
449 | bool "Disable tree-based hierarchical RCU auto-balancing" |
450 | depends on TREE_RCU || TREE_PREEMPT_RCU |
451 | default n |
452 | help |
453 | This option forces use of the exact RCU_FANOUT value specified, |
454 | regardless of imbalances in the hierarchy. This is useful for |
455 | testing RCU itself, and might one day be useful on systems with |
456 | strong NUMA behavior. |
457 | |
458 | Without RCU_FANOUT_EXACT, the code will balance the hierarchy. |
459 | |
460 | Say N if unsure. |
461 | |
462 | config RCU_FAST_NO_HZ |
463 | bool "Accelerate last non-dyntick-idle CPU's grace periods" |
464 | depends on TREE_RCU && NO_HZ && SMP |
465 | default n |
466 | help |
467 | This option causes RCU to attempt to accelerate grace periods |
468 | in order to allow the final CPU to enter dynticks-idle state |
469 | more quickly. On the other hand, this option increases the |
470 | overhead of the dynticks-idle checking, particularly on systems |
471 | with large numbers of CPUs. |
472 | |
473 | Say Y if energy efficiency is critically important, particularly |
474 | if you have relatively few CPUs. |
475 | |
476 | Say N if you are unsure. |
477 | |
478 | config TREE_RCU_TRACE |
479 | def_bool RCU_TRACE && ( TREE_RCU || TREE_PREEMPT_RCU ) |
480 | select DEBUG_FS |
481 | help |
482 | This option provides tracing for the TREE_RCU and |
483 | TREE_PREEMPT_RCU implementations, permitting Makefile to |
484 | trivially select kernel/rcutree_trace.c. |
485 | |
486 | config RCU_BOOST |
487 | bool "Enable RCU priority boosting" |
488 | depends on RT_MUTEXES && TINY_PREEMPT_RCU |
489 | default n |
490 | help |
491 | This option boosts the priority of preempted RCU readers that |
492 | block the current preemptible RCU grace period for too long. |
493 | This option also prevents heavy loads from blocking RCU |
494 | callback invocation for all flavors of RCU. |
495 | |
496 | Say Y here if you are working with real-time apps or heavy loads |
497 | Say N here if you are unsure. |
498 | |
499 | config RCU_BOOST_PRIO |
500 | int "Real-time priority to boost RCU readers to" |
501 | range 1 99 |
502 | depends on RCU_BOOST |
503 | default 1 |
504 | help |
505 | This option specifies the real-time priority to which preempted |
506 | RCU readers are to be boosted. If you are working with CPU-bound |
507 | real-time applications, you should specify a priority higher then |
508 | the highest-priority CPU-bound application. |
509 | |
510 | Specify the real-time priority, or take the default if unsure. |
511 | |
512 | config RCU_BOOST_DELAY |
513 | int "Milliseconds to delay boosting after RCU grace-period start" |
514 | range 0 3000 |
515 | depends on RCU_BOOST |
516 | default 500 |
517 | help |
518 | This option specifies the time to wait after the beginning of |
519 | a given grace period before priority-boosting preempted RCU |
520 | readers blocking that grace period. Note that any RCU reader |
521 | blocking an expedited RCU grace period is boosted immediately. |
522 | |
523 | Accept the default if unsure. |
524 | |
525 | endmenu # "RCU Subsystem" |
526 | |
527 | config IKCONFIG |
528 | tristate "Kernel .config support" |
529 | ---help--- |
530 | This option enables the complete Linux kernel ".config" file |
531 | contents to be saved in the kernel. It provides documentation |
532 | of which kernel options are used in a running kernel or in an |
533 | on-disk kernel. This information can be extracted from the kernel |
534 | image file with the script scripts/extract-ikconfig and used as |
535 | input to rebuild the current kernel or to build another kernel. |
536 | It can also be extracted from a running kernel by reading |
537 | /proc/config.gz if enabled (below). |
538 | |
539 | config IKCONFIG_PROC |
540 | bool "Enable access to .config through /proc/config.gz" |
541 | depends on IKCONFIG && PROC_FS |
542 | ---help--- |
543 | This option enables access to the kernel configuration file |
544 | through /proc/config.gz. |
545 | |
546 | config LOG_BUF_SHIFT |
547 | int "Kernel log buffer size (16 => 64KB, 17 => 128KB)" |
548 | range 12 21 |
549 | default 17 |
550 | help |
551 | Select kernel log buffer size as a power of 2. |
552 | Examples: |
553 | 17 => 128 KB |
554 | 16 => 64 KB |
555 | 15 => 32 KB |
556 | 14 => 16 KB |
557 | 13 => 8 KB |
558 | 12 => 4 KB |
559 | |
560 | # |
561 | # Architectures with an unreliable sched_clock() should select this: |
562 | # |
563 | config HAVE_UNSTABLE_SCHED_CLOCK |
564 | bool |
565 | |
566 | menuconfig CGROUPS |
567 | boolean "Control Group support" |
568 | depends on EVENTFD |
569 | help |
570 | This option adds support for grouping sets of processes together, for |
571 | use with process control subsystems such as Cpusets, CFS, memory |
572 | controls or device isolation. |
573 | See |
574 | - Documentation/scheduler/sched-design-CFS.txt (CFS) |
575 | - Documentation/cgroups/ (features for grouping, isolation |
576 | and resource control) |
577 | |
578 | Say N if unsure. |
579 | |
580 | if CGROUPS |
581 | |
582 | config CGROUP_DEBUG |
583 | bool "Example debug cgroup subsystem" |
584 | default n |
585 | help |
586 | This option enables a simple cgroup subsystem that |
587 | exports useful debugging information about the cgroups |
588 | framework. |
589 | |
590 | Say N if unsure. |
591 | |
592 | config CGROUP_NS |
593 | bool "Namespace cgroup subsystem" |
594 | help |
595 | Provides a simple namespace cgroup subsystem to |
596 | provide hierarchical naming of sets of namespaces, |
597 | for instance virtual servers and checkpoint/restart |
598 | jobs. |
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 "noswapaccount" 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 noswapaccount 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 | default y |
907 | help |
908 | Enabling this option will pass "-Os" instead of "-O2" to gcc |
909 | resulting in a smaller kernel. |
910 | |
911 | If unsure, say Y. |
912 | |
913 | config SYSCTL |
914 | bool |
915 | |
916 | config ANON_INODES |
917 | bool |
918 | |
919 | menuconfig EXPERT |
920 | bool "Configure standard kernel features (expert users)" |
921 | help |
922 | This option allows certain base kernel options and settings |
923 | to be disabled or tweaked. This is for specialized |
924 | environments which can tolerate a "non-standard" kernel. |
925 | Only use this if you really know what you are doing. |
926 | |
927 | config UID16 |
928 | bool "Enable 16-bit UID system calls" if EXPERT |
929 | depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) |
930 | default y |
931 | help |
932 | This enables the legacy 16-bit UID syscall wrappers. |
933 | |
934 | config SYSCTL_SYSCALL |
935 | bool "Sysctl syscall support" if EXPERT |
936 | depends on PROC_SYSCTL |
937 | default y |
938 | select SYSCTL |
939 | ---help--- |
940 | sys_sysctl uses binary paths that have been found challenging |
941 | to properly maintain and use. The interface in /proc/sys |
942 | using paths with ascii names is now the primary path to this |
943 | information. |
944 | |
945 | Almost nothing using the binary sysctl interface so if you are |
946 | trying to save some space it is probably safe to disable this, |
947 | making your kernel marginally smaller. |
948 | |
949 | If unsure say Y here. |
950 | |
951 | config KALLSYMS |
952 | bool "Load all symbols for debugging/ksymoops" if EXPERT |
953 | default y |
954 | help |
955 | Say Y here to let the kernel print out symbolic crash information and |
956 | symbolic stack backtraces. This increases the size of the kernel |
957 | somewhat, as all symbols have to be loaded into the kernel image. |
958 | |
959 | config KALLSYMS_ALL |
960 | bool "Include all symbols in kallsyms" |
961 | depends on DEBUG_KERNEL && KALLSYMS |
962 | help |
963 | Normally kallsyms only contains the symbols of functions, for nicer |
964 | OOPS messages. Some debuggers can use kallsyms for other |
965 | symbols too: say Y here to include all symbols, if you need them |
966 | and you don't care about adding 300k to the size of your kernel. |
967 | |
968 | Say N. |
969 | |
970 | config KALLSYMS_EXTRA_PASS |
971 | bool "Do an extra kallsyms pass" |
972 | depends on KALLSYMS |
973 | help |
974 | If kallsyms is not working correctly, the build will fail with |
975 | inconsistent kallsyms data. If that occurs, log a bug report and |
976 | turn on KALLSYMS_EXTRA_PASS which should result in a stable build. |
977 | Always say N here unless you find a bug in kallsyms, which must be |
978 | reported. KALLSYMS_EXTRA_PASS is only a temporary workaround while |
979 | you wait for kallsyms to be fixed. |
980 | |
981 | |
982 | config HOTPLUG |
983 | bool "Support for hot-pluggable devices" if EXPERT |
984 | default y |
985 | help |
986 | This option is provided for the case where no hotplug or uevent |
987 | capabilities is wanted by the kernel. You should only consider |
988 | disabling this option for embedded systems that do not use modules, a |
989 | dynamic /dev tree, or dynamic device discovery. Just say Y. |
990 | |
991 | config PRINTK |
992 | default y |
993 | bool "Enable support for printk" if EXPERT |
994 | help |
995 | This option enables normal printk support. Removing it |
996 | eliminates most of the message strings from the kernel image |
997 | and makes the kernel more or less silent. As this makes it |
998 | very difficult to diagnose system problems, saying N here is |
999 | strongly discouraged. |
1000 | |
1001 | config BUG |
1002 | bool "BUG() support" if EXPERT |
1003 | default y |
1004 | help |
1005 | Disabling this option eliminates support for BUG and WARN, reducing |
1006 | the size of your kernel image and potentially quietly ignoring |
1007 | numerous fatal conditions. You should only consider disabling this |
1008 | option for embedded systems with no facilities for reporting errors. |
1009 | Just say Y. |
1010 | |
1011 | config ELF_CORE |
1012 | default y |
1013 | bool "Enable ELF core dumps" if EXPERT |
1014 | help |
1015 | Enable support for generating core dumps. Disabling saves about 4k. |
1016 | |
1017 | config PCSPKR_PLATFORM |
1018 | bool "Enable PC-Speaker support" if EXPERT |
1019 | depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES |
1020 | default y |
1021 | help |
1022 | This option allows to disable the internal PC-Speaker |
1023 | support, saving some memory. |
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