Merge branch 'linus' into sched/core
[linux-2.6.git] / block / Kconfig.iosched
index 48d090e..3199b76 100644 (file)
@@ -1,3 +1,4 @@
+if BLOCK
 
 menu "IO Schedulers"
 
@@ -11,32 +12,36 @@ config IOSCHED_NOOP
          that do their own scheduling and require only minimal assistance from
          the kernel.
 
-config IOSCHED_AS
-       tristate "Anticipatory I/O scheduler"
-       default y
-       ---help---
-         The anticipatory I/O scheduler is the default disk scheduler. It is
-         generally a good choice for most environments, but is quite large and
-         complex when compared to the deadline I/O scheduler, it can also be
-         slower in some cases especially some database loads.
-
 config IOSCHED_DEADLINE
        tristate "Deadline I/O scheduler"
        default y
        ---help---
-         The deadline I/O scheduler is simple and compact, and is often as
-         good as the anticipatory I/O scheduler, and in some database
-         workloads, better. In the case of a single process performing I/O to
-         a disk at any one time, its behaviour is almost identical to the
-         anticipatory I/O scheduler and so is a good choice.
+         The deadline I/O scheduler is simple and compact. It will provide
+         CSCAN service with FIFO expiration of requests, switching to
+         a new point in the service tree and doing a batch of IO from there
+         in case of expiry.
 
 config IOSCHED_CFQ
        tristate "CFQ I/O scheduler"
+       # If BLK_CGROUP is a module, CFQ has to be built as module.
+       depends on (BLK_CGROUP=m && m) || !BLK_CGROUP || BLK_CGROUP=y
        default y
        ---help---
          The CFQ I/O scheduler tries to distribute bandwidth equally
          among all processes in the system. It should provide a fair
-         working environment, suitable for desktop systems.
+         and low latency working environment, suitable for both desktop
+         and server systems.
+
+         This is the default I/O scheduler.
+
+         Note: If BLK_CGROUP=m, then CFQ can be built only as module.
+
+config CFQ_GROUP_IOSCHED
+       bool "CFQ Group Scheduling support"
+       depends on IOSCHED_CFQ && BLK_CGROUP
+       default n
+       ---help---
+         Enable group IO scheduling in CFQ.
 
 choice
        prompt "Default I/O scheduler"
@@ -45,9 +50,6 @@ choice
          Select the I/O scheduler which will be used by default for all
          block devices.
 
-       config DEFAULT_AS
-               bool "Anticipatory" if IOSCHED_AS=y
-
        config DEFAULT_DEADLINE
                bool "Deadline" if IOSCHED_DEADLINE=y
 
@@ -61,9 +63,10 @@ endchoice
 
 config DEFAULT_IOSCHED
        string
-       default "anticipatory" if DEFAULT_AS
        default "deadline" if DEFAULT_DEADLINE
        default "cfq" if DEFAULT_CFQ
        default "noop" if DEFAULT_NOOP
 
 endmenu
+
+endif