aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorAlan D. Brunelle <Alan.Brunelle@hp.com>2007-10-15 07:22:26 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-10-16 03:59:55 -0400
commit23c76983e23628c7762137a00651e3e371aa97d3 (patch)
tree3e335f0eb806b7890542420d6c2f635823d210ff /Documentation
parent26bbb29a2a4e1491238ae49bf3294955dc0ab662 (diff)
Some IO scheduler cleanup in Documentation/block
as-iosched.txt: o Changed IO scheduler selection text to a reference to the switching-sched.txt file. o Fixed typo: 'for up time...' -> 'for up to...' o Added short description of the est_time file. deadline-iosched.txt: o Changed IO scheduler selection text to a reference to the switching-sched.txt file. o Removed references to non-existent seek-cost and stream_unit. o Fixed typo: 'write_starved' -> 'writes_starved' switching-sched.txt: o Added in boot-time argument to set the default IO scheduler. (From as-iosched.txt) o Added in sysfs mount instructions. (From deadline-iosched.txt) Signed-off-by: Alan D. Brunelle <Alan.Brunelle@hp.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/block/as-iosched.txt21
-rw-r--r--Documentation/block/deadline-iosched.txt23
-rw-r--r--Documentation/block/switching-sched.txt21
3 files changed, 41 insertions, 24 deletions
diff --git a/Documentation/block/as-iosched.txt b/Documentation/block/as-iosched.txt
index a598fe10a297..738b72be128e 100644
--- a/Documentation/block/as-iosched.txt
+++ b/Documentation/block/as-iosched.txt
@@ -20,15 +20,10 @@ actually has a head for each physical device in the logical RAID device.
20However, setting the antic_expire (see tunable parameters below) produces 20However, setting the antic_expire (see tunable parameters below) produces
21very similar behavior to the deadline IO scheduler. 21very similar behavior to the deadline IO scheduler.
22 22
23
24Selecting IO schedulers 23Selecting IO schedulers
25----------------------- 24-----------------------
26To choose IO schedulers at boot time, use the argument 'elevator=deadline'. 25Refer to Documentation/block/switching-sched.txt for information on
27'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are 26selecting an io scheduler on a per-device basis.
28assigned globally at boot time only presently. It's also possible to change
29the IO scheduler for a determined device on the fly, as described in
30Documentation/block/switching-sched.txt.
31
32 27
33Anticipatory IO scheduler Policies 28Anticipatory IO scheduler Policies
34---------------------------------- 29----------------------------------
@@ -115,7 +110,7 @@ statistics (average think time, average seek distance) on the process
115that submitted the just completed request are examined. If it seems 110that submitted the just completed request are examined. If it seems
116likely that that process will submit another request soon, and that 111likely that that process will submit another request soon, and that
117request is likely to be near the just completed request, then the IO 112request is likely to be near the just completed request, then the IO
118scheduler will stop dispatching more read requests for up time (antic_expire) 113scheduler will stop dispatching more read requests for up to (antic_expire)
119milliseconds, hoping that process will submit a new request near the one 114milliseconds, hoping that process will submit a new request near the one
120that just completed. If such a request is made, then it is dispatched 115that just completed. If such a request is made, then it is dispatched
121immediately. If the antic_expire wait time expires, then the IO scheduler 116immediately. If the antic_expire wait time expires, then the IO scheduler
@@ -165,3 +160,13 @@ The parameters are:
165 for big seek time devices though not a linear correspondence - most 160 for big seek time devices though not a linear correspondence - most
166 processes have only a few ms thinktime. 161 processes have only a few ms thinktime.
167 162
163In addition to the tunables above there is a read-only file named est_time
164which, when read, will show:
165
166 - The probability of a task exiting without a cooperating task
167 submitting an anticipated IO.
168
169 - The current mean think time.
170
171 - The seek distance used to determine if an incoming IO is better.
172
diff --git a/Documentation/block/deadline-iosched.txt b/Documentation/block/deadline-iosched.txt
index 03775dd99983..c23cab13c3d1 100644
--- a/Documentation/block/deadline-iosched.txt
+++ b/Documentation/block/deadline-iosched.txt
@@ -5,16 +5,10 @@ This little file attempts to document how the deadline io scheduler works.
5In particular, it will clarify the meaning of the exposed tunables that may be 5In particular, it will clarify the meaning of the exposed tunables that may be
6of interest to power users. 6of interest to power users.
7 7
8Each io queue has a set of io scheduler tunables associated with it. These 8Selecting IO schedulers
9tunables control how the io scheduler works. You can find these entries 9-----------------------
10in: 10Refer to Documentation/block/switching-sched.txt for information on
11 11selecting an io scheduler on a per-device basis.
12/sys/block/<device>/queue/iosched
13
14assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
15you can do so by typing:
16
17# mount none /sys -t sysfs
18 12
19 13
20******************************************************************************** 14********************************************************************************
@@ -41,14 +35,11 @@ fifo_batch
41 35
42When a read request expires its deadline, we must move some requests from 36When a read request expires its deadline, we must move some requests from
43the sorted io scheduler list to the block device dispatch queue. fifo_batch 37the sorted io scheduler list to the block device dispatch queue. fifo_batch
44controls how many requests we move, based on the cost of each request. A 38controls how many requests we move.
45request is either qualified as a seek or a stream. The io scheduler knows
46the last request that was serviced by the drive (or will be serviced right
47before this one). See seek_cost and stream_unit.
48 39
49 40
50write_starved (number of dispatches) 41writes_starved (number of dispatches)
51------------- 42--------------
52 43
53When we have to move requests from the io scheduler queue to the block 44When we have to move requests from the io scheduler queue to the block
54device dispatch queue, we always give a preference to reads. However, we 45device dispatch queue, we always give a preference to reads. However, we
diff --git a/Documentation/block/switching-sched.txt b/Documentation/block/switching-sched.txt
index 5fa130a67531..634c952e1964 100644
--- a/Documentation/block/switching-sched.txt
+++ b/Documentation/block/switching-sched.txt
@@ -1,3 +1,18 @@
1To choose IO schedulers at boot time, use the argument 'elevator=deadline'.
2'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are
3assigned globally at boot time only presently.
4
5Each io queue has a set of io scheduler tunables associated with it. These
6tunables control how the io scheduler works. You can find these entries
7in:
8
9/sys/block/<device>/queue/iosched
10
11assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted,
12you can do so by typing:
13
14# mount none /sys -t sysfs
15
1As of the Linux 2.6.10 kernel, it is now possible to change the 16As of the Linux 2.6.10 kernel, it is now possible to change the
2IO scheduler for a given block device on the fly (thus making it possible, 17IO scheduler for a given block device on the fly (thus making it possible,
3for instance, to set the CFQ scheduler for the system default, but 18for instance, to set the CFQ scheduler for the system default, but
@@ -20,3 +35,9 @@ noop anticipatory deadline [cfq]
20# echo anticipatory > /sys/block/hda/queue/scheduler 35# echo anticipatory > /sys/block/hda/queue/scheduler
21# cat /sys/block/hda/queue/scheduler 36# cat /sys/block/hda/queue/scheduler
22noop [anticipatory] deadline cfq 37noop [anticipatory] deadline cfq
38
39Each io queue has a set of io scheduler tunables associated with it. These
40tunables control how the io scheduler works. You can find these entries
41in:
42
43/sys/block/<device>/queue/iosched