This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / block / Kconfig.iosched
diff --git a/block/Kconfig.iosched b/block/Kconfig.iosched
new file mode 100644 (file)
index 0000000..f3b7753
--- /dev/null
@@ -0,0 +1,69 @@
+
+menu "IO Schedulers"
+
+config IOSCHED_NOOP
+       bool
+       default y
+       ---help---
+         The no-op I/O scheduler is a minimal scheduler that does basic merging
+         and sorting. Its main uses include non-disk based block devices like
+         memory devices, and specialised software or hardware environments
+         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.
+
+config IOSCHED_CFQ
+       tristate "CFQ I/O scheduler"
+       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.
+
+choice
+       prompt "Default I/O scheduler"
+       default DEFAULT_AS
+       help
+         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
+
+       config DEFAULT_CFQ
+               bool "CFQ" if IOSCHED_CFQ=y
+
+       config DEFAULT_NOOP
+               bool "No-op"
+
+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