Root/init/Kconfig

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

Archive Download this file



interactive