Merge tag 'doc-4.8-fixes' of git://git.lwn.net/linux
[linux-2.6-block.git] / Documentation / block / queue-sysfs.txt
CommitLineData
cbb5901b
JA
1Queue sysfs files
2=================
3
4This text file will detail the queue files that are located in the sysfs tree
5for each block device. Note that stacked devices typically do not export
6any settings, since their queue merely functions are a remapping target.
7These files are the ones found in the /sys/block/xxx/queue/ directory.
8
9Files denoted with a RO postfix are readonly and the RW postfix means
10read-write.
11
4004e90c
NJ
12add_random (RW)
13----------------
db4ced14 14This file allows to turn off the disk entropy contribution. Default
4004e90c
NJ
15value of this file is '1'(on).
16
17discard_granularity (RO)
18-----------------------
19This shows the size of internal allocation of the device in bytes, if
20reported by the device. A value of '0' means device does not support
21the discard functionality.
22
0034af03 23discard_max_hw_bytes (RO)
4004e90c
NJ
24----------------------
25Devices that support discard functionality may have internal limits on
26the number of bytes that can be trimmed or unmapped in a single operation.
27The discard_max_bytes parameter is set by the device driver to the maximum
28number of bytes that can be discarded in a single operation. Discard
29requests issued to the device must not exceed this limit. A discard_max_bytes
30value of 0 means that the device does not support discard functionality.
31
0034af03
JA
32discard_max_bytes (RW)
33----------------------
34While discard_max_hw_bytes is the hardware limit for the device, this
35setting is the software limit. Some devices exhibit large latencies when
36large discards are issued, setting this value lower will make Linux issue
37smaller discards and potentially help reduce latencies induced by large
38discard operations.
39
4004e90c
NJ
40discard_zeroes_data (RO)
41------------------------
42When read, this file will show if the discarded block are zeroed by the
43device or not. If its value is '1' the blocks are zeroed otherwise not.
44
cbb5901b
JA
45hw_sector_size (RO)
46-------------------
47This is the hardware sector size of the device, in bytes.
48
4004e90c
NJ
49iostats (RW)
50-------------
51This file is used to control (on/off) the iostats accounting of the
52disk.
53
54logical_block_size (RO)
55-----------------------
141fd28c 56This is the logical block size of the device, in bytes.
4004e90c 57
cbb5901b
JA
58max_hw_sectors_kb (RO)
59----------------------
60This is the maximum number of kilobytes supported in a single data transfer.
61
4004e90c
NJ
62max_integrity_segments (RO)
63---------------------------
64When read, this file shows the max limit of integrity segments as
65set by block layer which a hardware controller can handle.
66
cbb5901b
JA
67max_sectors_kb (RW)
68-------------------
69This is the maximum number of kilobytes that the block layer will allow
70for a filesystem request. Must be smaller than or equal to the maximum
71size allowed by the hardware.
72
4004e90c
NJ
73max_segments (RO)
74-----------------
75Maximum number of segments of the device.
76
77max_segment_size (RO)
78---------------------
79Maximum segment size of the device.
80
81minimum_io_size (RO)
82--------------------
db4ced14 83This is the smallest preferred IO size reported by the device.
4004e90c 84
cbb5901b
JA
85nomerges (RW)
86-------------
488991e2
AB
87This enables the user to disable the lookup logic involved with IO
88merging requests in the block layer. By default (0) all merges are
89enabled. When set to 1 only simple one-hit merges will be tried. When
90set to 2 no merge algorithms will be tried (including one-hit or more
91complex tree/hash lookups).
cbb5901b
JA
92
93nr_requests (RW)
94----------------
95This controls how many requests may be allocated in the block layer for
96read or write requests. Note that the total allocated number may be twice
97this amount, since it applies only to reads or writes (not the accumulated
98sum).
99
a051661c
TH
100To avoid priority inversion through request starvation, a request
101queue maintains a separate request pool per each cgroup when
102CONFIG_BLK_CGROUP is enabled, and this parameter applies to each such
103per-block-cgroup request pool. IOW, if there are N block cgroups,
f884ab15 104each request queue may have up to N request pools, each independently
a051661c
TH
105regulated by nr_requests.
106
4004e90c
NJ
107optimal_io_size (RO)
108--------------------
db4ced14 109This is the optimal IO size reported by the device.
4004e90c
NJ
110
111physical_block_size (RO)
112------------------------
113This is the physical block size of device, in bytes.
114
cbb5901b
JA
115read_ahead_kb (RW)
116------------------
117Maximum number of kilobytes to read-ahead for filesystems on this block
118device.
119
4004e90c
NJ
120rotational (RW)
121---------------
122This file is used to stat if the device is of rotational type or
123non-rotational type.
124
cbb5901b
JA
125rq_affinity (RW)
126----------------
5757a6d7
DW
127If this option is '1', the block layer will migrate request completions to the
128cpu "group" that originally submitted the request. For some workloads this
129provides a significant reduction in CPU cycles due to caching effects.
130
131For storage configurations that need to maximize distribution of completion
132processing setting this option to '2' forces the completion to run on the
133requesting cpu (bypassing the "group" aggregation logic).
cbb5901b
JA
134
135scheduler (RW)
136--------------
137When read, this file will display the current and available IO schedulers
138for this block device. The currently active IO scheduler will be enclosed
139in [] brackets. Writing an IO scheduler name to this file will switch
140control of this block device to that new IO scheduler. Note that writing
141an IO scheduler name to this file will attempt to load that IO scheduler
142module, if it isn't already present in the system.
143
93e9d8e8
JA
144write_cache (RW)
145----------------
146When read, this file will display whether the device has write back
147caching enabled or not. It will return "write back" for the former
148case, and "write through" for the latter. Writing to this file can
149change the kernels view of the device, but it doesn't alter the
150device state. This means that it might not be safe to toggle the
151setting from "write back" to "write through", since that will also
152eliminate cache flushes issued by the kernel.
cbb5901b
JA
153
154
155Jens Axboe <jens.axboe@oracle.com>, February 2009