Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck...
[linux-2.6.git] / init / Kconfig
index 3551824..526ec1c 100644 (file)
@@ -21,6 +21,13 @@ config CONSTRUCTORS
        depends on !UML
        default y
 
+config HAVE_IRQ_WORK
+       bool
+
+config IRQ_WORK
+       bool
+       depends on HAVE_IRQ_WORK
+
 menu "General setup"
 
 config EXPERIMENTAL
@@ -64,7 +71,7 @@ config BROKEN_ON_SMP
 
 config LOCK_KERNEL
        bool
-       depends on SMP || PREEMPT
+       depends on (SMP || PREEMPT) && BKL
        default y
 
 config INIT_ENV_ARG_LIMIT
@@ -179,7 +186,7 @@ config KERNEL_LZO
        depends on HAVE_KERNEL_LZO
        help
          Its compression ratio is the poorest among the 4. The kernel
-         size is about about 10% bigger than gzip; however its speed
+         size is about 10% bigger than gzip; however its speed
          (both compression and decompression) is the fastest.
 
 endchoice
@@ -332,6 +339,8 @@ config AUDIT_TREE
        depends on AUDITSYSCALL
        select FSNOTIFY
 
+source "kernel/irq/Kconfig"
+
 menu "RCU Subsystem"
 
 choice
@@ -562,7 +571,6 @@ if CGROUPS
 
 config CGROUP_DEBUG
        bool "Example debug cgroup subsystem"
-       depends on CGROUPS
        default n
        help
          This option enables a simple cgroup subsystem that
@@ -573,7 +581,6 @@ config CGROUP_DEBUG
 
 config CGROUP_NS
        bool "Namespace cgroup subsystem"
-       depends on CGROUPS
        help
          Provides a simple namespace cgroup subsystem to
          provide hierarchical naming of sets of namespaces,
@@ -582,21 +589,18 @@ config CGROUP_NS
 
 config CGROUP_FREEZER
        bool "Freezer cgroup subsystem"
-       depends on CGROUPS
        help
          Provides a way to freeze and unfreeze all tasks in a
          cgroup.
 
 config CGROUP_DEVICE
        bool "Device controller for cgroups"
-       depends on CGROUPS && EXPERIMENTAL
        help
          Provides a cgroup implementing whitelists for devices which
          a process in the cgroup can mknod or open.
 
 config CPUSETS
        bool "Cpuset support"
-       depends on CGROUPS
        help
          This option will let you create and manage CPUSETs which
          allow dynamically partitioning a system into sets of CPUs and
@@ -612,7 +616,6 @@ config PROC_PID_CPUSET
 
 config CGROUP_CPUACCT
        bool "Simple CPU accounting cgroup subsystem"
-       depends on CGROUPS
        help
          Provides a simple Resource Controller for monitoring the
          total CPU consumed by the tasks in a cgroup.
@@ -622,11 +625,10 @@ config RESOURCE_COUNTERS
        help
          This option enables controller independent resource accounting
          infrastructure that works with cgroups.
-       depends on CGROUPS
 
 config CGROUP_MEM_RES_CTLR
        bool "Memory Resource Controller for Control Groups"
-       depends on CGROUPS && RESOURCE_COUNTERS
+       depends on RESOURCE_COUNTERS
        select MM_OWNER
        help
          Provides a memory resource controller that manages both anonymous
@@ -664,10 +666,23 @@ config CGROUP_MEM_RES_CTLR_SWAP
          if boot option "noswapaccount" is set, swap will not be accounted.
          Now, memory usage of swap_cgroup is 2 bytes per entry. If swap page
          size is 4096bytes, 512k per 1Gbytes of swap.
