Skip to content

Commit fdc6fdc

Browse files
Namjae Jeonaxboe
authored andcommitted
Documentation: cfq-iosched: update documentation help for cfq tunables
Add the documentation text for latency, target_latency & group_idle tunnable parameters in the block/cfq-iosched.txt. Also fix few typo(spelling) mistakes. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com> Language somewhat modified by Jens. Signed-off-by: Jens Axboe <axboe@kernel.dk>
1 parent 64f8de4 commit fdc6fdc

1 file changed

Lines changed: 44 additions & 3 deletions

File tree

Documentation/block/cfq-iosched.txt

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ The main aim of CFQ scheduler is to provide a fair allocation of the disk
55
I/O bandwidth for all the processes which requests an I/O operation.
66

77
CFQ maintains the per process queue for the processes which request I/O
8-
operation(syncronous requests). In case of asynchronous requests, all the
8+
operation(synchronous requests). In case of asynchronous requests, all the
99
requests from all the processes are batched together according to their
1010
process's I/O priority.
1111

@@ -66,6 +66,47 @@ This parameter is used to set the timeout of synchronous requests. Default
6666
value of this is 124ms. In case to favor synchronous requests over asynchronous
6767
one, this value should be decreased relative to fifo_expire_async.
6868

69+
group_idle
70+
-----------
71+
This parameter forces idling at the CFQ group level instead of CFQ
72+
queue level. This was introduced after after a bottleneck was observed
73+
in higher end storage due to idle on sequential queue and allow dispatch
74+
from a single queue. The idea with this parameter is that it can be run with
75+
slice_idle=0 and group_idle=8, so that idling does not happen on individual
76+
queues in the group but happens overall on the group and thus still keeps the
77+
IO controller working.
78+
Not idling on individual queues in the group will dispatch requests from
79+
multiple queues in the group at the same time and achieve higher throughput
80+
on higher end storage.
81+
82+
Default value for this parameter is 8ms.
83+
84+
latency
85+
-------
86+
This parameter is used to enable/disable the latency mode of the CFQ
87+
scheduler. If latency mode (called low_latency) is enabled, CFQ tries
88+
to recompute the slice time for each process based on the target_latency set
89+
for the system. This favors fairness over throughput. Disabling low
90+
latency (setting it to 0) ignores target latency, allowing each process in the
91+
system to get a full time slice.
92+
93+
By default low latency mode is enabled.
94+
95+
target_latency
96+
--------------
97+
This parameter is used to calculate the time slice for a process if cfq's
98+
latency mode is enabled. It will ensure that sync requests have an estimated
99+
latency. But if sequential workload is higher(e.g. sequential read),
100+
then to meet the latency constraints, throughput may decrease because of less
101+
time for each process to issue I/O request before the cfq queue is switched.
102+
103+
Though this can be overcome by disabling the latency_mode, it may increase
104+
the read latency for some applications. This parameter allows for changing
105+
target_latency through the sysfs interface which can provide the balanced
106+
throughput and read latency.
107+
108+
Default value for target_latency is 300ms.
109+
69110
slice_async
70111
-----------
71112
This parameter is same as of slice_sync but for asynchronous queue. The
@@ -98,8 +139,8 @@ in the device exceeds this parameter. This parameter is used for synchronous
98139
request.
99140

100141
In case of storage with several disk, this setting can limit the parallel
101-
processing of request. Therefore, increasing the value can imporve the
102-
performace although this can cause the latency of some I/O to increase due
142+
processing of request. Therefore, increasing the value can improve the
143+
performance although this can cause the latency of some I/O to increase due
103144
to more number of requests.
104145

105146
CFQ Group scheduling

0 commit comments

Comments
 (0)