summaryrefslogtreecommitdiff
path: root/block/Kconfig.iosched
blob: 0715ce93daef42001407f690912a1b2a437e5a6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
if BLOCK

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_DEADLINE
	tristate "Deadline I/O scheduler"
	default y
	---help---
	  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"
	default y
	---help---
	  The CFQ I/O scheduler tries to distribute bandwidth equally
	  among all processes in the system. It should provide a fair
	  and low latency working environment, suitable for both desktop
	  and server systems.

	  This is the default I/O scheduler.

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"
	default DEFAULT_CFQ
	help
	  Select the I/O scheduler which will be used by default for all
	  block devices.

	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 "deadline" if DEFAULT_DEADLINE
	default "cfq" if DEFAULT_CFQ
	default "noop" if DEFAULT_NOOP

config MQ_IOSCHED_DEADLINE
	tristate "MQ deadline I/O scheduler"
	default y
	---help---
	  MQ version of the deadline IO scheduler.

config MQ_IOSCHED_NONE
	bool
	default y

choice
	prompt "Default single-queue blk-mq I/O scheduler"
	default DEFAULT_SQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with a single queue.

	config DEFAULT_SQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_SQ_NONE
		bool "None"

endchoice

config DEFAULT_SQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_SQ_DEADLINE
	default "none" if DEFAULT_SQ_NONE

choice
	prompt "Default multi-queue blk-mq I/O scheduler"
	default DEFAULT_MQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with multiple queues.

	config DEFAULT_MQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_MQ_NONE
		bool "None"

endchoice

config DEFAULT_MQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_MQ_DEADLINE
	default "none" if DEFAULT_MQ_NONE

endmenu

endif