+config CGROUP_MEM_RES_CTLR_SWAP_ENABLED
+       bool "Memory Resource Controller Swap Extension enabled by default"
+       depends on CGROUP_MEM_RES_CTLR_SWAP
+       default y
+       help
+         Memory Resource Controller Swap Extension comes with its price in
+         a bigger memory consumption. General purpose distribution kernels
+         which want to enable the feautre but keep it disabled by default
+         and let the user enable it by swapaccount boot command line
+         parameter should have this option unselected.
+         For those who want to have the feature enabled by default should
+         select this option (if, for some reason, they need to disable it
+         then noswapaccount does the trick).
 
 menuconfig CGROUP_SCHED
        bool "Group CPU scheduler"
-       depends on EXPERIMENTAL && CGROUPS
+       depends on EXPERIMENTAL
        default n
        help
          This feature lets CPU scheduler recognize task groups and control CPU
@@ -696,7 +711,7 @@ endif #CGROUP_SCHED
 
 config BLK_CGROUP
        tristate "Block IO controller"
-       depends on CGROUPS && BLOCK
+       depends on BLOCK
        default n
        ---help---
        Generic block IO controller cgroup interface. This is the common
@@ -705,11 +720,14 @@ config BLK_CGROUP
 
        Currently, CFQ IO scheduler uses it to recognize task groups and
        control disk bandwidth allocation (proportional time slice allocation)
-       to such task groups.
+       to such task groups. It is also used by bio throttling logic in
+       block layer to implement upper limit in IO rates on a device.
 
        This option only enables generic Block IO controller infrastructure.
-       One needs to also enable actual IO controlling logic in CFQ for it
-       to take effect. (CONFIG_CFQ_GROUP_IOSCHED=y).
+       One needs to also enable actual IO controlling logic/policy. For
+       enabling proportional weight division of disk bandwidth in CFQ seti
+       CONFIG_CFQ_GROUP_IOSCHED=y and for enabling throttling policy set
+       CONFIG_BLK_THROTTLE=y.
 
        See Documentation/cgroups/blkio-controller.txt for more information.
 
@@ -723,57 +741,7 @@ config DEBUG_BLK_CGROUP
 
 endif # CGROUPS
 
-config MM_OWNER
-       bool
-
-config SYSFS_DEPRECATED
-       bool
-
-config SYSFS_DEPRECATED_V2
-       bool "enable deprecated sysfs features to support old userspace tools"
-       depends on SYSFS
-       default n
-       select SYSFS_DEPRECATED
-       help
-         This option switches the layout of sysfs to the deprecated
-         version. Do not use it on recent distributions.
-
-         The current sysfs layout features a unified device tree at
-         /sys/devices/, which is able to express a hierarchy between
-         class devices. If the deprecated option is set to Y, the
-         unified device tree is split into a bus device tree at
-         /sys/devices/ and several individual class device trees at
-         /sys/class/. The class and bus devices will be connected by
-         "<subsystem>:<name>" and the "device" links. The "block"
-         class devices, will not show up in /sys/class/block/. Some
-         subsystems will suppress the creation of some devices which
-         depend on the unified device tree.
-
-         This option is not a pure compatibility option that can
-         be safely enabled on newer distributions. It will change the
-         layout of sysfs to the non-extensible deprecated version,
-         and disable some features, which can not be exported without
-         confusing older userspace tools. Since 2007/2008 all major
-         distributions do not enable this option, and ship no tools which
-         depend on the deprecated layout or this option.
-
-         If you are using a new kernel on an older distribution, or use
-         older userspace tools, you might need to say Y here. Do not say Y,
-         if the original kernel, that came with your distribution, has
-         this option set to N.
-
-config RELAY
-       bool "Kernel->user space relay support (formerly relayfs)"
-       help
-         This option enables support for relay interface support in
-         certain file systems (such as debugfs).
-         It is designed to provide an efficient mechanism for tools and
-         facilities to relay large amounts of data from kernel space to
-         user space.
-
-         If unsure, say N.
-
-config NAMESPACES
+menuconfig NAMESPACES
        bool "Namespaces support" if EMBEDDED
        default !EMBEDDED
        help
