Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6
[pandora-kernel.git] / init / Kconfig
index 1df1a87..fdfd97e 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
@@ -342,6 +349,7 @@ choice
 
 config TREE_RCU
        bool "Tree-based hierarchical RCU"
+       depends on !PREEMPT && SMP
        help
          This option selects the RCU implementation that is
          designed for very large SMP system with hundreds or
@@ -349,7 +357,7 @@ config TREE_RCU
          smaller systems.
 
 config TREE_PREEMPT_RCU
-       bool "Preemptable tree-based hierarchical RCU"
+       bool "Preemptible tree-based hierarchical RCU"
        depends on PREEMPT
        help
          This option selects the RCU implementation that is
@@ -367,8 +375,22 @@ config TINY_RCU
          is not required.  This option greatly reduces the
          memory footprint of RCU.
 
+config TINY_PREEMPT_RCU
+       bool "Preemptible UP-only small-memory-footprint RCU"
+       depends on !SMP && PREEMPT
+       help
+         This option selects the RCU implementation that is designed
+         for real-time UP systems.  This option greatly reduces the
+         memory footprint of RCU.
+
 endchoice
 
+config PREEMPT_RCU
+       def_bool ( TREE_PREEMPT_RCU || TINY_PREEMPT_RCU )
+       help
+         This option enables preemptible-RCU code that is common between
+         the TREE_PREEMPT_RCU and TINY_PREEMPT_RCU implementations.
+
 config RCU_TRACE
        bool "Enable tracing for RCU"
        depends on TREE_RCU || TREE_PREEMPT_RCU
@@ -389,9 +411,12 @@ config RCU_FANOUT
        help
          This option controls the fanout of hierarchical implementations
          of RCU, allowing RCU to work efficiently on machines with
-         large numbers of CPUs.  This value must be at least the cube
-         root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit
-         systems and up to 262,144 for 64-bit systems.
+         large numbers of CPUs.  This value must be at least the fourth
+         root of NR_CPUS, which allows NR_CPUS to be insanely large.
+         The default value of RCU_FANOUT should be used for production
+         systems, but if you are stress-testing the RCU implementation
+         itself, small RCU_FANOUT values allow you to test large-system
+         code paths on small(er) systems.
 
          Select a specific number if testing RCU itself.
          Take the default if unsure.
@@ -636,11 +661,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.
 
@@ -658,40 +686,42 @@ 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.
+       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)"
@@ -989,6 +1019,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.