blob: 3199b76f795de33f9db31e140aad75a716a51d44 [file] [log] [blame]
David Howells93614012006-09-30 20:45:40 +02001if BLOCK
Linus Torvalds1da177e2005-04-16 15:20:36 -07002
3menu "IO Schedulers"
4
5config 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
Linus Torvalds1da177e2005-04-16 15:20:36 -070015config IOSCHED_DEADLINE
16 tristate "Deadline I/O scheduler"
17 default y
18 ---help---
Jens Axboe492af632009-10-03 09:37:51 +020019 The deadline I/O scheduler is simple and compact. It will provide
20 CSCAN service with FIFO expiration of requests, switching to
21 a new point in the service tree and doing a batch of IO from there
22 in case of expiry.
Linus Torvalds1da177e2005-04-16 15:20:36 -070023
24config IOSCHED_CFQ
25 tristate "CFQ I/O scheduler"
Vivek Goyalafc24d42010-04-26 19:27:56 +020026 # If BLK_CGROUP is a module, CFQ has to be built as module.
27 depends on (BLK_CGROUP=m && m) || !BLK_CGROUP || BLK_CGROUP=y
Linus Torvalds1da177e2005-04-16 15:20:36 -070028 default y
29 ---help---
30 The CFQ I/O scheduler tries to distribute bandwidth equally
31 among all processes in the system. It should provide a fair
Jens Axboe08dc8722009-10-03 09:40:47 +020032 and low latency working environment, suitable for both desktop
33 and server systems.
34
Jesper Juhla8e14b92007-02-17 20:08:22 +010035 This is the default I/O scheduler.
Linus Torvalds1da177e2005-04-16 15:20:36 -070036
Vivek Goyalafc24d42010-04-26 19:27:56 +020037 Note: If BLK_CGROUP=m, then CFQ can be built only as module.
38
Vivek Goyal25bc6b02009-12-03 12:59:43 -050039config CFQ_GROUP_IOSCHED
40 bool "CFQ Group Scheduling support"
Vivek Goyalafc24d42010-04-26 19:27:56 +020041 depends on IOSCHED_CFQ && BLK_CGROUP
Vivek Goyal25bc6b02009-12-03 12:59:43 -050042 default n
43 ---help---
44 Enable group IO scheduling in CFQ.
45
Nate Diller131dda72005-10-30 15:02:19 -080046choice
47 prompt "Default I/O scheduler"
Jens Axboeb17fd9b2006-06-19 10:06:48 +020048 default DEFAULT_CFQ
Nate Diller131dda72005-10-30 15:02:19 -080049 help
50 Select the I/O scheduler which will be used by default for all
51 block devices.
52
Nate Diller131dda72005-10-30 15:02:19 -080053 config DEFAULT_DEADLINE
Jens Axboec6ea2ba2005-11-04 08:44:58 +010054 bool "Deadline" if IOSCHED_DEADLINE=y
Nate Diller131dda72005-10-30 15:02:19 -080055
56 config DEFAULT_CFQ
Jens Axboec6ea2ba2005-11-04 08:44:58 +010057 bool "CFQ" if IOSCHED_CFQ=y
Nate Diller131dda72005-10-30 15:02:19 -080058
59 config DEFAULT_NOOP
60 bool "No-op"
61
62endchoice
63
64config DEFAULT_IOSCHED
65 string
Nate Diller131dda72005-10-30 15:02:19 -080066 default "deadline" if DEFAULT_DEADLINE
67 default "cfq" if DEFAULT_CFQ
68 default "noop" if DEFAULT_NOOP
69
Linus Torvalds1da177e2005-04-16 15:20:36 -070070endmenu
David Howells93614012006-09-30 20:45:40 +020071
72endif