Commit | Line | Data |
---|---|---|
07c9093c EB |
1 | What: /sys/block/<disk>/alignment_offset |
2 | Date: April 2009 | |
3 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
0e53c2be | 4 | Description: |
07c9093c EB |
5 | Storage devices may report a physical block size that is |
6 | bigger than the logical block size (for instance a drive | |
7 | with 4KB physical sectors exposing 512-byte logical | |
8 | blocks to the operating system). This parameter | |
9 | indicates how many bytes the beginning of the device is | |
10 | offset from the disk's natural alignment. | |
34433332 | 11 | |
34433332 | 12 | |
07c9093c EB |
13 | What: /sys/block/<disk>/discard_alignment |
14 | Date: May 2011 | |
15 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
16 | Description: | |
17 | Devices that support discard functionality may | |
18 | internally allocate space in units that are bigger than | |
19 | the exported logical block size. The discard_alignment | |
20 | parameter indicates how many bytes the beginning of the | |
21 | device is offset from the internal allocation unit's | |
22 | natural alignment. | |
23 | ||
24 | ||
25 | What: /sys/block/<disk>/diskseq | |
26 | Date: February 2021 | |
27 | Contact: Matteo Croce <mcroce@microsoft.com> | |
28 | Description: | |
29 | The /sys/block/<disk>/diskseq files reports the disk | |
30 | sequence number, which is a monotonically increasing | |
31 | number assigned to every drive. | |
32 | Some devices, like the loop device, refresh such number | |
33 | every time the backing file is changed. | |
34 | The value type is 64 bit unsigned. | |
0e53c2be JM |
35 | |
36 | ||
7b5f8012 SM |
37 | What: /sys/block/<disk>/inflight |
38 | Date: October 2009 | |
39 | Contact: Jens Axboe <axboe@kernel.dk>, Nikanth Karthikesan <knikanth@suse.de> | |
40 | Description: | |
41 | Reports the number of I/O requests currently in progress | |
42 | (pending / in flight) in a device driver. This can be less | |
43 | than the number of requests queued in the block device queue. | |
44 | The report contains 2 fields: one for read requests | |
45 | and one for write requests. | |
46 | The value type is unsigned int. | |
47 | Cf. Documentation/block/stat.rst which contains a single value for | |
48 | requests in flight. | |
849ab826 | 49 | This is related to /sys/block/<disk>/queue/nr_requests |
7b5f8012 SM |
50 | and for SCSI device also its queue_depth. |
51 | ||
52 | ||
07c9093c EB |
53 | What: /sys/block/<disk>/integrity/device_is_integrity_capable |
54 | Date: July 2014 | |
55 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
0e53c2be | 56 | Description: |
07c9093c EB |
57 | Indicates whether a storage device is capable of storing |
58 | integrity metadata. Set if the device is T10 PI-capable. | |
c1c72b59 MP |
59 | |
60 | ||
61 | What: /sys/block/<disk>/integrity/format | |
62 | Date: June 2008 | |
63 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
64 | Description: | |
65 | Metadata format for integrity capable block device. | |
66 | E.g. T10-DIF-TYPE1-CRC. | |
67 | ||
68 | ||
07c9093c EB |
69 | What: /sys/block/<disk>/integrity/protection_interval_bytes |
70 | Date: July 2015 | |
71 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
72 | Description: | |
73 | Describes the number of data bytes which are protected | |
74 | by one integrity tuple. Typically the device's logical | |
75 | block size. | |
76 | ||
77 | ||
c1c72b59 MP |
78 | What: /sys/block/<disk>/integrity/read_verify |
79 | Date: June 2008 | |
80 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
81 | Description: | |
82 | Indicates whether the block layer should verify the | |
83 | integrity of read requests serviced by devices that | |
84 | support sending integrity metadata. | |
85 | ||
86 | ||
87 | What: /sys/block/<disk>/integrity/tag_size | |
88 | Date: June 2008 | |
89 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
90 | Description: | |
91 | Number of bytes of integrity tag space available per | |
92 | 512 bytes of data. | |
93 | ||
94 | ||
95 | What: /sys/block/<disk>/integrity/write_generate | |
96 | Date: June 2008 | |
97 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
98 | Description: | |
99 | Indicates whether the block layer should automatically | |
100 | generate checksums for write requests bound for | |
101 | devices that support receiving integrity metadata. | |
c72758f3 | 102 | |
c72758f3 MP |
103 | |
104 | What: /sys/block/<disk>/<partition>/alignment_offset | |
105 | Date: April 2009 | |
106 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
107 | Description: | |
108 | Storage devices may report a physical block size that is | |
109 | bigger than the logical block size (for instance a drive | |
110 | with 4KB physical sectors exposing 512-byte logical | |
111 | blocks to the operating system). This parameter | |
112 | indicates how many bytes the beginning of the partition | |
113 | is offset from the disk's natural alignment. | |
114 | ||
d70d0711 MP |
115 | |
116 | What: /sys/block/<disk>/<partition>/discard_alignment | |
117 | Date: May 2011 | |
118 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
119 | Description: | |
120 | Devices that support discard functionality may | |
121 | internally allocate space in units that are bigger than | |
122 | the exported logical block size. The discard_alignment | |
123 | parameter indicates how many bytes the beginning of the | |
124 | partition is offset from the internal allocation unit's | |
125 | natural alignment. | |
126 | ||
07c9093c EB |
127 | |
128 | What: /sys/block/<disk>/<partition>/stat | |
129 | Date: February 2008 | |
130 | Contact: Jerome Marchand <jmarchan@redhat.com> | |
131 | Description: | |
132 | The /sys/block/<disk>/<partition>/stat files display the | |
133 | I/O statistics of partition <partition>. The format is the | |
134 | same as the format of /sys/block/<disk>/stat. | |
135 | ||
136 | ||
849ab826 EB |
137 | What: /sys/block/<disk>/queue/add_random |
138 | Date: June 2010 | |
139 | Contact: linux-block@vger.kernel.org | |
140 | Description: | |
141 | [RW] This file allows to turn off the disk entropy contribution. | |
142 | Default value of this file is '1'(on). | |
143 | ||
144 | ||
07c9093c EB |
145 | What: /sys/block/<disk>/queue/chunk_sectors |
146 | Date: September 2016 | |
147 | Contact: Hannes Reinecke <hare@suse.com> | |
148 | Description: | |
849ab826 | 149 | [RO] chunk_sectors has different meaning depending on the type |
07c9093c | 150 | of the disk. For a RAID device (dm-raid), chunk_sectors |
849ab826 EB |
151 | indicates the size in 512B sectors of the RAID volume stripe |
152 | segment. For a zoned block device, either host-aware or | |
153 | host-managed, chunk_sectors indicates the size in 512B sectors | |
154 | of the zones of the device, with the eventual exception of the | |
155 | last zone of the device which may be smaller. | |
156 | ||
157 | ||
20f01f16 EB |
158 | What: /sys/block/<disk>/queue/crypto/ |
159 | Date: February 2022 | |
160 | Contact: linux-block@vger.kernel.org | |
161 | Description: | |
162 | The presence of this subdirectory of /sys/block/<disk>/queue/ | |
163 | indicates that the device supports inline encryption. This | |
164 | subdirectory contains files which describe the inline encryption | |
165 | capabilities of the device. For more information about inline | |
166 | encryption, refer to Documentation/block/inline-encryption.rst. | |
167 | ||
168 | ||
169 | What: /sys/block/<disk>/queue/crypto/max_dun_bits | |
170 | Date: February 2022 | |
171 | Contact: linux-block@vger.kernel.org | |
172 | Description: | |
173 | [RO] This file shows the maximum length, in bits, of data unit | |
174 | numbers accepted by the device in inline encryption requests. | |
175 | ||
176 | ||
177 | What: /sys/block/<disk>/queue/crypto/modes/<mode> | |
178 | Date: February 2022 | |
179 | Contact: linux-block@vger.kernel.org | |
180 | Description: | |
181 | [RO] For each crypto mode (i.e., encryption/decryption | |
182 | algorithm) the device supports with inline encryption, a file | |
183 | will exist at this location. It will contain a hexadecimal | |
184 | number that is a bitmask of the supported data unit sizes, in | |
185 | bytes, for that crypto mode. | |
186 | ||
187 | Currently, the crypto modes that may be supported are: | |
188 | ||
189 | * AES-256-XTS | |
190 | * AES-128-CBC-ESSIV | |
191 | * Adiantum | |
192 | ||
193 | For example, if a device supports AES-256-XTS inline encryption | |
194 | with data unit sizes of 512 and 4096 bytes, the file | |
195 | /sys/block/<disk>/queue/crypto/modes/AES-256-XTS will exist and | |
196 | will contain "0x1200". | |
197 | ||
198 | ||
199 | What: /sys/block/<disk>/queue/crypto/num_keyslots | |
200 | Date: February 2022 | |
201 | Contact: linux-block@vger.kernel.org | |
202 | Description: | |
203 | [RO] This file shows the number of keyslots the device has for | |
204 | use with inline encryption. | |
205 | ||
206 | ||
849ab826 EB |
207 | What: /sys/block/<disk>/queue/dax |
208 | Date: June 2016 | |
209 | Contact: linux-block@vger.kernel.org | |
210 | Description: | |
211 | [RO] This file indicates whether the device supports Direct | |
212 | Access (DAX), used by CPU-addressable storage to bypass the | |
213 | pagecache. It shows '1' if true, '0' if not. | |
07c9093c EB |
214 | |
215 | ||
d70d0711 MP |
216 | What: /sys/block/<disk>/queue/discard_granularity |
217 | Date: May 2011 | |
218 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
219 | Description: | |
849ab826 EB |
220 | [RO] Devices that support discard functionality may internally |
221 | allocate space using units that are bigger than the logical | |
222 | block size. The discard_granularity parameter indicates the size | |
223 | of the internal allocation unit in bytes if reported by the | |
224 | device. Otherwise the discard_granularity will be set to match | |
225 | the device's physical block size. A discard_granularity of 0 | |
226 | means that the device does not support discard functionality. | |
d70d0711 | 227 | |
07c9093c | 228 | |
d70d0711 MP |
229 | What: /sys/block/<disk>/queue/discard_max_bytes |
230 | Date: May 2011 | |
231 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
232 | Description: | |
849ab826 EB |
233 | [RW] While discard_max_hw_bytes is the hardware limit for the |
234 | device, this setting is the software limit. Some devices exhibit | |
235 | large latencies when large discards are issued, setting this | |
236 | value lower will make Linux issue smaller discards and | |
237 | potentially help reduce latencies induced by large discard | |
238 | operations. | |
239 | ||
240 | ||
241 | What: /sys/block/<disk>/queue/discard_max_hw_bytes | |
242 | Date: July 2015 | |
243 | Contact: linux-block@vger.kernel.org | |
244 | Description: | |
245 | [RO] Devices that support discard functionality may have | |
246 | internal limits on the number of bytes that can be trimmed or | |
247 | unmapped in a single operation. The `discard_max_hw_bytes` | |
248 | parameter is set by the device driver to the maximum number of | |
249 | bytes that can be discarded in a single operation. Discard | |
250 | requests issued to the device must not exceed this limit. A | |
251 | `discard_max_hw_bytes` value of 0 means that the device does not | |
252 | support discard functionality. | |
d70d0711 | 253 | |
07c9093c | 254 | |
d70d0711 MP |
255 | What: /sys/block/<disk>/queue/discard_zeroes_data |
256 | Date: May 2011 | |
257 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
258 | Description: | |
849ab826 | 259 | [RO] Will always return 0. Don't rely on any specific behavior |
48920ff2 | 260 | for discards, and don't read this file. |
4363ac7c | 261 | |
07c9093c | 262 | |
3850e13f KB |
263 | What: /sys/block/<disk>/queue/dma_alignment |
264 | Date: May 2022 | |
265 | Contact: linux-block@vger.kernel.org | |
266 | Description: | |
267 | Reports the alignment that user space addresses must have to be | |
268 | used for raw block device access with O_DIRECT and other driver | |
269 | specific passthrough mechanisms. | |
270 | ||
271 | ||
849ab826 EB |
272 | What: /sys/block/<disk>/queue/fua |
273 | Date: May 2018 | |
274 | Contact: linux-block@vger.kernel.org | |
275 | Description: | |
276 | [RO] Whether or not the block driver supports the FUA flag for | |
277 | write requests. FUA stands for Force Unit Access. If the FUA | |
278 | flag is set that means that write requests must bypass the | |
279 | volatile cache of the storage device. | |
280 | ||
281 | ||
282 | What: /sys/block/<disk>/queue/hw_sector_size | |
283 | Date: January 2008 | |
284 | Contact: linux-block@vger.kernel.org | |
285 | Description: | |
286 | [RO] This is the hardware sector size of the device, in bytes. | |
287 | ||
288 | ||
289 | What: /sys/block/<disk>/queue/independent_access_ranges/ | |
290 | Date: October 2021 | |
291 | Contact: linux-block@vger.kernel.org | |
292 | Description: | |
293 | [RO] The presence of this sub-directory of the | |
294 | /sys/block/xxx/queue/ directory indicates that the device is | |
295 | capable of executing requests targeting different sector ranges | |
296 | in parallel. For instance, single LUN multi-actuator hard-disks | |
297 | will have an independent_access_ranges directory if the device | |
298 | correctly advertizes the sector ranges of its actuators. | |
299 | ||
300 | The independent_access_ranges directory contains one directory | |
301 | per access range, with each range described using the sector | |
302 | (RO) attribute file to indicate the first sector of the range | |
303 | and the nr_sectors (RO) attribute file to indicate the total | |
304 | number of sectors in the range starting from the first sector of | |
305 | the range. For example, a dual-actuator hard-disk will have the | |
306 | following independent_access_ranges entries.:: | |
307 | ||
308 | $ tree /sys/block/<disk>/queue/independent_access_ranges/ | |
309 | /sys/block/<disk>/queue/independent_access_ranges/ | |
310 | |-- 0 | |
311 | | |-- nr_sectors | |
312 | | `-- sector | |
313 | `-- 1 | |
314 | |-- nr_sectors | |
315 | `-- sector | |
316 | ||
317 | The sector and nr_sectors attributes use 512B sector unit, | |
318 | regardless of the actual block size of the device. Independent | |
319 | access ranges do not overlap and include all sectors within the | |
320 | device capacity. The access ranges are numbered in increasing | |
321 | order of the range start sector, that is, the sector attribute | |
322 | of range 0 always has the value 0. | |
323 | ||
324 | ||
325 | What: /sys/block/<disk>/queue/io_poll | |
326 | Date: November 2015 | |
327 | Contact: linux-block@vger.kernel.org | |
328 | Description: | |
329 | [RW] When read, this file shows whether polling is enabled (1) | |
330 | or disabled (0). Writing '0' to this file will disable polling | |
331 | for this device. Writing any non-zero value will enable this | |
332 | feature. | |
333 | ||
334 | ||
335 | What: /sys/block/<disk>/queue/io_poll_delay | |
336 | Date: November 2016 | |
337 | Contact: linux-block@vger.kernel.org | |
338 | Description: | |
54bdd67d KB |
339 | [RW] This was used to control what kind of polling will be |
340 | performed. It is now fixed to -1, which is classic polling. | |
849ab826 | 341 | In this mode, the CPU will repeatedly ask for completions |
54bdd67d KB |
342 | without giving up any time. |
343 | <deprecated> | |
849ab826 EB |
344 | |
345 | ||
07c9093c EB |
346 | What: /sys/block/<disk>/queue/io_timeout |
347 | Date: November 2018 | |
348 | Contact: Weiping Zhang <zhangweiping@didiglobal.com> | |
349 | Description: | |
849ab826 EB |
350 | [RW] io_timeout is the request timeout in milliseconds. If a |
351 | request does not complete in this time then the block driver | |
352 | timeout handler is invoked. That timeout handler can decide to | |
353 | retry the request, to fail it or to start a device recovery | |
354 | strategy. | |
355 | ||
356 | ||
357 | What: /sys/block/<disk>/queue/iostats | |
358 | Date: January 2009 | |
359 | Contact: linux-block@vger.kernel.org | |
360 | Description: | |
361 | [RW] This file is used to control (on/off) the iostats | |
362 | accounting of the disk. | |
07c9093c EB |
363 | |
364 | ||
365 | What: /sys/block/<disk>/queue/logical_block_size | |
366 | Date: May 2009 | |
367 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
368 | Description: | |
849ab826 EB |
369 | [RO] This is the smallest unit the storage device can address. |
370 | It is typically 512 bytes. | |
07c9093c EB |
371 | |
372 | ||
373 | What: /sys/block/<disk>/queue/max_active_zones | |
374 | Date: July 2020 | |
375 | Contact: Niklas Cassel <niklas.cassel@wdc.com> | |
376 | Description: | |
849ab826 | 377 | [RO] For zoned block devices (zoned attribute indicating |
07c9093c EB |
378 | "host-managed" or "host-aware"), the sum of zones belonging to |
379 | any of the zone states: EXPLICIT OPEN, IMPLICIT OPEN or CLOSED, | |
380 | is limited by this value. If this value is 0, there is no limit. | |
381 | ||
849ab826 EB |
382 | If the host attempts to exceed this limit, the driver should |
383 | report this error with BLK_STS_ZONE_ACTIVE_RESOURCE, which user | |
384 | space may see as the EOVERFLOW errno. | |
385 | ||
386 | ||
387 | What: /sys/block/<disk>/queue/max_discard_segments | |
388 | Date: February 2017 | |
389 | Contact: linux-block@vger.kernel.org | |
390 | Description: | |
391 | [RO] The maximum number of DMA scatter/gather entries in a | |
392 | discard request. | |
393 | ||
394 | ||
395 | What: /sys/block/<disk>/queue/max_hw_sectors_kb | |
396 | Date: September 2004 | |
397 | Contact: linux-block@vger.kernel.org | |
398 | Description: | |
399 | [RO] This is the maximum number of kilobytes supported in a | |
400 | single data transfer. | |
401 | ||
402 | ||
403 | What: /sys/block/<disk>/queue/max_integrity_segments | |
404 | Date: September 2010 | |
405 | Contact: linux-block@vger.kernel.org | |
406 | Description: | |
407 | [RO] Maximum number of elements in a DMA scatter/gather list | |
408 | with integrity data that will be submitted by the block layer | |
409 | core to the associated block driver. | |
410 | ||
07c9093c EB |
411 | |
412 | What: /sys/block/<disk>/queue/max_open_zones | |
413 | Date: July 2020 | |
414 | Contact: Niklas Cassel <niklas.cassel@wdc.com> | |
415 | Description: | |
849ab826 | 416 | [RO] For zoned block devices (zoned attribute indicating |
07c9093c | 417 | "host-managed" or "host-aware"), the sum of zones belonging to |
849ab826 EB |
418 | any of the zone states: EXPLICIT OPEN or IMPLICIT OPEN, is |
419 | limited by this value. If this value is 0, there is no limit. | |
420 | ||
421 | ||
422 | What: /sys/block/<disk>/queue/max_sectors_kb | |
423 | Date: September 2004 | |
424 | Contact: linux-block@vger.kernel.org | |
425 | Description: | |
426 | [RW] This is the maximum number of kilobytes that the block | |
427 | layer will allow for a filesystem request. Must be smaller than | |
c9c77418 KB |
428 | or equal to the maximum size allowed by the hardware. Write 0 |
429 | to use default kernel settings. | |
849ab826 EB |
430 | |
431 | ||
432 | What: /sys/block/<disk>/queue/max_segment_size | |
433 | Date: March 2010 | |
434 | Contact: linux-block@vger.kernel.org | |
435 | Description: | |
436 | [RO] Maximum size in bytes of a single element in a DMA | |
437 | scatter/gather list. | |
438 | ||
439 | ||
440 | What: /sys/block/<disk>/queue/max_segments | |
441 | Date: March 2010 | |
442 | Contact: linux-block@vger.kernel.org | |
443 | Description: | |
444 | [RO] Maximum number of elements in a DMA scatter/gather list | |
445 | that is submitted to the associated block driver. | |
07c9093c EB |
446 | |
447 | ||
448 | What: /sys/block/<disk>/queue/minimum_io_size | |
449 | Date: April 2009 | |
450 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
451 | Description: | |
849ab826 EB |
452 | [RO] Storage devices may report a granularity or preferred |
453 | minimum I/O size which is the smallest request the device can | |
454 | perform without incurring a performance penalty. For disk | |
455 | drives this is often the physical block size. For RAID arrays | |
456 | it is often the stripe chunk size. A properly aligned multiple | |
457 | of minimum_io_size is the preferred request size for workloads | |
458 | where a high number of I/O operations is desired. | |
07c9093c EB |
459 | |
460 | ||
461 | What: /sys/block/<disk>/queue/nomerges | |
462 | Date: January 2010 | |
8b0551a7 | 463 | Contact: linux-block@vger.kernel.org |
07c9093c | 464 | Description: |
849ab826 EB |
465 | [RW] Standard I/O elevator operations include attempts to merge |
466 | contiguous I/Os. For known random I/O loads these attempts will | |
467 | always fail and result in extra cycles being spent in the | |
468 | kernel. This allows one to turn off this behavior on one of two | |
469 | ways: When set to 1, complex merge checks are disabled, but the | |
470 | simple one-shot merges with the previous I/O request are | |
471 | enabled. When set to 2, all merge tries are disabled. The | |
472 | default value is 0 - which enables all types of merge tries. | |
473 | ||
474 | ||
475 | What: /sys/block/<disk>/queue/nr_requests | |
476 | Date: July 2003 | |
477 | Contact: linux-block@vger.kernel.org | |
478 | Description: | |
479 | [RW] This controls how many requests may be allocated in the | |
480 | block layer for read or write requests. Note that the total | |
481 | allocated number may be twice this amount, since it applies only | |
482 | to reads or writes (not the accumulated sum). | |
483 | ||
484 | To avoid priority inversion through request starvation, a | |
485 | request queue maintains a separate request pool per each cgroup | |
486 | when CONFIG_BLK_CGROUP is enabled, and this parameter applies to | |
487 | each such per-block-cgroup request pool. IOW, if there are N | |
488 | block cgroups, each request queue may have up to N request | |
489 | pools, each independently regulated by nr_requests. | |
07c9093c EB |
490 | |
491 | ||
492 | What: /sys/block/<disk>/queue/nr_zones | |
493 | Date: November 2018 | |
494 | Contact: Damien Le Moal <damien.lemoal@wdc.com> | |
495 | Description: | |
849ab826 EB |
496 | [RO] nr_zones indicates the total number of zones of a zoned |
497 | block device ("host-aware" or "host-managed" zone model). For | |
498 | regular block devices, the value is always 0. | |
07c9093c EB |
499 | |
500 | ||
501 | What: /sys/block/<disk>/queue/optimal_io_size | |
502 | Date: April 2009 | |
503 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
504 | Description: | |
849ab826 EB |
505 | [RO] Storage devices may report an optimal I/O size, which is |
506 | the device's preferred unit for sustained I/O. This is rarely | |
507 | reported for disk drives. For RAID arrays it is usually the | |
508 | stripe width or the internal track size. A properly aligned | |
509 | multiple of optimal_io_size is the preferred request size for | |
510 | workloads where sustained throughput is desired. If no optimal | |
511 | I/O size is reported this file contains 0. | |
07c9093c EB |
512 | |
513 | ||
514 | What: /sys/block/<disk>/queue/physical_block_size | |
515 | Date: May 2009 | |
516 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
517 | Description: | |
849ab826 EB |
518 | [RO] This is the smallest unit a physical storage device can |
519 | write atomically. It is usually the same as the logical block | |
520 | size but may be bigger. One example is SATA drives with 4KB | |
521 | sectors that expose a 512-byte logical block size to the | |
522 | operating system. For stacked block devices the | |
523 | physical_block_size variable contains the maximum | |
524 | physical_block_size of the component devices. | |
525 | ||
526 | ||
527 | What: /sys/block/<disk>/queue/read_ahead_kb | |
528 | Date: May 2004 | |
529 | Contact: linux-block@vger.kernel.org | |
530 | Description: | |
531 | [RW] Maximum number of kilobytes to read-ahead for filesystems | |
532 | on this block device. | |
533 | ||
534 | ||
535 | What: /sys/block/<disk>/queue/rotational | |
536 | Date: January 2009 | |
537 | Contact: linux-block@vger.kernel.org | |
538 | Description: | |
539 | [RW] This file is used to stat if the device is of rotational | |
540 | type or non-rotational type. | |
541 | ||
542 | ||
543 | What: /sys/block/<disk>/queue/rq_affinity | |
544 | Date: September 2008 | |
545 | Contact: linux-block@vger.kernel.org | |
546 | Description: | |
547 | [RW] If this option is '1', the block layer will migrate request | |
548 | completions to the cpu "group" that originally submitted the | |
549 | request. For some workloads this provides a significant | |
550 | reduction in CPU cycles due to caching effects. | |
551 | ||
552 | For storage configurations that need to maximize distribution of | |
553 | completion processing setting this option to '2' forces the | |
554 | completion to run on the requesting cpu (bypassing the "group" | |
555 | aggregation logic). | |
556 | ||
557 | ||
558 | What: /sys/block/<disk>/queue/scheduler | |
559 | Date: October 2004 | |
560 | Contact: linux-block@vger.kernel.org | |
561 | Description: | |
562 | [RW] When read, this file will display the current and available | |
563 | IO schedulers for this block device. The currently active IO | |
564 | scheduler will be enclosed in [] brackets. Writing an IO | |
565 | scheduler name to this file will switch control of this block | |
566 | device to that new IO scheduler. Note that writing an IO | |
567 | scheduler name to this file will attempt to load that IO | |
568 | scheduler module, if it isn't already present in the system. | |
569 | ||
570 | ||
11630104 EB |
571 | What: /sys/block/<disk>/queue/stable_writes |
572 | Date: September 2020 | |
573 | Contact: linux-block@vger.kernel.org | |
574 | Description: | |
575 | [RW] This file will contain '1' if memory must not be modified | |
576 | while it is being used in a write request to this device. When | |
577 | this is the case and the kernel is performing writeback of a | |
578 | page, the kernel will wait for writeback to complete before | |
579 | allowing the page to be modified again, rather than allowing | |
580 | immediate modification as is normally the case. This | |
581 | restriction arises when the device accesses the memory multiple | |
582 | times where the same data must be seen every time -- for | |
583 | example, once to calculate a checksum and once to actually write | |
584 | the data. If no such restriction exists, this file will contain | |
585 | '0'. This file is writable for testing purposes. | |
586 | ||
587 | ||
849ab826 EB |
588 | What: /sys/block/<disk>/queue/throttle_sample_time |
589 | Date: March 2017 | |
590 | Contact: linux-block@vger.kernel.org | |
591 | Description: | |
592 | [RW] This is the time window that blk-throttle samples data, in | |
593 | millisecond. blk-throttle makes decision based on the | |
594 | samplings. Lower time means cgroups have more smooth throughput, | |
595 | but higher CPU overhead. This exists only when | |
596 | CONFIG_BLK_DEV_THROTTLING_LOW is enabled. | |
597 | ||
598 | ||
8bc2f7c6 EB |
599 | What: /sys/block/<disk>/queue/virt_boundary_mask |
600 | Date: April 2021 | |
601 | Contact: linux-block@vger.kernel.org | |
602 | Description: | |
603 | [RO] This file shows the I/O segment memory alignment mask for | |
604 | the block device. I/O requests to this device will be split | |
605 | between segments wherever either the memory address of the end | |
606 | of the previous segment or the memory address of the beginning | |
607 | of the current segment is not aligned to virt_boundary_mask + 1 | |
608 | bytes. | |
609 | ||
610 | ||
849ab826 EB |
611 | What: /sys/block/<disk>/queue/wbt_lat_usec |
612 | Date: November 2016 | |
613 | Contact: linux-block@vger.kernel.org | |
614 | Description: | |
615 | [RW] If the device is registered for writeback throttling, then | |
616 | this file shows the target minimum read latency. If this latency | |
617 | is exceeded in a given window of time (see wb_window_usec), then | |
618 | the writeback throttling will start scaling back writes. Writing | |
619 | a value of '0' to this file disables the feature. Writing a | |
620 | value of '-1' to this file resets the value to the default | |
621 | setting. | |
622 | ||
623 | ||
624 | What: /sys/block/<disk>/queue/write_cache | |
625 | Date: April 2016 | |
626 | Contact: linux-block@vger.kernel.org | |
627 | Description: | |
628 | [RW] When read, this file will display whether the device has | |
629 | write back caching enabled or not. It will return "write back" | |
630 | for the former case, and "write through" for the latter. Writing | |
631 | to this file can change the kernels view of the device, but it | |
632 | doesn't alter the device state. This means that it might not be | |
633 | safe to toggle the setting from "write back" to "write through", | |
634 | since that will also eliminate cache flushes issued by the | |
635 | kernel. | |
07c9093c EB |
636 | |
637 | ||
4363ac7c MP |
638 | What: /sys/block/<disk>/queue/write_same_max_bytes |
639 | Date: January 2012 | |
640 | Contact: Martin K. Petersen <martin.petersen@oracle.com> | |
641 | Description: | |
849ab826 | 642 | [RO] Some devices support a write same operation in which a |
4363ac7c | 643 | single data block can be written to a range of several |
849ab826 EB |
644 | contiguous blocks on storage. This can be used to wipe areas on |
645 | disk or to initialize drives in a RAID configuration. | |
646 | write_same_max_bytes indicates how many bytes can be written in | |
647 | a single write same command. If write_same_max_bytes is 0, write | |
648 | same is not supported by the device. | |
4363ac7c | 649 | |
07c9093c | 650 | |
a6f0788e CK |
651 | What: /sys/block/<disk>/queue/write_zeroes_max_bytes |
652 | Date: November 2016 | |
653 | Contact: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> | |
654 | Description: | |
849ab826 EB |
655 | [RO] Devices that support write zeroes operation in which a |
656 | single request can be issued to zero out the range of contiguous | |
657 | blocks on storage without having any payload in the request. | |
658 | This can be used to optimize writing zeroes to the devices. | |
659 | write_zeroes_max_bytes indicates how many bytes can be written | |
660 | in a single write zeroes command. If write_zeroes_max_bytes is | |
661 | 0, write zeroes is not supported by the device. | |
662 | ||
663 | ||
664 | What: /sys/block/<disk>/queue/zone_append_max_bytes | |
665 | Date: May 2020 | |
666 | Contact: linux-block@vger.kernel.org | |
667 | Description: | |
668 | [RO] This is the maximum number of bytes that can be written to | |
669 | a sequential zone of a zoned block device using a zone append | |
670 | write operation (REQ_OP_ZONE_APPEND). This value is always 0 for | |
671 | regular block devices. | |
672 | ||
673 | ||
674 | What: /sys/block/<disk>/queue/zone_write_granularity | |
675 | Date: January 2021 | |
676 | Contact: linux-block@vger.kernel.org | |
677 | Description: | |
678 | [RO] This indicates the alignment constraint, in bytes, for | |
679 | write operations in sequential zones of zoned block devices | |
680 | (devices with a zoned attributed that reports "host-managed" or | |
681 | "host-aware"). This value is always 0 for regular block devices. | |
a6f0788e | 682 | |
07c9093c | 683 | |
797476b8 DLM |
684 | What: /sys/block/<disk>/queue/zoned |
685 | Date: September 2016 | |
f9824952 | 686 | Contact: Damien Le Moal <damien.lemoal@wdc.com> |
797476b8 | 687 | Description: |
849ab826 EB |
688 | [RO] zoned indicates if the device is a zoned block device and |
689 | the zone model of the device if it is indeed zoned. The | |
690 | possible values indicated by zoned are "none" for regular block | |
691 | devices and "host-aware" or "host-managed" for zoned block | |
692 | devices. The characteristics of host-aware and host-managed | |
693 | zoned block devices are described in the ZBC (Zoned Block | |
694 | Commands) and ZAC (Zoned Device ATA Command Set) standards. | |
695 | These standards also define the "drive-managed" zone model. | |
696 | However, since drive-managed zoned block devices do not support | |
697 | zone commands, they will be treated as regular block devices and | |
698 | zoned will report "none". | |
87caf97c | 699 | |
f9824952 | 700 | |
e3306221 SG |
701 | What: /sys/block/<disk>/hidden |
702 | Date: March 2023 | |
703 | Contact: linux-block@vger.kernel.org | |
704 | Description: | |
705 | [RO] the block device is hidden. it doesn’t produce events, and | |
706 | can’t be opened from userspace or using blkdev_get*. | |
707 | Used for the underlying components of multipath devices. | |
708 | ||
709 | ||
07c9093c EB |
710 | What: /sys/block/<disk>/stat |
711 | Date: February 2008 | |
712 | Contact: Jerome Marchand <jmarchan@redhat.com> | |
e15864f8 | 713 | Description: |
07c9093c EB |
714 | The /sys/block/<disk>/stat files displays the I/O |
715 | statistics of disk <disk>. They contain 11 fields: | |
e15864f8 | 716 | |
07c9093c EB |
717 | == ============================================== |
718 | 1 reads completed successfully | |
719 | 2 reads merged | |
720 | 3 sectors read | |
721 | 4 time spent reading (ms) | |
722 | 5 writes completed | |
723 | 6 writes merged | |
724 | 7 sectors written | |
725 | 8 time spent writing (ms) | |
726 | 9 I/Os currently in progress | |
727 | 10 time spent doing I/Os (ms) | |
728 | 11 weighted time spent doing I/Os (ms) | |
729 | 12 discards completed | |
730 | 13 discards merged | |
731 | 14 sectors discarded | |
732 | 15 time spent discarding (ms) | |
733 | 16 flush requests completed | |
734 | 17 time spent flushing (ms) | |
735 | == ============================================== | |
bb351aba | 736 | |
07c9093c | 737 | For more details refer Documentation/admin-guide/iostats.rst |