Documentation / ABI / testing / sysfs-block


Based on kernel version 5.16. Page generated on 2022-01-10 18:31 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
What:		/sys/block/<disk>/stat
Date:		February 2008
Contact:	Jerome Marchand <jmarchan@redhat.com>
Description:
		The /sys/block/<disk>/stat files displays the I/O
		statistics of disk <disk>. They contain 11 fields:

		==  ==============================================
		 1  reads completed successfully
		 2  reads merged
		 3  sectors read
		 4  time spent reading (ms)
		 5  writes completed
		 6  writes merged
		 7  sectors written
		 8  time spent writing (ms)
		 9  I/Os currently in progress
		10  time spent doing I/Os (ms)
		11  weighted time spent doing I/Os (ms)
		12  discards completed
		13  discards merged
		14  sectors discarded
		15  time spent discarding (ms)
		16  flush requests completed
		17  time spent flushing (ms)
		==  ==============================================

		For more details refer Documentation/admin-guide/iostats.rst


What:		/sys/block/<disk>/inflight
Date:		October 2009
Contact:	Jens Axboe <axboe@kernel.dk>, Nikanth Karthikesan <knikanth@suse.de>
Description:
		Reports the number of I/O requests currently in progress
		(pending / in flight) in a device driver. This can be less
		than the number of requests queued in the block device queue.
		The report contains 2 fields: one for read requests
		and one for write requests.
		The value type is unsigned int.
		Cf. Documentation/block/stat.rst which contains a single value for
		requests in flight.
		This is related to nr_requests in Documentation/block/queue-sysfs.rst
		and for SCSI device also its queue_depth.


What:		/sys/block/<disk>/diskseq
Date:		February 2021
Contact:	Matteo Croce <mcroce@microsoft.com>
Description:
		The /sys/block/<disk>/diskseq files reports the disk
		sequence number, which is a monotonically increasing
		number assigned to every drive.
		Some devices, like the loop device, refresh such number
		every time the backing file is changed.
		The value type is 64 bit unsigned.


What:		/sys/block/<disk>/<part>/stat
Date:		February 2008
Contact:	Jerome Marchand <jmarchan@redhat.com>
Description:
		The /sys/block/<disk>/<part>/stat files display the
		I/O statistics of partition <part>. The format is the
		same as the above-written /sys/block/<disk>/stat
		format.


What:		/sys/block/<disk>/integrity/format
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Metadata format for integrity capable block device.
		E.g. T10-DIF-TYPE1-CRC.


What:		/sys/block/<disk>/integrity/read_verify
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should verify the
		integrity of read requests serviced by devices that
		support sending integrity metadata.


What:		/sys/block/<disk>/integrity/tag_size
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Number of bytes of integrity tag space available per
		512 bytes of data.


What:		/sys/block/<disk>/integrity/device_is_integrity_capable
Date:		July 2014
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether a storage device is capable of storing
		integrity metadata. Set if the device is T10 PI-capable.

What:		/sys/block/<disk>/integrity/protection_interval_bytes
Date:		July 2015
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Describes the number of data bytes which are protected
		by one integrity tuple. Typically the device's logical
		block size.

What:		/sys/block/<disk>/integrity/write_generate
Date:		June 2008
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Indicates whether the block layer should automatically
		generate checksums for write requests bound for
		devices that support receiving integrity metadata.

What:		/sys/block/<disk>/alignment_offset
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report a physical block size that is
		bigger than the logical block size (for instance a drive
		with 4KB physical sectors exposing 512-byte logical
		blocks to the operating system).  This parameter
		indicates how many bytes the beginning of the device is
		offset from the disk's natural alignment.

What:		/sys/block/<disk>/<partition>/alignment_offset
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report a physical block size that is
		bigger than the logical block size (for instance a drive
		with 4KB physical sectors exposing 512-byte logical
		blocks to the operating system).  This parameter
		indicates how many bytes the beginning of the partition
		is offset from the disk's natural alignment.

What:		/sys/block/<disk>/queue/logical_block_size
Date:		May 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		This is the smallest unit the storage device can
		address.  It is typically 512 bytes.

What:		/sys/block/<disk>/queue/physical_block_size
Date:		May 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		This is the smallest unit a physical storage device can
		write atomically.  It is usually the same as the logical
		block size but may be bigger.  One example is SATA
		drives with 4KB sectors that expose a 512-byte logical
		block size to the operating system.  For stacked block
		devices the physical_block_size variable contains the
		maximum physical_block_size of the component devices.

What:		/sys/block/<disk>/queue/minimum_io_size
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report a granularity or preferred
		minimum I/O size which is the smallest request the
		device can perform without incurring a performance
		penalty.  For disk drives this is often the physical
		block size.  For RAID arrays it is often the stripe
		chunk size.  A properly aligned multiple of
		minimum_io_size is the preferred request size for
		workloads where a high number of I/O operations is
		desired.

What:		/sys/block/<disk>/queue/optimal_io_size
Date:		April 2009
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Storage devices may report an optimal I/O size, which is
		the device's preferred unit for sustained I/O.  This is
		rarely reported for disk drives.  For RAID arrays it is
		usually the stripe width or the internal track size.  A
		properly aligned multiple of optimal_io_size is the
		preferred request size for workloads where sustained
		throughput is desired.  If no optimal I/O size is
		reported this file contains 0.

