diff options
Diffstat (limited to 'init/Kconfig')
-rw-r--r-- | init/Kconfig | 177 |
1 files changed, 100 insertions, 77 deletions
diff --git a/init/Kconfig b/init/Kconfig index 35518243c4bd..526ec1c7456a 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -21,6 +21,13 @@ config CONSTRUCTORS | |||
21 | depends on !UML | 21 | depends on !UML |
22 | default y | 22 | default y |
23 | 23 | ||
24 | config HAVE_IRQ_WORK | ||
25 | bool | ||
26 | |||
27 | config IRQ_WORK | ||
28 | bool | ||
29 | depends on HAVE_IRQ_WORK | ||
30 | |||
24 | menu "General setup" | 31 | menu "General setup" |
25 | 32 | ||
26 | config EXPERIMENTAL | 33 | config EXPERIMENTAL |
@@ -64,7 +71,7 @@ config BROKEN_ON_SMP | |||
64 | 71 | ||
65 | config LOCK_KERNEL | 72 | config LOCK_KERNEL |
66 | bool | 73 | bool |
67 | depends on SMP || PREEMPT | 74 | depends on (SMP || PREEMPT) && BKL |
68 | default y | 75 | default y |
69 | 76 | ||
70 | config INIT_ENV_ARG_LIMIT | 77 | config INIT_ENV_ARG_LIMIT |
@@ -179,7 +186,7 @@ config KERNEL_LZO | |||
179 | depends on HAVE_KERNEL_LZO | 186 | depends on HAVE_KERNEL_LZO |
180 | help | 187 | help |
181 | Its compression ratio is the poorest among the 4. The kernel | 188 | Its compression ratio is the poorest among the 4. The kernel |
182 | size is about about 10% bigger than gzip; however its speed | 189 | size is about 10% bigger than gzip; however its speed |
183 | (both compression and decompression) is the fastest. | 190 | (both compression and decompression) is the fastest. |
184 | 191 | ||
185 | endchoice | 192 | endchoice |
@@ -332,6 +339,8 @@ config AUDIT_TREE | |||
332 | depends on AUDITSYSCALL | 339 | depends on AUDITSYSCALL |
333 | select FSNOTIFY | 340 | select FSNOTIFY |
334 | 341 | ||
342 | source "kernel/irq/Kconfig" | ||
343 | |||
335 | menu "RCU Subsystem" | 344 | menu "RCU Subsystem" |
336 | 345 | ||
337 | choice | 346 | choice |
@@ -562,7 +571,6 @@ if CGROUPS | |||
562 | 571 | ||
563 | config CGROUP_DEBUG | 572 | config CGROUP_DEBUG |
564 | bool "Example debug cgroup subsystem" | 573 | bool "Example debug cgroup subsystem" |
565 | depends on CGROUPS | ||
566 | default n | 574 | default n |
567 | help | 575 | help |
568 | This option enables a simple cgroup subsystem that | 576 | This option enables a simple cgroup subsystem that |
@@ -573,7 +581,6 @@ config CGROUP_DEBUG | |||
573 | 581 | ||
574 | config CGROUP_NS | 582 | config CGROUP_NS |
575 | bool "Namespace cgroup subsystem" | 583 | bool "Namespace cgroup subsystem" |
576 | depends on CGROUPS | ||
577 | help | 584 | help |
578 | Provides a simple namespace cgroup subsystem to | 585 | Provides a simple namespace cgroup subsystem to |
579 | provide hierarchical naming of sets of namespaces, | 586 | provide hierarchical naming of sets of namespaces, |
@@ -582,21 +589,18 @@ config CGROUP_NS | |||
582 | 589 | ||
583 | config CGROUP_FREEZER | 590 | config CGROUP_FREEZER |
584 | bool "Freezer cgroup subsystem" | 591 | bool "Freezer cgroup subsystem" |
585 | depends on CGROUPS | ||
586 | help | 592 | help |
587 | Provides a way to freeze and unfreeze all tasks in a | 593 | Provides a way to freeze and unfreeze all tasks in a |
588 | cgroup. | 594 | cgroup. |
589 | 595 | ||
590 | config CGROUP_DEVICE | 596 | config CGROUP_DEVICE |
591 | bool "Device controller for cgroups" | 597 | bool "Device controller for cgroups" |
592 | depends on CGROUPS && EXPERIMENTAL | ||
593 | help | 598 | help |
594 | Provides a cgroup implementing whitelists for devices which | 599 | Provides a cgroup implementing whitelists for devices which |
595 | a process in the cgroup can mknod or open. | 600 | a process in the cgroup can mknod or open. |
596 | 601 | ||
597 | config CPUSETS | 602 | config CPUSETS |
598 | bool "Cpuset support" | 603 | bool "Cpuset support" |
599 | depends on CGROUPS | ||
600 | help | 604 | help |
601 | This option will let you create and manage CPUSETs which | 605 | This option will let you create and manage CPUSETs which |
602 | allow dynamically partitioning a system into sets of CPUs and | 606 | allow dynamically partitioning a system into sets of CPUs and |
@@ -612,7 +616,6 @@ config PROC_PID_CPUSET | |||
612 | 616 | ||
613 | config CGROUP_CPUACCT | 617 | config CGROUP_CPUACCT |
614 | bool "Simple CPU accounting cgroup subsystem" | 618 | bool "Simple CPU accounting cgroup subsystem" |
615 | depends on CGROUPS | ||
616 | help | 619 | help |
617 | Provides a simple Resource Controller for monitoring the | 620 | Provides a simple Resource Controller for monitoring the |
618 | total CPU consumed by the tasks in a cgroup. | 621 | total CPU consumed by the tasks in a cgroup. |
@@ -622,11 +625,10 @@ config RESOURCE_COUNTERS | |||
622 | help | 625 | help |
623 | This option enables controller independent resource accounting | 626 | This option enables controller independent resource accounting |
624 | infrastructure that works with cgroups. | 627 | infrastructure that works with cgroups. |
625 | depends on CGROUPS | ||
626 | 628 | ||
627 | config CGROUP_MEM_RES_CTLR | 629 | config CGROUP_MEM_RES_CTLR |
628 | bool "Memory Resource Controller for Control Groups" | 630 | bool "Memory Resource Controller for Control Groups" |
629 | depends on CGROUPS && RESOURCE_COUNTERS | 631 | depends on RESOURCE_COUNTERS |
630 | select MM_OWNER | 632 | select MM_OWNER |
631 | help | 633 | help |
632 | Provides a memory resource controller that manages both anonymous | 634 | Provides a memory resource controller that manages both anonymous |
@@ -664,10 +666,23 @@ config CGROUP_MEM_RES_CTLR_SWAP | |||
664 | if boot option "noswapaccount" is set, swap will not be accounted. | 666 | if boot option "noswapaccount" is set, swap will not be accounted. |
665 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page | 667 | Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page |
666 | size is 4096bytes, 512k per 1Gbytes of swap. | 668 | size is 4096bytes, 512k per 1Gbytes of swap. |
669 | config CGROUP_MEM_RES_CTLR_SWAP_ENABLED | ||
670 | bool "Memory Resource Controller Swap Extension enabled by default" | ||
671 | depends on CGROUP_MEM_RES_CTLR_SWAP | ||
672 | default y | ||
673 | help | ||
674 | Memory Resource Controller Swap Extension comes with its price in | ||
675 | a bigger memory consumption. General purpose distribution kernels | ||
676 | which want to enable the feautre but keep it disabled by default | ||
677 | and let the user enable it by swapaccount boot command line | ||
678 | parameter should have this option unselected. | ||
679 | For those who want to have the feature enabled by default should | ||
680 | select this option (if, for some reason, they need to disable it | ||
681 | then noswapaccount does the trick). | ||
667 | 682 | ||
668 | menuconfig CGROUP_SCHED | 683 | menuconfig CGROUP_SCHED |
669 | bool "Group CPU scheduler" | 684 | bool "Group CPU scheduler" |
670 | depends on EXPERIMENTAL && CGROUPS | 685 | depends on EXPERIMENTAL |
671 | default n | 686 | default n |
672 | help | 687 | help |
673 | This feature lets CPU scheduler recognize task groups and control CPU | 688 | This feature lets CPU scheduler recognize task groups and control CPU |
@@ -696,7 +711,7 @@ endif #CGROUP_SCHED | |||
696 | 711 | ||
697 | config BLK_CGROUP | 712 | config BLK_CGROUP |
698 | tristate "Block IO controller" | 713 | tristate "Block IO controller" |
699 | depends on CGROUPS && BLOCK | 714 | depends on BLOCK |
700 | default n | 715 | default n |
701 | ---help--- | 716 | ---help--- |
702 | Generic block IO controller cgroup interface. This is the common | 717 | Generic block IO controller cgroup interface. This is the common |
@@ -705,11 +720,14 @@ config BLK_CGROUP | |||
705 | 720 | ||
706 | Currently, CFQ IO scheduler uses it to recognize task groups and | 721 | Currently, CFQ IO scheduler uses it to recognize task groups and |
707 | control disk bandwidth allocation (proportional time slice allocation) | 722 | control disk bandwidth allocation (proportional time slice allocation) |
708 | to such task groups. | 723 | to such task groups. It is also used by bio throttling logic in |
724 | block layer to implement upper limit in IO rates on a device. | ||
709 | 725 | ||
710 | This option only enables generic Block IO controller infrastructure. | 726 | This option only enables generic Block IO controller infrastructure. |
711 | One needs to also enable actual IO controlling logic in CFQ for it | 727 | One needs to also enable actual IO controlling logic/policy. For |
712 | to take effect. (CONFIG_CFQ_GROUP_IOSCHED=y). | 728 | enabling proportional weight division of disk bandwidth in CFQ seti |
729 | CONFIG_CFQ_GROUP_IOSCHED=y and for enabling throttling policy set | ||
730 | CONFIG_BLK_THROTTLE=y. | ||
713 | 731 | ||
714 | See Documentation/cgroups/blkio-controller.txt for more information. | 732 | See Documentation/cgroups/blkio-controller.txt for more information. |
715 | 733 | ||
@@ -723,57 +741,7 @@ config DEBUG_BLK_CGROUP | |||
723 | 741 | ||
724 | endif # CGROUPS | 742 | endif # CGROUPS |
725 | 743 | ||
726 | config MM_OWNER | 744 | menuconfig NAMESPACES |
727 | bool | ||
728 | |||
729 | config SYSFS_DEPRECATED | ||
730 | bool | ||
731 | |||
732 | config SYSFS_DEPRECATED_V2 | ||
733 | bool "enable deprecated sysfs features to support old userspace tools" | ||
734 | depends on SYSFS | ||
735 | default n | ||
736 | select SYSFS_DEPRECATED | ||
737 | help | ||
738 | This option switches the layout of sysfs to the deprecated | ||
739 | version. Do not use it on recent distributions. | ||
740 | |||
741 | The current sysfs layout features a unified device tree at | ||
742 | /sys/devices/, which is able to express a hierarchy between | ||
743 | class devices. If the deprecated option is set to Y, the | ||
744 | unified device tree is split into a bus device tree at | ||
745 | /sys/devices/ and several individual class device trees at | ||
746 | /sys/class/. The class and bus devices will be connected by | ||
747 | "<subsystem>:<name>" and the "device" links. The "block" | ||
748 | class devices, will not show up in /sys/class/block/. Some | ||
749 | subsystems will suppress the creation of some devices which | ||
750 | depend on the unified device tree. | ||
751 | |||
752 | This option is not a pure compatibility option that can | ||
753 | be safely enabled on newer distributions. It will change the | ||
754 | layout of sysfs to the non-extensible deprecated version, | ||
755 | and disable some features, which can not be exported without | ||
756 | confusing older userspace tools. Since 2007/2008 all major | ||
757 | distributions do not enable this option, and ship no tools which | ||
758 | depend on the deprecated layout or this option. | ||
759 | |||
760 | If you are using a new kernel on an older distribution, or use | ||
761 | older userspace tools, you might need to say Y here. Do not say Y, | ||
762 | if the original kernel, that came with your distribution, has | ||
763 | this option set to N. | ||
764 | |||
765 | config RELAY | ||
766 | bool "Kernel->user space relay support (formerly relayfs)" | ||
767 | help | ||
768 | This option enables support for relay interface support in | ||
769 | certain file systems (such as debugfs). | ||
770 | It is designed to provide an efficient mechanism for tools and | ||
771 | facilities to relay large amounts of data from kernel space to | ||
772 | user space. | ||
773 | |||
774 | If unsure, say N. | ||
775 | |||
776 | config NAMESPACES | ||
777 | bool "Namespaces support" if EMBEDDED | 745 | bool "Namespaces support" if EMBEDDED |
778 | default !EMBEDDED | 746 | default !EMBEDDED |
779 | help | 747 | help |
@@ -782,48 +750,102 @@ config NAMESPACES | |||
782 | or same user id or pid may refer to different tasks when used in | 750 | or same user id or pid may refer to different tasks when used in |
783 | different namespaces. | 751 | different namespaces. |
784 | 752 | ||
753 | if NAMESPACES | ||
754 | |||
785 | config UTS_NS | 755 | config UTS_NS |
786 | bool "UTS namespace" | 756 | bool "UTS namespace" |
787 | depends on NAMESPACES | 757 | default y |
788 | help | 758 | help |
789 | In this namespace tasks see different info provided with the | 759 | In this namespace tasks see different info provided with the |
790 | uname() system call | 760 | uname() system call |
791 | 761 | ||
792 | config IPC_NS | 762 | config IPC_NS |
793 | bool "IPC namespace" | 763 | bool "IPC namespace" |
794 | depends on NAMESPACES && (SYSVIPC || POSIX_MQUEUE) | 764 | depends on (SYSVIPC || POSIX_MQUEUE) |
765 | default y | ||
795 | help | 766 | help |
796 | In this namespace tasks work with IPC ids which correspond to | 767 | In this namespace tasks work with IPC ids which correspond to |
797 | different IPC objects in different namespaces. | 768 | different IPC objects in different namespaces. |
798 | 769 | ||
799 | config USER_NS | 770 | config USER_NS |
800 | bool "User namespace (EXPERIMENTAL)" | 771 | bool "User namespace (EXPERIMENTAL)" |
801 | depends on NAMESPACES && EXPERIMENTAL | 772 | depends on EXPERIMENTAL |
773 | default y | ||
802 | help | 774 | help |
803 | This allows containers, i.e. vservers, to use user namespaces | 775 | This allows containers, i.e. vservers, to use user namespaces |
804 | to provide different user info for different servers. | 776 | to provide different user info for different servers. |
805 | If unsure, say N. | 777 | If unsure, say N. |
806 | 778 | ||
807 | config PID_NS | 779 | config PID_NS |
808 | bool "PID Namespaces (EXPERIMENTAL)" | 780 | bool "PID Namespaces" |
809 | default n | 781 | default y |
810 | depends on NAMESPACES && EXPERIMENTAL | ||
811 | help | 782 | help |
812 | Support process id namespaces. This allows having multiple | 783 | Support process id namespaces. This allows having multiple |
813 | processes with the same pid as long as they are in different | 784 | processes with the same pid as long as they are in different |
814 | pid namespaces. This is a building block of containers. | 785 | pid namespaces. This is a building block of containers. |
815 | 786 | ||
816 | Unless you want to work with an experimental feature | ||
817 | say N here. | ||
818 | |||
819 | config NET_NS | 787 | config NET_NS |
820 | bool "Network namespace" | 788 | bool "Network namespace" |
821 | default n | 789 | depends on NET |
822 | depends on NAMESPACES && EXPERIMENTAL && NET | 790 | default y |
823 | help | 791 | help |
824 | Allow user space to create what appear to be multiple instances | 792 | Allow user space to create what appear to be multiple instances |
825 | of the network stack. | 793 | of the network stack. |
826 | 794 | ||
795 | endif # NAMESPACES | ||
796 | |||
797 | config MM_OWNER | ||
798 | bool | ||
799 | |||
800 | config SYSFS_DEPRECATED | ||
801 | bool "enable deprecated sysfs features to support old userspace tools" | ||
802 | depends on SYSFS | ||
803 | default n | ||
804 | help | ||
805 | This option adds code that switches the layout of the "block" class | ||
806 | devices, to not show up in /sys/class/block/, but only in | ||
807 | /sys/block/. | ||
808 | |||
809 | This switch is only active when the sysfs.deprecated=1 boot option is | ||
810 | passed or the SYSFS_DEPRECATED_V2 option is set. | ||
811 | |||
812 | This option allows new kernels to run on old distributions and tools, | ||
813 | which might get confused by /sys/class/block/. Since 2007/2008 all | ||
814 | major distributions and tools handle this just fine. | ||
815 | |||
816 | Recent distributions and userspace tools after 2009/2010 depend on | ||
817 | the existence of /sys/class/block/, and will not work with this | ||
818 | option enabled. | ||
819 | |||
820 | Only if you are using a new kernel on an old distribution, you might | ||
821 | need to say Y here. | ||
822 | |||
823 | config SYSFS_DEPRECATED_V2 | ||
824 | bool "enabled deprecated sysfs features by default" | ||
825 | default n | ||
826 | depends on SYSFS | ||
827 | depends on SYSFS_DEPRECATED | ||
828 | help | ||
829 | Enable deprecated sysfs by default. | ||
830 | |||
831 | See the CONFIG_SYSFS_DEPRECATED option for more details about this | ||
832 | option. | ||
833 | |||
834 | Only if you are using a new kernel on an old distribution, you might | ||
835 | need to say Y here. Even then, odds are you would not need it | ||
836 | enabled, you can always pass the boot option if absolutely necessary. | ||
837 | |||
838 | config RELAY | ||
839 | bool "Kernel->user space relay support (formerly relayfs)" | ||
840 | help | ||
841 | This option enables support for relay interface support in | ||
842 | certain file systems (such as debugfs). | ||
843 | It is designed to provide an efficient mechanism for tools and | ||
844 | facilities to relay large amounts of data from kernel space to | ||
845 | user space. | ||
846 | |||
847 | If unsure, say N. | ||
848 | |||
827 | config BLK_DEV_INITRD | 849 | config BLK_DEV_INITRD |
828 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" | 850 | bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" |
829 | depends on BROKEN || !FRV | 851 | depends on BROKEN || !FRV |
@@ -1058,6 +1080,7 @@ config PERF_EVENTS | |||
1058 | default y if (PROFILING || PERF_COUNTERS) | 1080 | default y if (PROFILING || PERF_COUNTERS) |
1059 | depends on HAVE_PERF_EVENTS | 1081 | depends on HAVE_PERF_EVENTS |
1060 | select ANON_INODES | 1082 | select ANON_INODES |
1083 | select IRQ_WORK | ||
1061 | help | 1084 | help |
1062 | Enable kernel support for various performance events provided | 1085 | Enable kernel support for various performance events provided |
1063 | by software and hardware. | 1086 | by software and hardware. |