xref: /linux/Documentation/ABI/stable/sysfs-block (revision e35fde43e25ad725d27315992fba8088d1210b01)
107c9093cSEric BiggersWhat:		/sys/block/<disk>/alignment_offset
207c9093cSEric BiggersDate:		April 2009
307c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
407c9093cSEric BiggersDescription:
507c9093cSEric Biggers		Storage devices may report a physical block size that is
607c9093cSEric Biggers		bigger than the logical block size (for instance a drive
707c9093cSEric Biggers		with 4KB physical sectors exposing 512-byte logical
807c9093cSEric Biggers		blocks to the operating system).  This parameter
907c9093cSEric Biggers		indicates how many bytes the beginning of the device is
1007c9093cSEric Biggers		offset from the disk's natural alignment.
1107c9093cSEric Biggers
1207c9093cSEric Biggers
1307c9093cSEric BiggersWhat:		/sys/block/<disk>/discard_alignment
1407c9093cSEric BiggersDate:		May 2011
1507c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
1607c9093cSEric BiggersDescription:
1707c9093cSEric Biggers		Devices that support discard functionality may
1807c9093cSEric Biggers		internally allocate space in units that are bigger than
1907c9093cSEric Biggers		the exported logical block size. The discard_alignment
2007c9093cSEric Biggers		parameter indicates how many bytes the beginning of the
2107c9093cSEric Biggers		device is offset from the internal allocation unit's
2207c9093cSEric Biggers		natural alignment.
2307c9093cSEric Biggers
249da3d1e9SJohn GarryWhat:		/sys/block/<disk>/atomic_write_max_bytes
259da3d1e9SJohn GarryDate:		February 2024
269da3d1e9SJohn GarryContact:	Himanshu Madhani <himanshu.madhani@oracle.com>
279da3d1e9SJohn GarryDescription:
289da3d1e9SJohn Garry		[RO] This parameter specifies the maximum atomic write
299da3d1e9SJohn Garry		size reported by the device. This parameter is relevant
309da3d1e9SJohn Garry		for merging of writes, where a merged atomic write
319da3d1e9SJohn Garry		operation must not exceed this number of bytes.
329da3d1e9SJohn Garry		This parameter may be greater than the value in
339da3d1e9SJohn Garry		atomic_write_unit_max_bytes as
349da3d1e9SJohn Garry		atomic_write_unit_max_bytes will be rounded down to a
359da3d1e9SJohn Garry		power-of-two and atomic_write_unit_max_bytes may also be
369da3d1e9SJohn Garry		limited by some other queue limits, such as max_segments.
379da3d1e9SJohn Garry		This parameter - along with atomic_write_unit_min_bytes
389da3d1e9SJohn Garry		and atomic_write_unit_max_bytes - will not be larger than
399da3d1e9SJohn Garry		max_hw_sectors_kb, but may be larger than max_sectors_kb.
409da3d1e9SJohn Garry
419da3d1e9SJohn Garry
429da3d1e9SJohn GarryWhat:		/sys/block/<disk>/atomic_write_unit_min_bytes
439da3d1e9SJohn GarryDate:		February 2024
449da3d1e9SJohn GarryContact:	Himanshu Madhani <himanshu.madhani@oracle.com>
459da3d1e9SJohn GarryDescription:
469da3d1e9SJohn Garry		[RO] This parameter specifies the smallest block which can
479da3d1e9SJohn Garry		be written atomically with an atomic write operation. All
489da3d1e9SJohn Garry		atomic write operations must begin at a
499da3d1e9SJohn Garry		atomic_write_unit_min boundary and must be multiples of
509da3d1e9SJohn Garry		atomic_write_unit_min. This value must be a power-of-two.
519da3d1e9SJohn Garry
529da3d1e9SJohn Garry
539da3d1e9SJohn GarryWhat:		/sys/block/<disk>/atomic_write_unit_max_bytes
549da3d1e9SJohn GarryDate:		February 2024
559da3d1e9SJohn GarryContact:	Himanshu Madhani <himanshu.madhani@oracle.com>
569da3d1e9SJohn GarryDescription:
579da3d1e9SJohn Garry		[RO] This parameter defines the largest block which can be
589da3d1e9SJohn Garry		written atomically with an atomic write operation. This
599da3d1e9SJohn Garry		value must be a multiple of atomic_write_unit_min and must
609da3d1e9SJohn Garry		be a power-of-two. This value will not be larger than
619da3d1e9SJohn Garry		atomic_write_max_bytes.
629da3d1e9SJohn Garry
639da3d1e9SJohn Garry
649da3d1e9SJohn GarryWhat:		/sys/block/<disk>/atomic_write_boundary_bytes
659da3d1e9SJohn GarryDate:		February 2024
669da3d1e9SJohn GarryContact:	Himanshu Madhani <himanshu.madhani@oracle.com>
679da3d1e9SJohn GarryDescription:
689da3d1e9SJohn Garry		[RO] A device may need to internally split an atomic write I/O
699da3d1e9SJohn Garry		which straddles a given logical block address boundary. This
709da3d1e9SJohn Garry		parameter specifies the size in bytes of the atomic boundary if
719da3d1e9SJohn Garry		one is reported by the device. This value must be a
729da3d1e9SJohn Garry		power-of-two and at least the size as in
739da3d1e9SJohn Garry		atomic_write_unit_max_bytes.
749da3d1e9SJohn Garry		Any attempt to merge atomic write I/Os must not result in a
759da3d1e9SJohn Garry		merged I/O which crosses this boundary (if any).
769da3d1e9SJohn Garry
7707c9093cSEric Biggers
7807c9093cSEric BiggersWhat:		/sys/block/<disk>/diskseq
7907c9093cSEric BiggersDate:		February 2021
8007c9093cSEric BiggersContact:	Matteo Croce <mcroce@microsoft.com>
8107c9093cSEric BiggersDescription:
8207c9093cSEric Biggers		The /sys/block/<disk>/diskseq files reports the disk
8307c9093cSEric Biggers		sequence number, which is a monotonically increasing
8407c9093cSEric Biggers		number assigned to every drive.
8507c9093cSEric Biggers		Some devices, like the loop device, refresh such number
8607c9093cSEric Biggers		every time the backing file is changed.
8707c9093cSEric Biggers		The value type is 64 bit unsigned.
8807c9093cSEric Biggers
8907c9093cSEric Biggers
9007c9093cSEric BiggersWhat:		/sys/block/<disk>/inflight
9107c9093cSEric BiggersDate:		October 2009
9207c9093cSEric BiggersContact:	Jens Axboe <axboe@kernel.dk>, Nikanth Karthikesan <knikanth@suse.de>
9307c9093cSEric BiggersDescription:
9407c9093cSEric Biggers		Reports the number of I/O requests currently in progress
9507c9093cSEric Biggers		(pending / in flight) in a device driver. This can be less
9607c9093cSEric Biggers		than the number of requests queued in the block device queue.
9707c9093cSEric Biggers		The report contains 2 fields: one for read requests
9807c9093cSEric Biggers		and one for write requests.
9907c9093cSEric Biggers		The value type is unsigned int.
10007c9093cSEric Biggers		Cf. Documentation/block/stat.rst which contains a single value for
10107c9093cSEric Biggers		requests in flight.
102849ab826SEric Biggers		This is related to /sys/block/<disk>/queue/nr_requests
10307c9093cSEric Biggers		and for SCSI device also its queue_depth.
10407c9093cSEric Biggers
10507c9093cSEric Biggers
10607c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/device_is_integrity_capable
10707c9093cSEric BiggersDate:		July 2014
10807c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
10907c9093cSEric BiggersDescription:
11007c9093cSEric Biggers		Indicates whether a storage device is capable of storing
11107c9093cSEric Biggers		integrity metadata. Set if the device is T10 PI-capable.
11207c9093cSEric Biggers
11307c9093cSEric Biggers
11407c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/format
11507c9093cSEric BiggersDate:		June 2008
11607c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
11707c9093cSEric BiggersDescription:
11807c9093cSEric Biggers		Metadata format for integrity capable block device.
11907c9093cSEric Biggers		E.g. T10-DIF-TYPE1-CRC.
12007c9093cSEric Biggers
12107c9093cSEric Biggers
12207c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/protection_interval_bytes
12307c9093cSEric BiggersDate:		July 2015
12407c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
12507c9093cSEric BiggersDescription:
12607c9093cSEric Biggers		Describes the number of data bytes which are protected
12707c9093cSEric Biggers		by one integrity tuple. Typically the device's logical
12807c9093cSEric Biggers		block size.
12907c9093cSEric Biggers
13007c9093cSEric Biggers
13107c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/read_verify
13207c9093cSEric BiggersDate:		June 2008
13307c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
13407c9093cSEric BiggersDescription:
13507c9093cSEric Biggers		Indicates whether the block layer should verify the
13607c9093cSEric Biggers		integrity of read requests serviced by devices that
13707c9093cSEric Biggers		support sending integrity metadata.
13807c9093cSEric Biggers
13907c9093cSEric Biggers
14007c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/tag_size
14107c9093cSEric BiggersDate:		June 2008
14207c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
14307c9093cSEric BiggersDescription:
14407c9093cSEric Biggers		Number of bytes of integrity tag space available per
14507c9093cSEric Biggers		512 bytes of data.
14607c9093cSEric Biggers
14707c9093cSEric Biggers
14807c9093cSEric BiggersWhat:		/sys/block/<disk>/integrity/write_generate
14907c9093cSEric BiggersDate:		June 2008
15007c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
15107c9093cSEric BiggersDescription:
15207c9093cSEric Biggers		Indicates whether the block layer should automatically
15307c9093cSEric Biggers		generate checksums for write requests bound for
15407c9093cSEric Biggers		devices that support receiving integrity metadata.
15507c9093cSEric Biggers
15607c9093cSEric Biggers
157a4217c67SChristoph HellwigWhat:		/sys/block/<disk>/partscan
158a4217c67SChristoph HellwigDate:		May 2024
159a4217c67SChristoph HellwigContact:	Christoph Hellwig <hch@lst.de>
160a4217c67SChristoph HellwigDescription:
161a4217c67SChristoph Hellwig		The /sys/block/<disk>/partscan files reports if partition
162a4217c67SChristoph Hellwig		scanning is enabled for the disk.  It returns "1" if partition
163a4217c67SChristoph Hellwig		scanning is enabled, or "0" if not.  The value type is a 32-bit
164a4217c67SChristoph Hellwig		unsigned integer, but only "0" and "1" are valid values.
165a4217c67SChristoph Hellwig
166a4217c67SChristoph Hellwig
16707c9093cSEric BiggersWhat:		/sys/block/<disk>/<partition>/alignment_offset
16807c9093cSEric BiggersDate:		April 2009
16907c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
17007c9093cSEric BiggersDescription:
17107c9093cSEric Biggers		Storage devices may report a physical block size that is
17207c9093cSEric Biggers		bigger than the logical block size (for instance a drive
17307c9093cSEric Biggers		with 4KB physical sectors exposing 512-byte logical
17407c9093cSEric Biggers		blocks to the operating system).  This parameter
17507c9093cSEric Biggers		indicates how many bytes the beginning of the partition
17607c9093cSEric Biggers		is offset from the disk's natural alignment.
17707c9093cSEric Biggers
17807c9093cSEric Biggers
17907c9093cSEric BiggersWhat:		/sys/block/<disk>/<partition>/discard_alignment
18007c9093cSEric BiggersDate:		May 2011
18107c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
18207c9093cSEric BiggersDescription:
18307c9093cSEric Biggers		Devices that support discard functionality may
18407c9093cSEric Biggers		internally allocate space in units that are bigger than
18507c9093cSEric Biggers		the exported logical block size. The discard_alignment
18607c9093cSEric Biggers		parameter indicates how many bytes the beginning of the
18707c9093cSEric Biggers		partition is offset from the internal allocation unit's
18807c9093cSEric Biggers		natural alignment.
18907c9093cSEric Biggers
19007c9093cSEric Biggers
19107c9093cSEric BiggersWhat:		/sys/block/<disk>/<partition>/stat
19207c9093cSEric BiggersDate:		February 2008
19307c9093cSEric BiggersContact:	Jerome Marchand <jmarchan@redhat.com>
19407c9093cSEric BiggersDescription:
19507c9093cSEric Biggers		The /sys/block/<disk>/<partition>/stat files display the
19607c9093cSEric Biggers		I/O statistics of partition <partition>. The format is the
19707c9093cSEric Biggers		same as the format of /sys/block/<disk>/stat.
19807c9093cSEric Biggers
19907c9093cSEric Biggers
200849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/add_random
201849ab826SEric BiggersDate:		June 2010
202849ab826SEric BiggersContact:	linux-block@vger.kernel.org
203849ab826SEric BiggersDescription:
204849ab826SEric Biggers		[RW] This file allows to turn off the disk entropy contribution.
205849ab826SEric Biggers		Default value of this file is '1'(on).
206849ab826SEric Biggers
207849ab826SEric Biggers
20807c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/chunk_sectors
20907c9093cSEric BiggersDate:		September 2016
21007c9093cSEric BiggersContact:	Hannes Reinecke <hare@suse.com>
21107c9093cSEric BiggersDescription:
212849ab826SEric Biggers		[RO] chunk_sectors has different meaning depending on the type
21307c9093cSEric Biggers		of the disk. For a RAID device (dm-raid), chunk_sectors
214849ab826SEric Biggers		indicates the size in 512B sectors of the RAID volume stripe
215849ab826SEric Biggers		segment. For a zoned block device, either host-aware or
216849ab826SEric Biggers		host-managed, chunk_sectors indicates the size in 512B sectors
217849ab826SEric Biggers		of the zones of the device, with the eventual exception of the
218849ab826SEric Biggers		last zone of the device which may be smaller.
219849ab826SEric Biggers
220849ab826SEric Biggers
22120f01f16SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/
22220f01f16SEric BiggersDate:		February 2022
22320f01f16SEric BiggersContact:	linux-block@vger.kernel.org
22420f01f16SEric BiggersDescription:
22520f01f16SEric Biggers		The presence of this subdirectory of /sys/block/<disk>/queue/
22620f01f16SEric Biggers		indicates that the device supports inline encryption.  This
22720f01f16SEric Biggers		subdirectory contains files which describe the inline encryption
22820f01f16SEric Biggers		capabilities of the device.  For more information about inline
22920f01f16SEric Biggers		encryption, refer to Documentation/block/inline-encryption.rst.
23020f01f16SEric Biggers
23120f01f16SEric Biggers
232*e35fde43SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/hw_wrapped_keys
233*e35fde43SEric BiggersDate:		February 2025
234*e35fde43SEric BiggersContact:	linux-block@vger.kernel.org
235*e35fde43SEric BiggersDescription:
236*e35fde43SEric Biggers		[RO] The presence of this file indicates that the device
237*e35fde43SEric Biggers		supports hardware-wrapped inline encryption keys, i.e. key blobs
238*e35fde43SEric Biggers		that can only be unwrapped and used by dedicated hardware.  For
239*e35fde43SEric Biggers		more information about hardware-wrapped inline encryption keys,
240*e35fde43SEric Biggers		see Documentation/block/inline-encryption.rst.
241*e35fde43SEric Biggers
242*e35fde43SEric Biggers
24320f01f16SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/max_dun_bits
24420f01f16SEric BiggersDate:		February 2022
24520f01f16SEric BiggersContact:	linux-block@vger.kernel.org
24620f01f16SEric BiggersDescription:
24720f01f16SEric Biggers		[RO] This file shows the maximum length, in bits, of data unit
24820f01f16SEric Biggers		numbers accepted by the device in inline encryption requests.
24920f01f16SEric Biggers
25020f01f16SEric Biggers
25120f01f16SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/modes/<mode>
25220f01f16SEric BiggersDate:		February 2022
25320f01f16SEric BiggersContact:	linux-block@vger.kernel.org
25420f01f16SEric BiggersDescription:
25520f01f16SEric Biggers		[RO] For each crypto mode (i.e., encryption/decryption
25620f01f16SEric Biggers		algorithm) the device supports with inline encryption, a file
25720f01f16SEric Biggers		will exist at this location.  It will contain a hexadecimal
25820f01f16SEric Biggers		number that is a bitmask of the supported data unit sizes, in
25920f01f16SEric Biggers		bytes, for that crypto mode.
26020f01f16SEric Biggers
26120f01f16SEric Biggers		Currently, the crypto modes that may be supported are:
26220f01f16SEric Biggers
26320f01f16SEric Biggers		   * AES-256-XTS
26420f01f16SEric Biggers		   * AES-128-CBC-ESSIV
26520f01f16SEric Biggers		   * Adiantum
26620f01f16SEric Biggers
26720f01f16SEric Biggers		For example, if a device supports AES-256-XTS inline encryption
26820f01f16SEric Biggers		with data unit sizes of 512 and 4096 bytes, the file
26920f01f16SEric Biggers		/sys/block/<disk>/queue/crypto/modes/AES-256-XTS will exist and
27020f01f16SEric Biggers		will contain "0x1200".
27120f01f16SEric Biggers
27220f01f16SEric Biggers
27320f01f16SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/num_keyslots
27420f01f16SEric BiggersDate:		February 2022
27520f01f16SEric BiggersContact:	linux-block@vger.kernel.org
27620f01f16SEric BiggersDescription:
27720f01f16SEric Biggers		[RO] This file shows the number of keyslots the device has for
27820f01f16SEric Biggers		use with inline encryption.
27920f01f16SEric Biggers
28020f01f16SEric Biggers
281*e35fde43SEric BiggersWhat:		/sys/block/<disk>/queue/crypto/raw_keys
282*e35fde43SEric BiggersDate:		February 2025
283*e35fde43SEric BiggersContact:	linux-block@vger.kernel.org
284*e35fde43SEric BiggersDescription:
285*e35fde43SEric Biggers		[RO] The presence of this file indicates that the device
286*e35fde43SEric Biggers		supports raw inline encryption keys, i.e. keys that are managed
287*e35fde43SEric Biggers		in raw, plaintext form in software.
288*e35fde43SEric Biggers
289*e35fde43SEric Biggers
290849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/dax
291849ab826SEric BiggersDate:		June 2016
292849ab826SEric BiggersContact:	linux-block@vger.kernel.org
293849ab826SEric BiggersDescription:
294849ab826SEric Biggers		[RO] This file indicates whether the device supports Direct
295849ab826SEric Biggers		Access (DAX), used by CPU-addressable storage to bypass the
296849ab826SEric Biggers		pagecache.  It shows '1' if true, '0' if not.
29707c9093cSEric Biggers
29807c9093cSEric Biggers
29907c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/discard_granularity
30007c9093cSEric BiggersDate:		May 2011
30107c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
30207c9093cSEric BiggersDescription:
303849ab826SEric Biggers		[RO] Devices that support discard functionality may internally
304849ab826SEric Biggers		allocate space using units that are bigger than the logical
305849ab826SEric Biggers		block size. The discard_granularity parameter indicates the size
306849ab826SEric Biggers		of the internal allocation unit in bytes if reported by the
307849ab826SEric Biggers		device. Otherwise the discard_granularity will be set to match
308849ab826SEric Biggers		the device's physical block size. A discard_granularity of 0
309849ab826SEric Biggers		means that the device does not support discard functionality.
31007c9093cSEric Biggers
31107c9093cSEric Biggers
31207c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/discard_max_bytes
31307c9093cSEric BiggersDate:		May 2011
31407c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
31507c9093cSEric BiggersDescription:
316849ab826SEric Biggers		[RW] While discard_max_hw_bytes is the hardware limit for the
317849ab826SEric Biggers		device, this setting is the software limit. Some devices exhibit
318849ab826SEric Biggers		large latencies when large discards are issued, setting this
319849ab826SEric Biggers		value lower will make Linux issue smaller discards and
320849ab826SEric Biggers		potentially help reduce latencies induced by large discard
321849ab826SEric Biggers		operations.
322849ab826SEric Biggers
323849ab826SEric Biggers
324849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/discard_max_hw_bytes
325849ab826SEric BiggersDate:		July 2015
326849ab826SEric BiggersContact:	linux-block@vger.kernel.org
327849ab826SEric BiggersDescription:
328849ab826SEric Biggers		[RO] Devices that support discard functionality may have
329849ab826SEric Biggers		internal limits on the number of bytes that can be trimmed or
330849ab826SEric Biggers		unmapped in a single operation.  The `discard_max_hw_bytes`
331849ab826SEric Biggers		parameter is set by the device driver to the maximum number of
332849ab826SEric Biggers		bytes that can be discarded in a single operation.  Discard
333849ab826SEric Biggers		requests issued to the device must not exceed this limit.  A
334849ab826SEric Biggers		`discard_max_hw_bytes` value of 0 means that the device does not
335849ab826SEric Biggers		support discard functionality.
33607c9093cSEric Biggers
33707c9093cSEric Biggers
33807c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/discard_zeroes_data
33907c9093cSEric BiggersDate:		May 2011
34007c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
34107c9093cSEric BiggersDescription:
342849ab826SEric Biggers		[RO] Will always return 0.  Don't rely on any specific behavior
34307c9093cSEric Biggers		for discards, and don't read this file.
34407c9093cSEric Biggers
34507c9093cSEric Biggers
3463850e13fSKeith BuschWhat:		/sys/block/<disk>/queue/dma_alignment
3473850e13fSKeith BuschDate:		May 2022
3483850e13fSKeith BuschContact:	linux-block@vger.kernel.org
3493850e13fSKeith BuschDescription:
3503850e13fSKeith Busch		Reports the alignment that user space addresses must have to be
3513850e13fSKeith Busch		used for raw block device access with O_DIRECT and other driver
3523850e13fSKeith Busch		specific passthrough mechanisms.
3533850e13fSKeith Busch
3543850e13fSKeith Busch
355849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/fua
356849ab826SEric BiggersDate:		May 2018
357849ab826SEric BiggersContact:	linux-block@vger.kernel.org
358849ab826SEric BiggersDescription:
359849ab826SEric Biggers		[RO] Whether or not the block driver supports the FUA flag for
360849ab826SEric Biggers		write requests.  FUA stands for Force Unit Access. If the FUA
361849ab826SEric Biggers		flag is set that means that write requests must bypass the
362849ab826SEric Biggers		volatile cache of the storage device.
363849ab826SEric Biggers
364849ab826SEric Biggers
365849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/hw_sector_size
366849ab826SEric BiggersDate:		January 2008
367849ab826SEric BiggersContact:	linux-block@vger.kernel.org
368849ab826SEric BiggersDescription:
369849ab826SEric Biggers		[RO] This is the hardware sector size of the device, in bytes.
370849ab826SEric Biggers
371849ab826SEric Biggers
372849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/independent_access_ranges/
373849ab826SEric BiggersDate:		October 2021
374849ab826SEric BiggersContact:	linux-block@vger.kernel.org
375849ab826SEric BiggersDescription:
376849ab826SEric Biggers		[RO] The presence of this sub-directory of the
377849ab826SEric Biggers		/sys/block/xxx/queue/ directory indicates that the device is
378849ab826SEric Biggers		capable of executing requests targeting different sector ranges
379849ab826SEric Biggers		in parallel. For instance, single LUN multi-actuator hard-disks
380849ab826SEric Biggers		will have an independent_access_ranges directory if the device
381ebab9426SBjorn Helgaas		correctly advertises the sector ranges of its actuators.
382849ab826SEric Biggers
383849ab826SEric Biggers		The independent_access_ranges directory contains one directory
384849ab826SEric Biggers		per access range, with each range described using the sector
385849ab826SEric Biggers		(RO) attribute file to indicate the first sector of the range
386849ab826SEric Biggers		and the nr_sectors (RO) attribute file to indicate the total
387849ab826SEric Biggers		number of sectors in the range starting from the first sector of
388849ab826SEric Biggers		the range.  For example, a dual-actuator hard-disk will have the
389849ab826SEric Biggers		following independent_access_ranges entries.::
390849ab826SEric Biggers
391849ab826SEric Biggers			$ tree /sys/block/<disk>/queue/independent_access_ranges/
392849ab826SEric Biggers			/sys/block/<disk>/queue/independent_access_ranges/
393849ab826SEric Biggers			|-- 0
394849ab826SEric Biggers			|   |-- nr_sectors
395849ab826SEric Biggers			|   `-- sector
396849ab826SEric Biggers			`-- 1
397849ab826SEric Biggers			    |-- nr_sectors
398849ab826SEric Biggers			    `-- sector
399849ab826SEric Biggers
400849ab826SEric Biggers		The sector and nr_sectors attributes use 512B sector unit,
401849ab826SEric Biggers		regardless of the actual block size of the device. Independent
402849ab826SEric Biggers		access ranges do not overlap and include all sectors within the
403849ab826SEric Biggers		device capacity. The access ranges are numbered in increasing
404849ab826SEric Biggers		order of the range start sector, that is, the sector attribute
405849ab826SEric Biggers		of range 0 always has the value 0.
406849ab826SEric Biggers
407849ab826SEric Biggers
408849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/io_poll
409849ab826SEric BiggersDate:		November 2015
410849ab826SEric BiggersContact:	linux-block@vger.kernel.org
411849ab826SEric BiggersDescription:
412849ab826SEric Biggers		[RW] When read, this file shows whether polling is enabled (1)
413849ab826SEric Biggers		or disabled (0).  Writing '0' to this file will disable polling
414849ab826SEric Biggers		for this device.  Writing any non-zero value will enable this
415849ab826SEric Biggers		feature.
416849ab826SEric Biggers
417849ab826SEric Biggers
418849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/io_poll_delay
419849ab826SEric BiggersDate:		November 2016
420849ab826SEric BiggersContact:	linux-block@vger.kernel.org
421849ab826SEric BiggersDescription:
42254bdd67dSKeith Busch		[RW] This was used to control what kind of polling will be
42354bdd67dSKeith Busch		performed.  It is now fixed to -1, which is classic polling.
424849ab826SEric Biggers		In this mode, the CPU will repeatedly ask for completions
42554bdd67dSKeith Busch		without giving up any time.
42654bdd67dSKeith Busch		<deprecated>
427849ab826SEric Biggers
428849ab826SEric Biggers
42907c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/io_timeout
43007c9093cSEric BiggersDate:		November 2018
43107c9093cSEric BiggersContact:	Weiping Zhang <zhangweiping@didiglobal.com>
43207c9093cSEric BiggersDescription:
433849ab826SEric Biggers		[RW] io_timeout is the request timeout in milliseconds. If a
434849ab826SEric Biggers		request does not complete in this time then the block driver
435849ab826SEric Biggers		timeout handler is invoked. That timeout handler can decide to
436849ab826SEric Biggers		retry the request, to fail it or to start a device recovery
437849ab826SEric Biggers		strategy.
438849ab826SEric Biggers
439849ab826SEric Biggers
440849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/iostats
441849ab826SEric BiggersDate:		January 2009
442849ab826SEric BiggersContact:	linux-block@vger.kernel.org
443849ab826SEric BiggersDescription:
444849ab826SEric Biggers		[RW] This file is used to control (on/off) the iostats
445849ab826SEric Biggers		accounting of the disk.
44607c9093cSEric Biggers
447110234daSKeith BuschWhat:		/sys/block/<disk>/queue/iostats_passthrough
448110234daSKeith BuschDate:		October 2024
449110234daSKeith BuschContact:	linux-block@vger.kernel.org
450110234daSKeith BuschDescription:
451110234daSKeith Busch		[RW] This file is used to control (on/off) the iostats
452110234daSKeith Busch		accounting of the disk for passthrough commands.
453110234daSKeith Busch
45407c9093cSEric Biggers
45507c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/logical_block_size
45607c9093cSEric BiggersDate:		May 2009
45707c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
45807c9093cSEric BiggersDescription:
459849ab826SEric Biggers		[RO] This is the smallest unit the storage device can address.
460849ab826SEric Biggers		It is typically 512 bytes.
46107c9093cSEric Biggers
46207c9093cSEric Biggers
46307c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/max_active_zones
46407c9093cSEric BiggersDate:		July 2020
46507c9093cSEric BiggersContact:	Niklas Cassel <niklas.cassel@wdc.com>
46607c9093cSEric BiggersDescription:
467849ab826SEric Biggers		[RO] For zoned block devices (zoned attribute indicating
46807c9093cSEric Biggers		"host-managed" or "host-aware"), the sum of zones belonging to
46907c9093cSEric Biggers		any of the zone states: EXPLICIT OPEN, IMPLICIT OPEN or CLOSED,
47007c9093cSEric Biggers		is limited by this value. If this value is 0, there is no limit.
47107c9093cSEric Biggers
472849ab826SEric Biggers		If the host attempts to exceed this limit, the driver should
473849ab826SEric Biggers		report this error with BLK_STS_ZONE_ACTIVE_RESOURCE, which user
474849ab826SEric Biggers		space may see as the EOVERFLOW errno.
475849ab826SEric Biggers
476849ab826SEric Biggers
477849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_discard_segments
478849ab826SEric BiggersDate:		February 2017
479849ab826SEric BiggersContact:	linux-block@vger.kernel.org
480849ab826SEric BiggersDescription:
481849ab826SEric Biggers		[RO] The maximum number of DMA scatter/gather entries in a
482849ab826SEric Biggers		discard request.
483849ab826SEric Biggers
484849ab826SEric Biggers
485849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_hw_sectors_kb
486849ab826SEric BiggersDate:		September 2004
487849ab826SEric BiggersContact:	linux-block@vger.kernel.org
488849ab826SEric BiggersDescription:
489849ab826SEric Biggers		[RO] This is the maximum number of kilobytes supported in a
490849ab826SEric Biggers		single data transfer.
491849ab826SEric Biggers
492849ab826SEric Biggers
493849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_integrity_segments
494849ab826SEric BiggersDate:		September 2010
495849ab826SEric BiggersContact:	linux-block@vger.kernel.org
496849ab826SEric BiggersDescription:
497849ab826SEric Biggers		[RO] Maximum number of elements in a DMA scatter/gather list
498849ab826SEric Biggers		with integrity data that will be submitted by the block layer
499849ab826SEric Biggers		core to the associated block driver.
500849ab826SEric Biggers
50107c9093cSEric Biggers
50207c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/max_open_zones
50307c9093cSEric BiggersDate:		July 2020
50407c9093cSEric BiggersContact:	Niklas Cassel <niklas.cassel@wdc.com>
50507c9093cSEric BiggersDescription:
506849ab826SEric Biggers		[RO] For zoned block devices (zoned attribute indicating
50707c9093cSEric Biggers		"host-managed" or "host-aware"), the sum of zones belonging to
508849ab826SEric Biggers		any of the zone states: EXPLICIT OPEN or IMPLICIT OPEN, is
509849ab826SEric Biggers		limited by this value. If this value is 0, there is no limit.
510849ab826SEric Biggers
511849ab826SEric Biggers
512849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_sectors_kb
513849ab826SEric BiggersDate:		September 2004
514849ab826SEric BiggersContact:	linux-block@vger.kernel.org
515849ab826SEric BiggersDescription:
516849ab826SEric Biggers		[RW] This is the maximum number of kilobytes that the block
517849ab826SEric Biggers		layer will allow for a filesystem request. Must be smaller than
518c9c77418SKeith Busch		or equal to the maximum size allowed by the hardware. Write 0
519c9c77418SKeith Busch		to use default kernel settings.
520849ab826SEric Biggers
521849ab826SEric Biggers
522849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_segment_size
523849ab826SEric BiggersDate:		March 2010
524849ab826SEric BiggersContact:	linux-block@vger.kernel.org
525849ab826SEric BiggersDescription:
526849ab826SEric Biggers		[RO] Maximum size in bytes of a single element in a DMA
527849ab826SEric Biggers		scatter/gather list.
528849ab826SEric Biggers
529849ab826SEric Biggers
530849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/max_segments
531849ab826SEric BiggersDate:		March 2010
532849ab826SEric BiggersContact:	linux-block@vger.kernel.org
533849ab826SEric BiggersDescription:
534849ab826SEric Biggers		[RO] Maximum number of elements in a DMA scatter/gather list
535849ab826SEric Biggers		that is submitted to the associated block driver.
53607c9093cSEric Biggers
53707c9093cSEric Biggers
53807c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/minimum_io_size
53907c9093cSEric BiggersDate:		April 2009
54007c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
54107c9093cSEric BiggersDescription:
542849ab826SEric Biggers		[RO] Storage devices may report a granularity or preferred
543849ab826SEric Biggers		minimum I/O size which is the smallest request the device can
544849ab826SEric Biggers		perform without incurring a performance penalty.  For disk
545849ab826SEric Biggers		drives this is often the physical block size.  For RAID arrays
546849ab826SEric Biggers		it is often the stripe chunk size.  A properly aligned multiple
547849ab826SEric Biggers		of minimum_io_size is the preferred request size for workloads
548849ab826SEric Biggers		where a high number of I/O operations is desired.
54907c9093cSEric Biggers
55007c9093cSEric Biggers
55107c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/nomerges
55207c9093cSEric BiggersDate:		January 2010
5538b0551a7SEric BiggersContact:	linux-block@vger.kernel.org
55407c9093cSEric BiggersDescription:
555849ab826SEric Biggers		[RW] Standard I/O elevator operations include attempts to merge
556849ab826SEric Biggers		contiguous I/Os. For known random I/O loads these attempts will
557849ab826SEric Biggers		always fail and result in extra cycles being spent in the
558849ab826SEric Biggers		kernel. This allows one to turn off this behavior on one of two
559849ab826SEric Biggers		ways: When set to 1, complex merge checks are disabled, but the
560849ab826SEric Biggers		simple one-shot merges with the previous I/O request are
561849ab826SEric Biggers		enabled. When set to 2, all merge tries are disabled. The
562849ab826SEric Biggers		default value is 0 - which enables all types of merge tries.
563849ab826SEric Biggers
564849ab826SEric Biggers
565849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/nr_requests
566849ab826SEric BiggersDate:		July 2003
567849ab826SEric BiggersContact:	linux-block@vger.kernel.org
568849ab826SEric BiggersDescription:
569849ab826SEric Biggers		[RW] This controls how many requests may be allocated in the
570849ab826SEric Biggers		block layer for read or write requests. Note that the total
571849ab826SEric Biggers		allocated number may be twice this amount, since it applies only
572849ab826SEric Biggers		to reads or writes (not the accumulated sum).
573849ab826SEric Biggers
574849ab826SEric Biggers		To avoid priority inversion through request starvation, a
575849ab826SEric Biggers		request queue maintains a separate request pool per each cgroup
576849ab826SEric Biggers		when CONFIG_BLK_CGROUP is enabled, and this parameter applies to
577849ab826SEric Biggers		each such per-block-cgroup request pool.  IOW, if there are N
578849ab826SEric Biggers		block cgroups, each request queue may have up to N request
579849ab826SEric Biggers		pools, each independently regulated by nr_requests.
58007c9093cSEric Biggers
58107c9093cSEric Biggers
58207c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/nr_zones
58307c9093cSEric BiggersDate:		November 2018
58407c9093cSEric BiggersContact:	Damien Le Moal <damien.lemoal@wdc.com>
58507c9093cSEric BiggersDescription:
586849ab826SEric Biggers		[RO] nr_zones indicates the total number of zones of a zoned
587849ab826SEric Biggers		block device ("host-aware" or "host-managed" zone model). For
588849ab826SEric Biggers		regular block devices, the value is always 0.
58907c9093cSEric Biggers
59007c9093cSEric Biggers
59107c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/optimal_io_size
59207c9093cSEric BiggersDate:		April 2009
59307c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
59407c9093cSEric BiggersDescription:
595849ab826SEric Biggers		[RO] Storage devices may report an optimal I/O size, which is
596849ab826SEric Biggers		the device's preferred unit for sustained I/O.  This is rarely
597849ab826SEric Biggers		reported for disk drives.  For RAID arrays it is usually the
598849ab826SEric Biggers		stripe width or the internal track size.  A properly aligned
599849ab826SEric Biggers		multiple of optimal_io_size is the preferred request size for
600849ab826SEric Biggers		workloads where sustained throughput is desired.  If no optimal
601849ab826SEric Biggers		I/O size is reported this file contains 0.
60207c9093cSEric Biggers
60307c9093cSEric Biggers
60407c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/physical_block_size
60507c9093cSEric BiggersDate:		May 2009
60607c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
60707c9093cSEric BiggersDescription:
608849ab826SEric Biggers		[RO] This is the smallest unit a physical storage device can
609849ab826SEric Biggers		write atomically.  It is usually the same as the logical block
610849ab826SEric Biggers		size but may be bigger.  One example is SATA drives with 4KB
611849ab826SEric Biggers		sectors that expose a 512-byte logical block size to the
612849ab826SEric Biggers		operating system.  For stacked block devices the
613849ab826SEric Biggers		physical_block_size variable contains the maximum
614849ab826SEric Biggers		physical_block_size of the component devices.
615849ab826SEric Biggers
616849ab826SEric Biggers
617849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/read_ahead_kb
618849ab826SEric BiggersDate:		May 2004
619849ab826SEric BiggersContact:	linux-block@vger.kernel.org
620849ab826SEric BiggersDescription:
621849ab826SEric Biggers		[RW] Maximum number of kilobytes to read-ahead for filesystems
622849ab826SEric Biggers		on this block device.
623849ab826SEric Biggers
6240740e543SYafang Shao		For MADV_HUGEPAGE, the readahead size may exceed this setting
6250740e543SYafang Shao		since its granularity is based on the hugepage size.
6260740e543SYafang Shao
627849ab826SEric Biggers
628849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/rotational
629849ab826SEric BiggersDate:		January 2009
630849ab826SEric BiggersContact:	linux-block@vger.kernel.org
631849ab826SEric BiggersDescription:
632849ab826SEric Biggers		[RW] This file is used to stat if the device is of rotational
633849ab826SEric Biggers		type or non-rotational type.
634849ab826SEric Biggers
635849ab826SEric Biggers
636849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/rq_affinity
637849ab826SEric BiggersDate:		September 2008
638849ab826SEric BiggersContact:	linux-block@vger.kernel.org
639849ab826SEric BiggersDescription:
640849ab826SEric Biggers		[RW] If this option is '1', the block layer will migrate request
641849ab826SEric Biggers		completions to the cpu "group" that originally submitted the
642849ab826SEric Biggers		request. For some workloads this provides a significant
643849ab826SEric Biggers		reduction in CPU cycles due to caching effects.
644849ab826SEric Biggers
645849ab826SEric Biggers		For storage configurations that need to maximize distribution of
646849ab826SEric Biggers		completion processing setting this option to '2' forces the
647849ab826SEric Biggers		completion to run on the requesting cpu (bypassing the "group"
648849ab826SEric Biggers		aggregation logic).
649849ab826SEric Biggers
650849ab826SEric Biggers
651849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/scheduler
652849ab826SEric BiggersDate:		October 2004
653849ab826SEric BiggersContact:	linux-block@vger.kernel.org
654849ab826SEric BiggersDescription:
655849ab826SEric Biggers		[RW] When read, this file will display the current and available
656849ab826SEric Biggers		IO schedulers for this block device. The currently active IO
657849ab826SEric Biggers		scheduler will be enclosed in [] brackets. Writing an IO
658849ab826SEric Biggers		scheduler name to this file will switch control of this block
659849ab826SEric Biggers		device to that new IO scheduler. Note that writing an IO
660849ab826SEric Biggers		scheduler name to this file will attempt to load that IO
661849ab826SEric Biggers		scheduler module, if it isn't already present in the system.
662849ab826SEric Biggers
663849ab826SEric Biggers
66411630104SEric BiggersWhat:		/sys/block/<disk>/queue/stable_writes
66511630104SEric BiggersDate:		September 2020
66611630104SEric BiggersContact:	linux-block@vger.kernel.org
66711630104SEric BiggersDescription:
66811630104SEric Biggers		[RW] This file will contain '1' if memory must not be modified
66911630104SEric Biggers		while it is being used in a write request to this device.  When
67011630104SEric Biggers		this is the case and the kernel is performing writeback of a
67111630104SEric Biggers		page, the kernel will wait for writeback to complete before
67211630104SEric Biggers		allowing the page to be modified again, rather than allowing
67311630104SEric Biggers		immediate modification as is normally the case.  This
67411630104SEric Biggers		restriction arises when the device accesses the memory multiple
67511630104SEric Biggers		times where the same data must be seen every time -- for
67611630104SEric Biggers		example, once to calculate a checksum and once to actually write
67711630104SEric Biggers		the data.  If no such restriction exists, this file will contain
67811630104SEric Biggers		'0'.  This file is writable for testing purposes.
67911630104SEric Biggers
6808bc2f7c6SEric BiggersWhat:		/sys/block/<disk>/queue/virt_boundary_mask
6818bc2f7c6SEric BiggersDate:		April 2021
6828bc2f7c6SEric BiggersContact:	linux-block@vger.kernel.org
6838bc2f7c6SEric BiggersDescription:
6848bc2f7c6SEric Biggers		[RO] This file shows the I/O segment memory alignment mask for
6858bc2f7c6SEric Biggers		the block device.  I/O requests to this device will be split
6868bc2f7c6SEric Biggers		between segments wherever either the memory address of the end
6878bc2f7c6SEric Biggers		of the previous segment or the memory address of the beginning
6888bc2f7c6SEric Biggers		of the current segment is not aligned to virt_boundary_mask + 1
6898bc2f7c6SEric Biggers		bytes.
6908bc2f7c6SEric Biggers
6918bc2f7c6SEric Biggers
692849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/wbt_lat_usec
693849ab826SEric BiggersDate:		November 2016
694849ab826SEric BiggersContact:	linux-block@vger.kernel.org
695849ab826SEric BiggersDescription:
696849ab826SEric Biggers		[RW] If the device is registered for writeback throttling, then
697849ab826SEric Biggers		this file shows the target minimum read latency. If this latency
698849ab826SEric Biggers		is exceeded in a given window of time (see wb_window_usec), then
699849ab826SEric Biggers		the writeback throttling will start scaling back writes. Writing
700849ab826SEric Biggers		a value of '0' to this file disables the feature. Writing a
701849ab826SEric Biggers		value of '-1' to this file resets the value to the default
702849ab826SEric Biggers		setting.
703849ab826SEric Biggers
704849ab826SEric Biggers
705849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/write_cache
706849ab826SEric BiggersDate:		April 2016
707849ab826SEric BiggersContact:	linux-block@vger.kernel.org
708849ab826SEric BiggersDescription:
709849ab826SEric Biggers		[RW] When read, this file will display whether the device has
710849ab826SEric Biggers		write back caching enabled or not. It will return "write back"
711849ab826SEric Biggers		for the former case, and "write through" for the latter. Writing
712849ab826SEric Biggers		to this file can change the kernels view of the device, but it
713849ab826SEric Biggers		doesn't alter the device state. This means that it might not be
714849ab826SEric Biggers		safe to toggle the setting from "write back" to "write through",
715849ab826SEric Biggers		since that will also eliminate cache flushes issued by the
716849ab826SEric Biggers		kernel.
71707c9093cSEric Biggers
71807c9093cSEric Biggers
71907c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/write_same_max_bytes
72007c9093cSEric BiggersDate:		January 2012
72107c9093cSEric BiggersContact:	Martin K. Petersen <martin.petersen@oracle.com>
72207c9093cSEric BiggersDescription:
723849ab826SEric Biggers		[RO] Some devices support a write same operation in which a
72407c9093cSEric Biggers		single data block can be written to a range of several
725849ab826SEric Biggers		contiguous blocks on storage. This can be used to wipe areas on
726849ab826SEric Biggers		disk or to initialize drives in a RAID configuration.
727849ab826SEric Biggers		write_same_max_bytes indicates how many bytes can be written in
728849ab826SEric Biggers		a single write same command. If write_same_max_bytes is 0, write
729849ab826SEric Biggers		same is not supported by the device.
73007c9093cSEric Biggers
73107c9093cSEric Biggers
73207c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/write_zeroes_max_bytes
73307c9093cSEric BiggersDate:		November 2016
73407c9093cSEric BiggersContact:	Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
73507c9093cSEric BiggersDescription:
736849ab826SEric Biggers		[RO] Devices that support write zeroes operation in which a
737849ab826SEric Biggers		single request can be issued to zero out the range of contiguous
738849ab826SEric Biggers		blocks on storage without having any payload in the request.
739849ab826SEric Biggers		This can be used to optimize writing zeroes to the devices.
740849ab826SEric Biggers		write_zeroes_max_bytes indicates how many bytes can be written
741849ab826SEric Biggers		in a single write zeroes command. If write_zeroes_max_bytes is
742849ab826SEric Biggers		0, write zeroes is not supported by the device.
743849ab826SEric Biggers
744849ab826SEric Biggers
745849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/zone_append_max_bytes
746849ab826SEric BiggersDate:		May 2020
747849ab826SEric BiggersContact:	linux-block@vger.kernel.org
748849ab826SEric BiggersDescription:
749849ab826SEric Biggers		[RO] This is the maximum number of bytes that can be written to
750849ab826SEric Biggers		a sequential zone of a zoned block device using a zone append
751849ab826SEric Biggers		write operation (REQ_OP_ZONE_APPEND). This value is always 0 for
752849ab826SEric Biggers		regular block devices.
753849ab826SEric Biggers
754849ab826SEric Biggers
755849ab826SEric BiggersWhat:		/sys/block/<disk>/queue/zone_write_granularity
756849ab826SEric BiggersDate:		January 2021
757849ab826SEric BiggersContact:	linux-block@vger.kernel.org
758849ab826SEric BiggersDescription:
759849ab826SEric Biggers		[RO] This indicates the alignment constraint, in bytes, for
760849ab826SEric Biggers		write operations in sequential zones of zoned block devices
761849ab826SEric Biggers		(devices with a zoned attributed that reports "host-managed" or
762849ab826SEric Biggers		"host-aware"). This value is always 0 for regular block devices.
76307c9093cSEric Biggers
76407c9093cSEric Biggers
76507c9093cSEric BiggersWhat:		/sys/block/<disk>/queue/zoned
76607c9093cSEric BiggersDate:		September 2016
76707c9093cSEric BiggersContact:	Damien Le Moal <damien.lemoal@wdc.com>
76807c9093cSEric BiggersDescription:
769849ab826SEric Biggers		[RO] zoned indicates if the device is a zoned block device and
770849ab826SEric Biggers		the zone model of the device if it is indeed zoned.  The
771849ab826SEric Biggers		possible values indicated by zoned are "none" for regular block
772849ab826SEric Biggers		devices and "host-aware" or "host-managed" for zoned block
773849ab826SEric Biggers		devices. The characteristics of host-aware and host-managed
774849ab826SEric Biggers		zoned block devices are described in the ZBC (Zoned Block
775849ab826SEric Biggers		Commands) and ZAC (Zoned Device ATA Command Set) standards.
776849ab826SEric Biggers		These standards also define the "drive-managed" zone model.
777849ab826SEric Biggers		However, since drive-managed zoned block devices do not support
778849ab826SEric Biggers		zone commands, they will be treated as regular block devices and
779849ab826SEric Biggers		zoned will report "none".
78007c9093cSEric Biggers
78107c9093cSEric Biggers
782e3306221SSagi GrimbergWhat:		/sys/block/<disk>/hidden
783e3306221SSagi GrimbergDate:		March 2023
784e3306221SSagi GrimbergContact:	linux-block@vger.kernel.org
785e3306221SSagi GrimbergDescription:
786e3306221SSagi Grimberg		[RO] the block device is hidden. it doesn’t produce events, and
787e3306221SSagi Grimberg		can’t be opened from userspace or using blkdev_get*.
788e3306221SSagi Grimberg		Used for the underlying components of multipath devices.
789e3306221SSagi Grimberg
790e3306221SSagi Grimberg
791ae7a7a53SEric BiggersWhat:		/sys/block/<disk>/stat
792ae7a7a53SEric BiggersDate:		February 2008
793ae7a7a53SEric BiggersContact:	Jerome Marchand <jmarchan@redhat.com>
794ae7a7a53SEric BiggersDescription:
795ae7a7a53SEric Biggers		The /sys/block/<disk>/stat files displays the I/O
796ae7a7a53SEric Biggers		statistics of disk <disk>. They contain 11 fields:
797ae7a7a53SEric Biggers
798ae7a7a53SEric Biggers		==  ==============================================
799ae7a7a53SEric Biggers		 1  reads completed successfully
800ae7a7a53SEric Biggers		 2  reads merged
801ae7a7a53SEric Biggers		 3  sectors read
802ae7a7a53SEric Biggers		 4  time spent reading (ms)
803ae7a7a53SEric Biggers		 5  writes completed
804ae7a7a53SEric Biggers		 6  writes merged
805ae7a7a53SEric Biggers		 7  sectors written
806ae7a7a53SEric Biggers		 8  time spent writing (ms)
807ae7a7a53SEric Biggers		 9  I/Os currently in progress
808ae7a7a53SEric Biggers		10  time spent doing I/Os (ms)
809ae7a7a53SEric Biggers		11  weighted time spent doing I/Os (ms)
810ae7a7a53SEric Biggers		12  discards completed
811ae7a7a53SEric Biggers		13  discards merged
812ae7a7a53SEric Biggers		14  sectors discarded
813ae7a7a53SEric Biggers		15  time spent discarding (ms)
814ae7a7a53SEric Biggers		16  flush requests completed
815ae7a7a53SEric Biggers		17  time spent flushing (ms)
816ae7a7a53SEric Biggers		==  ==============================================
817ae7a7a53SEric Biggers
818ae7a7a53SEric Biggers		For more details refer Documentation/admin-guide/iostats.rst
819