diff options
author | Alan D. Brunelle <Alan.Brunelle@hp.com> | 2007-10-15 07:22:26 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2007-10-16 03:59:55 -0400 |
commit | 23c76983e23628c7762137a00651e3e371aa97d3 (patch) | |
tree | 3e335f0eb806b7890542420d6c2f635823d210ff /Documentation | |
parent | 26bbb29a2a4e1491238ae49bf3294955dc0ab662 (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.txt | 21 | ||||
-rw-r--r-- | Documentation/block/deadline-iosched.txt | 23 | ||||
-rw-r--r-- | Documentation/block/switching-sched.txt | 21 |
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. | |||
20 | However, setting the antic_expire (see tunable parameters below) produces | 20 | However, setting the antic_expire (see tunable parameters below) produces |
21 | very similar behavior to the deadline IO scheduler. | 21 | very similar behavior to the deadline IO scheduler. |
22 | 22 | ||
23 | |||
24 | Selecting IO schedulers | 23 | Selecting IO schedulers |
25 | ----------------------- | 24 | ----------------------- |
26 | To choose IO schedulers at boot time, use the argument 'elevator=deadline'. | 25 | Refer to Documentation/block/switching-sched.txt for information on |
27 | 'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are | 26 | selecting an io scheduler on a per-device basis. |
28 | assigned globally at boot time only presently. It's also possible to change | ||
29 | the IO scheduler for a determined device on the fly, as described in | ||
30 | Documentation/block/switching-sched.txt. | ||
31 | |||
32 | 27 | ||
33 | Anticipatory IO scheduler Policies | 28 | Anticipatory IO scheduler Policies |
34 | ---------------------------------- | 29 | ---------------------------------- |
@@ -115,7 +110,7 @@ statistics (average think time, average seek distance) on the process | |||
115 | that submitted the just completed request are examined. If it seems | 110 | that submitted the just completed request are examined. If it seems |
116 | likely that that process will submit another request soon, and that | 111 | likely that that process will submit another request soon, and that |
117 | request is likely to be near the just completed request, then the IO | 112 | request is likely to be near the just completed request, then the IO |
118 | scheduler will stop dispatching more read requests for up time (antic_expire) | 113 | scheduler will stop dispatching more read requests for up to (antic_expire) |
119 | milliseconds, hoping that process will submit a new request near the one | 114 | milliseconds, hoping that process will submit a new request near the one |
120 | that just completed. If such a request is made, then it is dispatched | 115 | that just completed. If such a request is made, then it is dispatched |
121 | immediately. If the antic_expire wait time expires, then the IO scheduler | 116 | immediately. 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 | ||
163 | In addition to the tunables above there is a read-only file named est_time | ||
164 | which, 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. | |||
5 | In particular, it will clarify the meaning of the exposed tunables that may be | 5 | In particular, it will clarify the meaning of the exposed tunables that may be |
6 | of interest to power users. | 6 | of interest to power users. |
7 | 7 | ||
8 | Each io queue has a set of io scheduler tunables associated with it. These | 8 | Selecting IO schedulers |
9 | tunables control how the io scheduler works. You can find these entries | 9 | ----------------------- |
10 | in: | 10 | Refer to Documentation/block/switching-sched.txt for information on |
11 | 11 | selecting an io scheduler on a per-device basis. | |
12 | /sys/block/<device>/queue/iosched | ||
13 | |||
14 | assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted, | ||
15 | you 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 | ||
42 | When a read request expires its deadline, we must move some requests from | 36 | When a read request expires its deadline, we must move some requests from |
43 | the sorted io scheduler list to the block device dispatch queue. fifo_batch | 37 | the sorted io scheduler list to the block device dispatch queue. fifo_batch |
44 | controls how many requests we move, based on the cost of each request. A | 38 | controls how many requests we move. |
45 | request is either qualified as a seek or a stream. The io scheduler knows | ||
46 | the last request that was serviced by the drive (or will be serviced right | ||
47 | before this one). See seek_cost and stream_unit. | ||
48 | 39 | ||
49 | 40 | ||
50 | write_starved (number of dispatches) | 41 | writes_starved (number of dispatches) |
51 | ------------- | 42 | -------------- |
52 | 43 | ||
53 | When we have to move requests from the io scheduler queue to the block | 44 | When we have to move requests from the io scheduler queue to the block |
54 | device dispatch queue, we always give a preference to reads. However, we | 45 | device 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 @@ | |||
1 | To choose IO schedulers at boot time, use the argument 'elevator=deadline'. | ||
2 | 'noop', 'as' and 'cfq' (the default) are also available. IO schedulers are | ||
3 | assigned globally at boot time only presently. | ||
4 | |||
5 | Each io queue has a set of io scheduler tunables associated with it. These | ||
6 | tunables control how the io scheduler works. You can find these entries | ||
7 | in: | ||
8 | |||
9 | /sys/block/<device>/queue/iosched | ||
10 | |||
11 | assuming that you have sysfs mounted on /sys. If you don't have sysfs mounted, | ||
12 | you can do so by typing: | ||
13 | |||
14 | # mount none /sys -t sysfs | ||
15 | |||
1 | As of the Linux 2.6.10 kernel, it is now possible to change the | 16 | As of the Linux 2.6.10 kernel, it is now possible to change the |
2 | IO scheduler for a given block device on the fly (thus making it possible, | 17 | IO scheduler for a given block device on the fly (thus making it possible, |
3 | for instance, to set the CFQ scheduler for the system default, but | 18 | for 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 |
22 | noop [anticipatory] deadline cfq | 37 | noop [anticipatory] deadline cfq |
38 | |||
39 | Each io queue has a set of io scheduler tunables associated with it. These | ||
40 | tunables control how the io scheduler works. You can find these entries | ||
41 | in: | ||
42 | |||
43 | /sys/block/<device>/queue/iosched | ||