What:		/sys/block/<disk>/queue/nomerges
Date:		January 2010
Contact:
Description:
		Standard I/O elevator operations include attempts to
		merge contiguous I/Os. For known random I/O loads these
		attempts will always fail and result in extra cycles
		being spent in the kernel. This allows one to turn off
		this behavior on one of two ways: When set to 1, complex
		merge checks are disabled, but the simple one-shot merges
		with the previous I/O request are enabled. When set to 2,
		all merge tries are disabled. The default value is 0 -
		which enables all types of merge tries.

What:		/sys/block/<disk>/discard_alignment
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may
		internally allocate space in units that are bigger than
		the exported logical block size. The discard_alignment
		parameter indicates how many bytes the beginning of the
		device is offset from the internal allocation unit's
		natural alignment.

What:		/sys/block/<disk>/<partition>/discard_alignment
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may
		internally allocate space in units that are bigger than
		the exported logical block size. The discard_alignment
		parameter indicates how many bytes the beginning of the
		partition is offset from the internal allocation unit's
		natural alignment.

What:		/sys/block/<disk>/queue/discard_granularity
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may
		internally allocate space using units that are bigger
		than the logical block size. The discard_granularity
		parameter indicates the size of the internal allocation
		unit in bytes if reported by the device. Otherwise the
		discard_granularity will be set to match the device's
		physical block size. A discard_granularity of 0 means
		that the device does not support discard functionality.

What:		/sys/block/<disk>/queue/discard_max_bytes
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Devices that support discard functionality may have
		internal limits on the number of bytes that can be
		trimmed or unmapped in a single operation. Some storage
		protocols also have inherent limits on the number of
		blocks that can be described in a single command. The
		discard_max_bytes parameter is set by the device driver
		to the maximum number of bytes that can be discarded in
		a single operation. Discard requests issued to the
		device must not exceed this limit. A discard_max_bytes
		value of 0 means that the device does not support
		discard functionality.

What:		/sys/block/<disk>/queue/discard_zeroes_data
Date:		May 2011
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Will always return 0.  Don't rely on any specific behavior
		for discards, and don't read this file.

What:		/sys/block/<disk>/queue/write_same_max_bytes
Date:		January 2012
Contact:	Martin K. Petersen <martin.petersen@oracle.com>
Description:
		Some devices support a write same operation in which a
		single data block can be written to a range of several
		contiguous blocks on storage. This can be used to wipe
		areas on disk or to initialize drives in a RAID
		configuration. write_same_max_bytes indicates how many
		bytes can be written in a single write same command. If
		write_same_max_bytes is 0, write same is not supported
		by the device.

What:		/sys/block/<disk>/queue/write_zeroes_max_bytes
Date:		November 2016
Contact:	Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Description:
		Devices that support write zeroes operation in which a
		single request can be issued to zero out the range of
		contiguous blocks on storage without having any payload
		in the request. This can be used to optimize writing zeroes
		to the devices. write_zeroes_max_bytes indicates how many
		bytes can be written in a single write zeroes command. If
		write_zeroes_max_bytes is 0, write zeroes is not supported
		by the device.

What:		/sys/block/<disk>/queue/zoned
Date:		September 2016
Contact:	Damien Le Moal <damien.lemoal@wdc.com>
Description:
		zoned indicates if the device is a zoned block device
		and the zone model of the device if it is indeed zoned.
		The possible values indicated by zoned are "none" for
		regular block devices and "host-aware" or "host-managed"
		for zoned block devices. The characteristics of
		host-aware and host-managed zoned block devices are
		described in the ZBC (Zoned Block Commands) and ZAC
		(Zoned Device ATA Command Set) standards. These standards
		also define the "drive-managed" zone model. However,
		since drive-managed zoned block devices do not support
		zone commands, they will be treated as regular block
		devices and zoned will report "none".

What:		/sys/block/<disk>/queue/nr_zones
Date:		November 2018
Contact:	Damien Le Moal <damien.lemoal@wdc.com>
Description:
		nr_zones indicates the total number of zones of a zoned block
		device ("host-aware" or "host-managed" zone model). For regular
		block devices, the value is always 0.

What:		/sys/block/<disk>/queue/max_active_zones
Date:		July 2020
Contact:	Niklas Cassel <niklas.cassel@wdc.com>
Description:
		For zoned block devices (zoned attribute indicating
		"host-managed" or "host-aware"), the sum of zones belonging to
		any of the zone states: EXPLICIT OPEN, IMPLICIT OPEN or CLOSED,
		is limited by this value. If this value is 0, there is no limit.

What:		/sys/block/<disk>/queue/max_open_zones
Date:		July 2020
Contact:	Niklas Cassel <niklas.cassel@wdc.com>
Description:
		For zoned block devices (zoned attribute indicating
		"host-managed" or "host-aware"), the sum of zones belonging to
		any of the zone states: EXPLICIT OPEN or IMPLICIT OPEN,
		is limited by this value. If this value is 0, there is no limit.

What:		/sys/block/<disk>/queue/chunk_sectors
Date:		September 2016
Contact:	Hannes Reinecke <hare@suse.com>
Description:
		chunk_sectors has different meaning depending on the type
		of the disk. For a RAID device (dm-raid), chunk_sectors
		indicates the size in 512B sectors of the RAID volume
		stripe segment. For a zoned block device, either
		host-aware or host-managed, chunk_sectors indicates the
		size in 512B sectors of the zones of the device, with
		the eventual exception of the last zone of the device
		which may be smaller.

What:		/sys/block/<disk>/queue/io_timeout
Date:		November 2018
Contact:	Weiping Zhang <zhangweiping@didiglobal.com>
Description:
		io_timeout is the request timeout in milliseconds. If a request
		does not complete in this time then the block driver timeout
		handler is invoked. That timeout handler can decide to retry
		the request, to fail it or to start a device recovery strategy.