[PATCH] BLOCK: Make it possible to disable the block layer [try #6]
[linux-2.6.git] / block / Kconfig.iosched
1 if BLOCK
2
3 menu "IO Schedulers"
4
5 config IOSCHED_NOOP
6         bool
7         default y
8         ---help---
9           The no-op I/O scheduler is a minimal scheduler that does basic merging
10           and sorting. Its main uses include non-disk based block devices like
11           memory devices, and specialised software or hardware environments
12           that do their own scheduling and require only minimal assistance from
13           the kernel.
14
15 config IOSCHED_AS
16         tristate "Anticipatory I/O scheduler"
17         default y
18         ---help---
19           The anticipatory I/O scheduler is the default disk scheduler. It is
20           generally a good choice for most environments, but is quite large and
21           complex when compared to the deadline I/O scheduler, it can also be
22           slower in some cases especially some database loads.
23
24 config IOSCHED_DEADLINE
25         tristate "Deadline I/O scheduler"
26         default y
27         ---help---
28           The deadline I/O scheduler is simple and compact, and is often as
29           good as the anticipatory I/O scheduler, and in some database
30           workloads, better. In the case of a single process performing I/O to
31           a disk at any one time, its behaviour is almost identical to the
32           anticipatory I/O scheduler and so is a good choice.
33
34 config IOSCHED_CFQ
35         tristate "CFQ I/O scheduler"
36         default y
37         ---help---
38           The CFQ I/O scheduler tries to distribute bandwidth equally
39           among all processes in the system. It should provide a fair
40           working environment, suitable for desktop systems.
41
42 choice
43         prompt "Default I/O scheduler"
44         default DEFAULT_CFQ
45         help
46           Select the I/O scheduler which will be used by default for all
47           block devices.
48
49         config DEFAULT_AS
50                 bool "Anticipatory" if IOSCHED_AS=y
51
52         config DEFAULT_DEADLINE
53                 bool "Deadline" if IOSCHED_DEADLINE=y
54
55         config DEFAULT_CFQ
56                 bool "CFQ" if IOSCHED_CFQ=y
57
58         config DEFAULT_NOOP
59                 bool "No-op"
60
61 endchoice
62
63 config DEFAULT_IOSCHED
64         string
65         default "anticipatory" if DEFAULT_AS
66         default "deadline" if DEFAULT_DEADLINE
67         default "cfq" if DEFAULT_CFQ
68         default "noop" if DEFAULT_NOOP
69
70 endmenu
71
72 endif