@@ -782,48 +750,102 @@ config NAMESPACES
          or same user id or pid may refer to different tasks when used in
          different namespaces.
 
+if NAMESPACES
+
 config UTS_NS
        bool "UTS namespace"
-       depends on NAMESPACES
+       default y
        help
          In this namespace tasks see different info provided with the
          uname() system call
 
 config IPC_NS
        bool "IPC namespace"
-       depends on NAMESPACES && (SYSVIPC || POSIX_MQUEUE)
+       depends on (SYSVIPC || POSIX_MQUEUE)
+       default y
        help
          In this namespace tasks work with IPC ids which correspond to
          different IPC objects in different namespaces.
 
 config USER_NS
        bool "User namespace (EXPERIMENTAL)"
-       depends on NAMESPACES && EXPERIMENTAL
+       depends on EXPERIMENTAL
+       default y
        help
          This allows containers, i.e. vservers, to use user namespaces
          to provide different user info for different servers.
          If unsure, say N.
 
 config PID_NS
-       bool "PID Namespaces (EXPERIMENTAL)"
-       default n
-       depends on NAMESPACES && EXPERIMENTAL
+       bool "PID Namespaces"
+       default y
        help
          Support process id namespaces.  This allows having multiple
          processes with the same pid as long as they are in different
          pid namespaces.  This is a building block of containers.
 
-         Unless you want to work with an experimental feature
-         say N here.
-
 config NET_NS
        bool "Network namespace"
-       default n
-       depends on NAMESPACES && EXPERIMENTAL && NET
+       depends on NET
+       default y
        help
          Allow user space to create what appear to be multiple instances
          of the network stack.
 
+endif # NAMESPACES
+
+config MM_OWNER
+       bool
+
+config SYSFS_DEPRECATED
+       bool "enable deprecated sysfs features to support old userspace tools"
+       depends on SYSFS
+       default n
+       help
+         This option adds code that switches the layout of the "block" class
+         devices, to not show up in /sys/class/block/, but only in
+         /sys/block/.
+
+         This switch is only active when the sysfs.deprecated=1 boot option is
+         passed or the SYSFS_DEPRECATED_V2 option is set.
+
+         This option allows new kernels to run on old distributions and tools,
+         which might get confused by /sys/class/block/. Since 2007/2008 all
+         major distributions and tools handle this just fine.
+
+         Recent distributions and userspace tools after 2009/2010 depend on
+         the existence of /sys/class/block/, and will not work with this
+         option enabled.
+
+         Only if you are using a new kernel on an old distribution, you might
+         need to say Y here.
+
+config SYSFS_DEPRECATED_V2
+       bool "enabled deprecated sysfs features by default"
+       default n
+       depends on SYSFS
+       depends on SYSFS_DEPRECATED
+       help
+         Enable deprecated sysfs by default.
+
+         See the CONFIG_SYSFS_DEPRECATED option for more details about this
+         option.
+
+         Only if you are using a new kernel on an old distribution, you might
+         need to say Y here. Even then, odds are you would not need it
+         enabled, you can always pass the boot option if absolutely necessary.
+
+config RELAY
+       bool "Kernel->user space relay support (formerly relayfs)"
+       help
+         This option enables support for relay interface support in
+         certain file systems (such as debugfs).
+         It is designed to provide an efficient mechanism for tools and
+         facilities to relay large amounts of data from kernel space to
+         user space.
+
+         If unsure, say N.
+
 config BLK_DEV_INITRD
        bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
        depends on BROKEN || !FRV
@@ -1058,6 +1080,7 @@ config PERF_EVENTS
        default y if (PROFILING || PERF_COUNTERS)
        depends on HAVE_PERF_EVENTS
        select ANON_INODES
+       select IRQ_WORK
        help
          Enable kernel support for various performance events provided
          by software and hardware.