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