blob: 4142d919b75c0a130266928c78e18e8fa7d3c290 [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
Maya Erez60181552012-06-27 11:25:26 +030015config IOSCHED_TEST
16 tristate "Test I/O scheduler"
17 depends on DEBUG_FS
18 default m
19 ---help---
20 The test I/O scheduler is a duplicate of the noop scheduler with
21 addition of test utlity.
22 It allows testing a block device by dispatching specific requests
23 according to the test case and declare PASS/FAIL according to the
24 requests completion error code.
25
Linus Torvalds1da177e2005-04-16 15:20:36 -070026config IOSCHED_DEADLINE
27 tristate "Deadline I/O scheduler"
28 default y
29 ---help---
Jens Axboe492af632009-10-03 09:37:51 +020030 The deadline I/O scheduler is simple and compact. It will provide
31 CSCAN service with FIFO expiration of requests, switching to
32 a new point in the service tree and doing a batch of IO from there
33 in case of expiry.
Linus Torvalds1da177e2005-04-16 15:20:36 -070034
35config IOSCHED_CFQ
36 tristate "CFQ I/O scheduler"
Vivek Goyalafc24d42010-04-26 19:27:56 +020037 # If BLK_CGROUP is a module, CFQ has to be built as module.
38 depends on (BLK_CGROUP=m && m) || !BLK_CGROUP || BLK_CGROUP=y
Linus Torvalds1da177e2005-04-16 15:20:36 -070039 default y
40 ---help---
41 The CFQ I/O scheduler tries to distribute bandwidth equally
42 among all processes in the system. It should provide a fair
Jens Axboe08dc8722009-10-03 09:40:47 +020043 and low latency working environment, suitable for both desktop
44 and server systems.
45
Jesper Juhla8e14b92007-02-17 20:08:22 +010046 This is the default I/O scheduler.
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
Vivek Goyalafc24d42010-04-26 19:27:56 +020048 Note: If BLK_CGROUP=m, then CFQ can be built only as module.
49
Vivek Goyal25bc6b02009-12-03 12:59:43 -050050config CFQ_GROUP_IOSCHED
51 bool "CFQ Group Scheduling support"
Vivek Goyalafc24d42010-04-26 19:27:56 +020052 depends on IOSCHED_CFQ && BLK_CGROUP
Vivek Goyal25bc6b02009-12-03 12:59:43 -050053 default n
54 ---help---
55 Enable group IO scheduling in CFQ.
56
Nate Diller131dda72005-10-30 15:02:19 -080057choice
58 prompt "Default I/O scheduler"
Jens Axboeb17fd9b2006-06-19 10:06:48 +020059 default DEFAULT_CFQ
Nate Diller131dda72005-10-30 15:02:19 -080060 help
61 Select the I/O scheduler which will be used by default for all
62 block devices.
63
Nate Diller131dda72005-10-30 15:02:19 -080064 config DEFAULT_DEADLINE
Jens Axboec6ea2ba2005-11-04 08:44:58 +010065 bool "Deadline" if IOSCHED_DEADLINE=y
Nate Diller131dda72005-10-30 15:02:19 -080066
67 config DEFAULT_CFQ
Jens Axboec6ea2ba2005-11-04 08:44:58 +010068 bool "CFQ" if IOSCHED_CFQ=y
Nate Diller131dda72005-10-30 15:02:19 -080069
70 config DEFAULT_NOOP
71 bool "No-op"
72
73endchoice
74
75config DEFAULT_IOSCHED
76 string
Nate Diller131dda72005-10-30 15:02:19 -080077 default "deadline" if DEFAULT_DEADLINE
78 default "cfq" if DEFAULT_CFQ
79 default "noop" if DEFAULT_NOOP
80
Linus Torvalds1da177e2005-04-16 15:20:36 -070081endmenu
David Howells93614012006-09-30 20:45:40 +020082
83endif