xref: /openbmc/linux/block/Kconfig.iosched (revision 6ab3d562)
1
2menu "IO Schedulers"
3
4config 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
14config 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
23config 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
33config 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
41choice
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
60endchoice
61
62config 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
69endmenu
70