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 80fd0ad5e9SAhmad FatoumContact: Matteo Croce <teknoraver@meta.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. 112fc22b34eSMilan Broz This flag is set to 1 if the storage media is formatted 113fc22b34eSMilan Broz with T10 Protection Information. If the storage media is 114fc22b34eSMilan Broz not formatted with T10 Protection Information, this flag 115fc22b34eSMilan Broz is set to 0. 11607c9093cSEric Biggers 11707c9093cSEric Biggers 11807c9093cSEric BiggersWhat: /sys/block/<disk>/integrity/format 11907c9093cSEric BiggersDate: June 2008 12007c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 12107c9093cSEric BiggersDescription: 12207c9093cSEric Biggers Metadata format for integrity capable block device. 12307c9093cSEric Biggers E.g. T10-DIF-TYPE1-CRC. 124fc22b34eSMilan Broz This field describes the type of T10 Protection Information 125fc22b34eSMilan Broz that the block device can send and receive. 126fc22b34eSMilan Broz If the device can store application integrity metadata but 127fc22b34eSMilan Broz no T10 Protection Information profile is used, this field 128fc22b34eSMilan Broz contains "nop". 129fc22b34eSMilan Broz If the device does not support integrity metadata, this 130fc22b34eSMilan Broz field contains "none". 13107c9093cSEric Biggers 13207c9093cSEric Biggers 13307c9093cSEric BiggersWhat: /sys/block/<disk>/integrity/protection_interval_bytes 13407c9093cSEric BiggersDate: July 2015 13507c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 13607c9093cSEric BiggersDescription: 13707c9093cSEric Biggers Describes the number of data bytes which are protected 13807c9093cSEric Biggers by one integrity tuple. Typically the device's logical 13907c9093cSEric Biggers block size. 14007c9093cSEric Biggers 14107c9093cSEric Biggers 14207c9093cSEric BiggersWhat: /sys/block/<disk>/integrity/read_verify 14307c9093cSEric BiggersDate: June 2008 14407c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 14507c9093cSEric BiggersDescription: 14607c9093cSEric Biggers Indicates whether the block layer should verify the 14707c9093cSEric Biggers integrity of read requests serviced by devices that 14807c9093cSEric Biggers support sending integrity metadata. 14907c9093cSEric Biggers 15007c9093cSEric Biggers 15107c9093cSEric BiggersWhat: /sys/block/<disk>/integrity/tag_size 15207c9093cSEric BiggersDate: June 2008 15307c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 15407c9093cSEric BiggersDescription: 15507c9093cSEric Biggers Number of bytes of integrity tag space available per 156fc22b34eSMilan Broz protection_interval_bytes, which is typically 157fc22b34eSMilan Broz the device's logical block size. 158fc22b34eSMilan Broz This field describes the size of the application tag 159fc22b34eSMilan Broz if the storage device is formatted with T10 Protection 160fc22b34eSMilan Broz Information and permits use of the application tag. 161fc22b34eSMilan Broz The tag_size is reported in bytes and indicates the 162fc22b34eSMilan Broz space available for adding an opaque tag to each block 163fc22b34eSMilan Broz (protection_interval_bytes). 164fc22b34eSMilan Broz If the device does not support T10 Protection Information 165fc22b34eSMilan Broz (even if the device provides application integrity 166fc22b34eSMilan Broz metadata space), this field is set to 0. 16707c9093cSEric Biggers 16807c9093cSEric Biggers 16907c9093cSEric BiggersWhat: /sys/block/<disk>/integrity/write_generate 17007c9093cSEric BiggersDate: June 2008 17107c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 17207c9093cSEric BiggersDescription: 17307c9093cSEric Biggers Indicates whether the block layer should automatically 17407c9093cSEric Biggers generate checksums for write requests bound for 17507c9093cSEric Biggers devices that support receiving integrity metadata. 17607c9093cSEric Biggers 17707c9093cSEric Biggers 178a4217c67SChristoph HellwigWhat: /sys/block/<disk>/partscan 179a4217c67SChristoph HellwigDate: May 2024 180a4217c67SChristoph HellwigContact: Christoph Hellwig <hch@lst.de> 181a4217c67SChristoph HellwigDescription: 182a4217c67SChristoph Hellwig The /sys/block/<disk>/partscan files reports if partition 183a4217c67SChristoph Hellwig scanning is enabled for the disk. It returns "1" if partition 184a4217c67SChristoph Hellwig scanning is enabled, or "0" if not. The value type is a 32-bit 185a4217c67SChristoph Hellwig unsigned integer, but only "0" and "1" are valid values. 186a4217c67SChristoph Hellwig 187a4217c67SChristoph Hellwig 18807c9093cSEric BiggersWhat: /sys/block/<disk>/<partition>/alignment_offset 18907c9093cSEric BiggersDate: April 2009 19007c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 19107c9093cSEric BiggersDescription: 19207c9093cSEric Biggers Storage devices may report a physical block size that is 19307c9093cSEric Biggers bigger than the logical block size (for instance a drive 19407c9093cSEric Biggers with 4KB physical sectors exposing 512-byte logical 19507c9093cSEric Biggers blocks to the operating system). This parameter 19607c9093cSEric Biggers indicates how many bytes the beginning of the partition 19707c9093cSEric Biggers is offset from the disk's natural alignment. 19807c9093cSEric Biggers 19907c9093cSEric Biggers 20007c9093cSEric BiggersWhat: /sys/block/<disk>/<partition>/discard_alignment 20107c9093cSEric BiggersDate: May 2011 20207c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 20307c9093cSEric BiggersDescription: 20407c9093cSEric Biggers Devices that support discard functionality may 20507c9093cSEric Biggers internally allocate space in units that are bigger than 20607c9093cSEric Biggers the exported logical block size. The discard_alignment 20707c9093cSEric Biggers parameter indicates how many bytes the beginning of the 20807c9093cSEric Biggers partition is offset from the internal allocation unit's 20907c9093cSEric Biggers natural alignment. 21007c9093cSEric Biggers 21107c9093cSEric Biggers 21207c9093cSEric BiggersWhat: /sys/block/<disk>/<partition>/stat 21307c9093cSEric BiggersDate: February 2008 21407c9093cSEric BiggersContact: Jerome Marchand <jmarchan@redhat.com> 21507c9093cSEric BiggersDescription: 21607c9093cSEric Biggers The /sys/block/<disk>/<partition>/stat files display the 21707c9093cSEric Biggers I/O statistics of partition <partition>. The format is the 21807c9093cSEric Biggers same as the format of /sys/block/<disk>/stat. 21907c9093cSEric Biggers 22007c9093cSEric Biggers 221849ab826SEric BiggersWhat: /sys/block/<disk>/queue/add_random 222849ab826SEric BiggersDate: June 2010 223849ab826SEric BiggersContact: linux-block@vger.kernel.org 224849ab826SEric BiggersDescription: 225849ab826SEric Biggers [RW] This file allows to turn off the disk entropy contribution. 226849ab826SEric Biggers Default value of this file is '1'(on). 227849ab826SEric Biggers 228849ab826SEric Biggers 22907c9093cSEric BiggersWhat: /sys/block/<disk>/queue/chunk_sectors 23007c9093cSEric BiggersDate: September 2016 23107c9093cSEric BiggersContact: Hannes Reinecke <hare@suse.com> 23207c9093cSEric BiggersDescription: 233849ab826SEric Biggers [RO] chunk_sectors has different meaning depending on the type 23407c9093cSEric Biggers of the disk. For a RAID device (dm-raid), chunk_sectors 235849ab826SEric Biggers indicates the size in 512B sectors of the RAID volume stripe 236849ab826SEric Biggers segment. For a zoned block device, either host-aware or 237849ab826SEric Biggers host-managed, chunk_sectors indicates the size in 512B sectors 238849ab826SEric Biggers of the zones of the device, with the eventual exception of the 239849ab826SEric Biggers last zone of the device which may be smaller. 240849ab826SEric Biggers 241849ab826SEric Biggers 24220f01f16SEric BiggersWhat: /sys/block/<disk>/queue/crypto/ 24320f01f16SEric BiggersDate: February 2022 24420f01f16SEric BiggersContact: linux-block@vger.kernel.org 24520f01f16SEric BiggersDescription: 24620f01f16SEric Biggers The presence of this subdirectory of /sys/block/<disk>/queue/ 24720f01f16SEric Biggers indicates that the device supports inline encryption. This 24820f01f16SEric Biggers subdirectory contains files which describe the inline encryption 24920f01f16SEric Biggers capabilities of the device. For more information about inline 25020f01f16SEric Biggers encryption, refer to Documentation/block/inline-encryption.rst. 25120f01f16SEric Biggers 25220f01f16SEric Biggers 253e35fde43SEric BiggersWhat: /sys/block/<disk>/queue/crypto/hw_wrapped_keys 254e35fde43SEric BiggersDate: February 2025 255e35fde43SEric BiggersContact: linux-block@vger.kernel.org 256e35fde43SEric BiggersDescription: 257e35fde43SEric Biggers [RO] The presence of this file indicates that the device 258e35fde43SEric Biggers supports hardware-wrapped inline encryption keys, i.e. key blobs 259e35fde43SEric Biggers that can only be unwrapped and used by dedicated hardware. For 260e35fde43SEric Biggers more information about hardware-wrapped inline encryption keys, 261e35fde43SEric Biggers see Documentation/block/inline-encryption.rst. 262e35fde43SEric Biggers 263e35fde43SEric Biggers 26420f01f16SEric BiggersWhat: /sys/block/<disk>/queue/crypto/max_dun_bits 26520f01f16SEric BiggersDate: February 2022 26620f01f16SEric BiggersContact: linux-block@vger.kernel.org 26720f01f16SEric BiggersDescription: 26820f01f16SEric Biggers [RO] This file shows the maximum length, in bits, of data unit 26920f01f16SEric Biggers numbers accepted by the device in inline encryption requests. 27020f01f16SEric Biggers 27120f01f16SEric Biggers 27220f01f16SEric BiggersWhat: /sys/block/<disk>/queue/crypto/modes/<mode> 27320f01f16SEric BiggersDate: February 2022 27420f01f16SEric BiggersContact: linux-block@vger.kernel.org 27520f01f16SEric BiggersDescription: 27620f01f16SEric Biggers [RO] For each crypto mode (i.e., encryption/decryption 27720f01f16SEric Biggers algorithm) the device supports with inline encryption, a file 27820f01f16SEric Biggers will exist at this location. It will contain a hexadecimal 27920f01f16SEric Biggers number that is a bitmask of the supported data unit sizes, in 28020f01f16SEric Biggers bytes, for that crypto mode. 28120f01f16SEric Biggers 28220f01f16SEric Biggers Currently, the crypto modes that may be supported are: 28320f01f16SEric Biggers 28420f01f16SEric Biggers * AES-256-XTS 28520f01f16SEric Biggers * AES-128-CBC-ESSIV 28620f01f16SEric Biggers * Adiantum 28720f01f16SEric Biggers 28820f01f16SEric Biggers For example, if a device supports AES-256-XTS inline encryption 28920f01f16SEric Biggers with data unit sizes of 512 and 4096 bytes, the file 29020f01f16SEric Biggers /sys/block/<disk>/queue/crypto/modes/AES-256-XTS will exist and 29120f01f16SEric Biggers will contain "0x1200". 29220f01f16SEric Biggers 29320f01f16SEric Biggers 29420f01f16SEric BiggersWhat: /sys/block/<disk>/queue/crypto/num_keyslots 29520f01f16SEric BiggersDate: February 2022 29620f01f16SEric BiggersContact: linux-block@vger.kernel.org 29720f01f16SEric BiggersDescription: 29820f01f16SEric Biggers [RO] This file shows the number of keyslots the device has for 29920f01f16SEric Biggers use with inline encryption. 30020f01f16SEric Biggers 30120f01f16SEric Biggers 302e35fde43SEric BiggersWhat: /sys/block/<disk>/queue/crypto/raw_keys 303e35fde43SEric BiggersDate: February 2025 304e35fde43SEric BiggersContact: linux-block@vger.kernel.org 305e35fde43SEric BiggersDescription: 306e35fde43SEric Biggers [RO] The presence of this file indicates that the device 307e35fde43SEric Biggers supports raw inline encryption keys, i.e. keys that are managed 308e35fde43SEric Biggers in raw, plaintext form in software. 309e35fde43SEric Biggers 310e35fde43SEric Biggers 311849ab826SEric BiggersWhat: /sys/block/<disk>/queue/dax 312849ab826SEric BiggersDate: June 2016 313849ab826SEric BiggersContact: linux-block@vger.kernel.org 314849ab826SEric BiggersDescription: 315849ab826SEric Biggers [RO] This file indicates whether the device supports Direct 316849ab826SEric Biggers Access (DAX), used by CPU-addressable storage to bypass the 317849ab826SEric Biggers pagecache. It shows '1' if true, '0' if not. 31807c9093cSEric Biggers 31907c9093cSEric Biggers 32007c9093cSEric BiggersWhat: /sys/block/<disk>/queue/discard_granularity 32107c9093cSEric BiggersDate: May 2011 32207c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 32307c9093cSEric BiggersDescription: 324849ab826SEric Biggers [RO] Devices that support discard functionality may internally 325849ab826SEric Biggers allocate space using units that are bigger than the logical 326849ab826SEric Biggers block size. The discard_granularity parameter indicates the size 327849ab826SEric Biggers of the internal allocation unit in bytes if reported by the 328849ab826SEric Biggers device. Otherwise the discard_granularity will be set to match 329849ab826SEric Biggers the device's physical block size. A discard_granularity of 0 330849ab826SEric Biggers means that the device does not support discard functionality. 33107c9093cSEric Biggers 33207c9093cSEric Biggers 33307c9093cSEric BiggersWhat: /sys/block/<disk>/queue/discard_max_bytes 33407c9093cSEric BiggersDate: May 2011 33507c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 33607c9093cSEric BiggersDescription: 337849ab826SEric Biggers [RW] While discard_max_hw_bytes is the hardware limit for the 338849ab826SEric Biggers device, this setting is the software limit. Some devices exhibit 339849ab826SEric Biggers large latencies when large discards are issued, setting this 340849ab826SEric Biggers value lower will make Linux issue smaller discards and 341849ab826SEric Biggers potentially help reduce latencies induced by large discard 342849ab826SEric Biggers operations. 343849ab826SEric Biggers 344849ab826SEric Biggers 345849ab826SEric BiggersWhat: /sys/block/<disk>/queue/discard_max_hw_bytes 346849ab826SEric BiggersDate: July 2015 347849ab826SEric BiggersContact: linux-block@vger.kernel.org 348849ab826SEric BiggersDescription: 349849ab826SEric Biggers [RO] Devices that support discard functionality may have 350849ab826SEric Biggers internal limits on the number of bytes that can be trimmed or 351849ab826SEric Biggers unmapped in a single operation. The `discard_max_hw_bytes` 352849ab826SEric Biggers parameter is set by the device driver to the maximum number of 353849ab826SEric Biggers bytes that can be discarded in a single operation. Discard 354849ab826SEric Biggers requests issued to the device must not exceed this limit. A 355849ab826SEric Biggers `discard_max_hw_bytes` value of 0 means that the device does not 356849ab826SEric Biggers support discard functionality. 35707c9093cSEric Biggers 35807c9093cSEric Biggers 35907c9093cSEric BiggersWhat: /sys/block/<disk>/queue/discard_zeroes_data 36007c9093cSEric BiggersDate: May 2011 36107c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 36207c9093cSEric BiggersDescription: 363849ab826SEric Biggers [RO] Will always return 0. Don't rely on any specific behavior 36407c9093cSEric Biggers for discards, and don't read this file. 36507c9093cSEric Biggers 36607c9093cSEric Biggers 3673850e13fSKeith BuschWhat: /sys/block/<disk>/queue/dma_alignment 3683850e13fSKeith BuschDate: May 2022 3693850e13fSKeith BuschContact: linux-block@vger.kernel.org 3703850e13fSKeith BuschDescription: 3713850e13fSKeith Busch Reports the alignment that user space addresses must have to be 3723850e13fSKeith Busch used for raw block device access with O_DIRECT and other driver 3733850e13fSKeith Busch specific passthrough mechanisms. 3743850e13fSKeith Busch 3753850e13fSKeith Busch 376849ab826SEric BiggersWhat: /sys/block/<disk>/queue/fua 377849ab826SEric BiggersDate: May 2018 378849ab826SEric BiggersContact: linux-block@vger.kernel.org 379849ab826SEric BiggersDescription: 380849ab826SEric Biggers [RO] Whether or not the block driver supports the FUA flag for 381849ab826SEric Biggers write requests. FUA stands for Force Unit Access. If the FUA 382849ab826SEric Biggers flag is set that means that write requests must bypass the 383849ab826SEric Biggers volatile cache of the storage device. 384849ab826SEric Biggers 385849ab826SEric Biggers 386849ab826SEric BiggersWhat: /sys/block/<disk>/queue/hw_sector_size 387849ab826SEric BiggersDate: January 2008 388849ab826SEric BiggersContact: linux-block@vger.kernel.org 389849ab826SEric BiggersDescription: 390849ab826SEric Biggers [RO] This is the hardware sector size of the device, in bytes. 391849ab826SEric Biggers 392849ab826SEric Biggers 393849ab826SEric BiggersWhat: /sys/block/<disk>/queue/independent_access_ranges/ 394849ab826SEric BiggersDate: October 2021 395849ab826SEric BiggersContact: linux-block@vger.kernel.org 396849ab826SEric BiggersDescription: 397849ab826SEric Biggers [RO] The presence of this sub-directory of the 398849ab826SEric Biggers /sys/block/xxx/queue/ directory indicates that the device is 399849ab826SEric Biggers capable of executing requests targeting different sector ranges 400849ab826SEric Biggers in parallel. For instance, single LUN multi-actuator hard-disks 401849ab826SEric Biggers will have an independent_access_ranges directory if the device 402ebab9426SBjorn Helgaas correctly advertises the sector ranges of its actuators. 403849ab826SEric Biggers 404849ab826SEric Biggers The independent_access_ranges directory contains one directory 405849ab826SEric Biggers per access range, with each range described using the sector 406849ab826SEric Biggers (RO) attribute file to indicate the first sector of the range 407849ab826SEric Biggers and the nr_sectors (RO) attribute file to indicate the total 408849ab826SEric Biggers number of sectors in the range starting from the first sector of 409849ab826SEric Biggers the range. For example, a dual-actuator hard-disk will have the 410849ab826SEric Biggers following independent_access_ranges entries.:: 411849ab826SEric Biggers 412849ab826SEric Biggers $ tree /sys/block/<disk>/queue/independent_access_ranges/ 413849ab826SEric Biggers /sys/block/<disk>/queue/independent_access_ranges/ 414849ab826SEric Biggers |-- 0 415849ab826SEric Biggers | |-- nr_sectors 416849ab826SEric Biggers | `-- sector 417849ab826SEric Biggers `-- 1 418849ab826SEric Biggers |-- nr_sectors 419849ab826SEric Biggers `-- sector 420849ab826SEric Biggers 421849ab826SEric Biggers The sector and nr_sectors attributes use 512B sector unit, 422849ab826SEric Biggers regardless of the actual block size of the device. Independent 423849ab826SEric Biggers access ranges do not overlap and include all sectors within the 424849ab826SEric Biggers device capacity. The access ranges are numbered in increasing 425849ab826SEric Biggers order of the range start sector, that is, the sector attribute 426849ab826SEric Biggers of range 0 always has the value 0. 427849ab826SEric Biggers 428849ab826SEric Biggers 429849ab826SEric BiggersWhat: /sys/block/<disk>/queue/io_poll 430849ab826SEric BiggersDate: November 2015 431849ab826SEric BiggersContact: linux-block@vger.kernel.org 432849ab826SEric BiggersDescription: 433849ab826SEric Biggers [RW] When read, this file shows whether polling is enabled (1) 434849ab826SEric Biggers or disabled (0). Writing '0' to this file will disable polling 435849ab826SEric Biggers for this device. Writing any non-zero value will enable this 436849ab826SEric Biggers feature. 437849ab826SEric Biggers 438849ab826SEric Biggers 439849ab826SEric BiggersWhat: /sys/block/<disk>/queue/io_poll_delay 440849ab826SEric BiggersDate: November 2016 441849ab826SEric BiggersContact: linux-block@vger.kernel.org 442849ab826SEric BiggersDescription: 44354bdd67dSKeith Busch [RW] This was used to control what kind of polling will be 44454bdd67dSKeith Busch performed. It is now fixed to -1, which is classic polling. 445849ab826SEric Biggers In this mode, the CPU will repeatedly ask for completions 44654bdd67dSKeith Busch without giving up any time. 44754bdd67dSKeith Busch <deprecated> 448849ab826SEric Biggers 449849ab826SEric Biggers 45007c9093cSEric BiggersWhat: /sys/block/<disk>/queue/io_timeout 45107c9093cSEric BiggersDate: November 2018 45207c9093cSEric BiggersContact: Weiping Zhang <zhangweiping@didiglobal.com> 45307c9093cSEric BiggersDescription: 454849ab826SEric Biggers [RW] io_timeout is the request timeout in milliseconds. If a 455849ab826SEric Biggers request does not complete in this time then the block driver 456849ab826SEric Biggers timeout handler is invoked. That timeout handler can decide to 457849ab826SEric Biggers retry the request, to fail it or to start a device recovery 458849ab826SEric Biggers strategy. 459849ab826SEric Biggers 460849ab826SEric Biggers 461849ab826SEric BiggersWhat: /sys/block/<disk>/queue/iostats 462849ab826SEric BiggersDate: January 2009 463849ab826SEric BiggersContact: linux-block@vger.kernel.org 464849ab826SEric BiggersDescription: 465849ab826SEric Biggers [RW] This file is used to control (on/off) the iostats 466849ab826SEric Biggers accounting of the disk. 46707c9093cSEric Biggers 468110234daSKeith BuschWhat: /sys/block/<disk>/queue/iostats_passthrough 469110234daSKeith BuschDate: October 2024 470110234daSKeith BuschContact: linux-block@vger.kernel.org 471110234daSKeith BuschDescription: 472110234daSKeith Busch [RW] This file is used to control (on/off) the iostats 473110234daSKeith Busch accounting of the disk for passthrough commands. 474110234daSKeith Busch 47507c9093cSEric Biggers 47607c9093cSEric BiggersWhat: /sys/block/<disk>/queue/logical_block_size 47707c9093cSEric BiggersDate: May 2009 47807c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 47907c9093cSEric BiggersDescription: 480849ab826SEric Biggers [RO] This is the smallest unit the storage device can address. 481849ab826SEric Biggers It is typically 512 bytes. 48207c9093cSEric Biggers 48307c9093cSEric Biggers 48407c9093cSEric BiggersWhat: /sys/block/<disk>/queue/max_active_zones 48507c9093cSEric BiggersDate: July 2020 48607c9093cSEric BiggersContact: Niklas Cassel <niklas.cassel@wdc.com> 48707c9093cSEric BiggersDescription: 488849ab826SEric Biggers [RO] For zoned block devices (zoned attribute indicating 48907c9093cSEric Biggers "host-managed" or "host-aware"), the sum of zones belonging to 49007c9093cSEric Biggers any of the zone states: EXPLICIT OPEN, IMPLICIT OPEN or CLOSED, 49107c9093cSEric Biggers is limited by this value. If this value is 0, there is no limit. 49207c9093cSEric Biggers 493849ab826SEric Biggers If the host attempts to exceed this limit, the driver should 494849ab826SEric Biggers report this error with BLK_STS_ZONE_ACTIVE_RESOURCE, which user 495849ab826SEric Biggers space may see as the EOVERFLOW errno. 496849ab826SEric Biggers 497849ab826SEric Biggers 498849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_discard_segments 499849ab826SEric BiggersDate: February 2017 500849ab826SEric BiggersContact: linux-block@vger.kernel.org 501849ab826SEric BiggersDescription: 502849ab826SEric Biggers [RO] The maximum number of DMA scatter/gather entries in a 503849ab826SEric Biggers discard request. 504849ab826SEric Biggers 505849ab826SEric Biggers 506849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_hw_sectors_kb 507849ab826SEric BiggersDate: September 2004 508849ab826SEric BiggersContact: linux-block@vger.kernel.org 509849ab826SEric BiggersDescription: 510849ab826SEric Biggers [RO] This is the maximum number of kilobytes supported in a 511849ab826SEric Biggers single data transfer. 512849ab826SEric Biggers 513849ab826SEric Biggers 514849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_integrity_segments 515849ab826SEric BiggersDate: September 2010 516849ab826SEric BiggersContact: linux-block@vger.kernel.org 517849ab826SEric BiggersDescription: 518849ab826SEric Biggers [RO] Maximum number of elements in a DMA scatter/gather list 519849ab826SEric Biggers with integrity data that will be submitted by the block layer 520849ab826SEric Biggers core to the associated block driver. 521849ab826SEric Biggers 52207c9093cSEric Biggers 52307c9093cSEric BiggersWhat: /sys/block/<disk>/queue/max_open_zones 52407c9093cSEric BiggersDate: July 2020 52507c9093cSEric BiggersContact: Niklas Cassel <niklas.cassel@wdc.com> 52607c9093cSEric BiggersDescription: 527849ab826SEric Biggers [RO] For zoned block devices (zoned attribute indicating 52807c9093cSEric Biggers "host-managed" or "host-aware"), the sum of zones belonging to 529849ab826SEric Biggers any of the zone states: EXPLICIT OPEN or IMPLICIT OPEN, is 530849ab826SEric Biggers limited by this value. If this value is 0, there is no limit. 531849ab826SEric Biggers 532849ab826SEric Biggers 533849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_sectors_kb 534849ab826SEric BiggersDate: September 2004 535849ab826SEric BiggersContact: linux-block@vger.kernel.org 536849ab826SEric BiggersDescription: 537849ab826SEric Biggers [RW] This is the maximum number of kilobytes that the block 538849ab826SEric Biggers layer will allow for a filesystem request. Must be smaller than 539c9c77418SKeith Busch or equal to the maximum size allowed by the hardware. Write 0 540c9c77418SKeith Busch to use default kernel settings. 541849ab826SEric Biggers 542849ab826SEric Biggers 543849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_segment_size 544849ab826SEric BiggersDate: March 2010 545849ab826SEric BiggersContact: linux-block@vger.kernel.org 546849ab826SEric BiggersDescription: 547849ab826SEric Biggers [RO] Maximum size in bytes of a single element in a DMA 548849ab826SEric Biggers scatter/gather list. 549849ab826SEric Biggers 550d2f526baSKeith BuschWhat: /sys/block/<disk>/queue/max_write_streams 551d2f526baSKeith BuschDate: November 2024 552d2f526baSKeith BuschContact: linux-block@vger.kernel.org 553d2f526baSKeith BuschDescription: 554d2f526baSKeith Busch [RO] Maximum number of write streams supported, 0 if not 555d2f526baSKeith Busch supported. If supported, valid values are 1 through 556d2f526baSKeith Busch max_write_streams, inclusive. 557849ab826SEric Biggers 558c23acfacSChristoph HellwigWhat: /sys/block/<disk>/queue/write_stream_granularity 559c23acfacSChristoph HellwigDate: November 2024 560c23acfacSChristoph HellwigContact: linux-block@vger.kernel.org 561c23acfacSChristoph HellwigDescription: 562c23acfacSChristoph Hellwig [RO] Granularity of a write stream in bytes. The granularity 563c23acfacSChristoph Hellwig of a write stream is the size that should be discarded or 564c23acfacSChristoph Hellwig overwritten together to avoid write amplification in the device. 565c23acfacSChristoph Hellwig 566849ab826SEric BiggersWhat: /sys/block/<disk>/queue/max_segments 567849ab826SEric BiggersDate: March 2010 568849ab826SEric BiggersContact: linux-block@vger.kernel.org 569849ab826SEric BiggersDescription: 570849ab826SEric Biggers [RO] Maximum number of elements in a DMA scatter/gather list 571849ab826SEric Biggers that is submitted to the associated block driver. 57207c9093cSEric Biggers 57307c9093cSEric Biggers 57407c9093cSEric BiggersWhat: /sys/block/<disk>/queue/minimum_io_size 57507c9093cSEric BiggersDate: April 2009 57607c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 57707c9093cSEric BiggersDescription: 578849ab826SEric Biggers [RO] Storage devices may report a granularity or preferred 579849ab826SEric Biggers minimum I/O size which is the smallest request the device can 580849ab826SEric Biggers perform without incurring a performance penalty. For disk 581849ab826SEric Biggers drives this is often the physical block size. For RAID arrays 582849ab826SEric Biggers it is often the stripe chunk size. A properly aligned multiple 583849ab826SEric Biggers of minimum_io_size is the preferred request size for workloads 584849ab826SEric Biggers where a high number of I/O operations is desired. 58507c9093cSEric Biggers 58607c9093cSEric Biggers 58707c9093cSEric BiggersWhat: /sys/block/<disk>/queue/nomerges 58807c9093cSEric BiggersDate: January 2010 5898b0551a7SEric BiggersContact: linux-block@vger.kernel.org 59007c9093cSEric BiggersDescription: 591849ab826SEric Biggers [RW] Standard I/O elevator operations include attempts to merge 592849ab826SEric Biggers contiguous I/Os. For known random I/O loads these attempts will 593849ab826SEric Biggers always fail and result in extra cycles being spent in the 594849ab826SEric Biggers kernel. This allows one to turn off this behavior on one of two 595849ab826SEric Biggers ways: When set to 1, complex merge checks are disabled, but the 596849ab826SEric Biggers simple one-shot merges with the previous I/O request are 597849ab826SEric Biggers enabled. When set to 2, all merge tries are disabled. The 598849ab826SEric Biggers default value is 0 - which enables all types of merge tries. 599849ab826SEric Biggers 600849ab826SEric Biggers 601849ab826SEric BiggersWhat: /sys/block/<disk>/queue/nr_requests 602849ab826SEric BiggersDate: July 2003 603849ab826SEric BiggersContact: linux-block@vger.kernel.org 604849ab826SEric BiggersDescription: 605849ab826SEric Biggers [RW] This controls how many requests may be allocated in the 606849ab826SEric Biggers block layer for read or write requests. Note that the total 607849ab826SEric Biggers allocated number may be twice this amount, since it applies only 608849ab826SEric Biggers to reads or writes (not the accumulated sum). 609849ab826SEric Biggers 610849ab826SEric Biggers To avoid priority inversion through request starvation, a 611849ab826SEric Biggers request queue maintains a separate request pool per each cgroup 612849ab826SEric Biggers when CONFIG_BLK_CGROUP is enabled, and this parameter applies to 613849ab826SEric Biggers each such per-block-cgroup request pool. IOW, if there are N 614849ab826SEric Biggers block cgroups, each request queue may have up to N request 615849ab826SEric Biggers pools, each independently regulated by nr_requests. 61607c9093cSEric Biggers 61707c9093cSEric Biggers 61807c9093cSEric BiggersWhat: /sys/block/<disk>/queue/nr_zones 61907c9093cSEric BiggersDate: November 2018 62007c9093cSEric BiggersContact: Damien Le Moal <damien.lemoal@wdc.com> 62107c9093cSEric BiggersDescription: 622849ab826SEric Biggers [RO] nr_zones indicates the total number of zones of a zoned 623849ab826SEric Biggers block device ("host-aware" or "host-managed" zone model). For 624849ab826SEric Biggers regular block devices, the value is always 0. 62507c9093cSEric Biggers 62607c9093cSEric Biggers 62707c9093cSEric BiggersWhat: /sys/block/<disk>/queue/optimal_io_size 62807c9093cSEric BiggersDate: April 2009 62907c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 63007c9093cSEric BiggersDescription: 631849ab826SEric Biggers [RO] Storage devices may report an optimal I/O size, which is 632849ab826SEric Biggers the device's preferred unit for sustained I/O. This is rarely 633849ab826SEric Biggers reported for disk drives. For RAID arrays it is usually the 634849ab826SEric Biggers stripe width or the internal track size. A properly aligned 635849ab826SEric Biggers multiple of optimal_io_size is the preferred request size for 636849ab826SEric Biggers workloads where sustained throughput is desired. If no optimal 637849ab826SEric Biggers I/O size is reported this file contains 0. 63807c9093cSEric Biggers 63907c9093cSEric Biggers 64007c9093cSEric BiggersWhat: /sys/block/<disk>/queue/physical_block_size 64107c9093cSEric BiggersDate: May 2009 64207c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 64307c9093cSEric BiggersDescription: 644849ab826SEric Biggers [RO] This is the smallest unit a physical storage device can 645849ab826SEric Biggers write atomically. It is usually the same as the logical block 646849ab826SEric Biggers size but may be bigger. One example is SATA drives with 4KB 647849ab826SEric Biggers sectors that expose a 512-byte logical block size to the 648849ab826SEric Biggers operating system. For stacked block devices the 649849ab826SEric Biggers physical_block_size variable contains the maximum 650849ab826SEric Biggers physical_block_size of the component devices. 651849ab826SEric Biggers 652849ab826SEric Biggers 653849ab826SEric BiggersWhat: /sys/block/<disk>/queue/read_ahead_kb 654849ab826SEric BiggersDate: May 2004 655849ab826SEric BiggersContact: linux-block@vger.kernel.org 656849ab826SEric BiggersDescription: 657849ab826SEric Biggers [RW] Maximum number of kilobytes to read-ahead for filesystems 658849ab826SEric Biggers on this block device. 659849ab826SEric Biggers 6600740e543SYafang Shao For MADV_HUGEPAGE, the readahead size may exceed this setting 6610740e543SYafang Shao since its granularity is based on the hugepage size. 6620740e543SYafang Shao 663849ab826SEric Biggers 664849ab826SEric BiggersWhat: /sys/block/<disk>/queue/rotational 665849ab826SEric BiggersDate: January 2009 666849ab826SEric BiggersContact: linux-block@vger.kernel.org 667849ab826SEric BiggersDescription: 668849ab826SEric Biggers [RW] This file is used to stat if the device is of rotational 669849ab826SEric Biggers type or non-rotational type. 670849ab826SEric Biggers 671849ab826SEric Biggers 672849ab826SEric BiggersWhat: /sys/block/<disk>/queue/rq_affinity 673849ab826SEric BiggersDate: September 2008 674849ab826SEric BiggersContact: linux-block@vger.kernel.org 675849ab826SEric BiggersDescription: 676849ab826SEric Biggers [RW] If this option is '1', the block layer will migrate request 677849ab826SEric Biggers completions to the cpu "group" that originally submitted the 678849ab826SEric Biggers request. For some workloads this provides a significant 679849ab826SEric Biggers reduction in CPU cycles due to caching effects. 680849ab826SEric Biggers 681849ab826SEric Biggers For storage configurations that need to maximize distribution of 682849ab826SEric Biggers completion processing setting this option to '2' forces the 683849ab826SEric Biggers completion to run on the requesting cpu (bypassing the "group" 684849ab826SEric Biggers aggregation logic). 685849ab826SEric Biggers 686849ab826SEric Biggers 687849ab826SEric BiggersWhat: /sys/block/<disk>/queue/scheduler 688849ab826SEric BiggersDate: October 2004 689849ab826SEric BiggersContact: linux-block@vger.kernel.org 690849ab826SEric BiggersDescription: 691849ab826SEric Biggers [RW] When read, this file will display the current and available 692849ab826SEric Biggers IO schedulers for this block device. The currently active IO 693849ab826SEric Biggers scheduler will be enclosed in [] brackets. Writing an IO 694849ab826SEric Biggers scheduler name to this file will switch control of this block 695849ab826SEric Biggers device to that new IO scheduler. Note that writing an IO 696849ab826SEric Biggers scheduler name to this file will attempt to load that IO 697849ab826SEric Biggers scheduler module, if it isn't already present in the system. 698849ab826SEric Biggers 699849ab826SEric Biggers 70011630104SEric BiggersWhat: /sys/block/<disk>/queue/stable_writes 70111630104SEric BiggersDate: September 2020 70211630104SEric BiggersContact: linux-block@vger.kernel.org 70311630104SEric BiggersDescription: 70411630104SEric Biggers [RW] This file will contain '1' if memory must not be modified 70511630104SEric Biggers while it is being used in a write request to this device. When 70611630104SEric Biggers this is the case and the kernel is performing writeback of a 70711630104SEric Biggers page, the kernel will wait for writeback to complete before 70811630104SEric Biggers allowing the page to be modified again, rather than allowing 70911630104SEric Biggers immediate modification as is normally the case. This 71011630104SEric Biggers restriction arises when the device accesses the memory multiple 71111630104SEric Biggers times where the same data must be seen every time -- for 71211630104SEric Biggers example, once to calculate a checksum and once to actually write 71311630104SEric Biggers the data. If no such restriction exists, this file will contain 71411630104SEric Biggers '0'. This file is writable for testing purposes. 71511630104SEric Biggers 7168bc2f7c6SEric BiggersWhat: /sys/block/<disk>/queue/virt_boundary_mask 7178bc2f7c6SEric BiggersDate: April 2021 7188bc2f7c6SEric BiggersContact: linux-block@vger.kernel.org 7198bc2f7c6SEric BiggersDescription: 7208bc2f7c6SEric Biggers [RO] This file shows the I/O segment memory alignment mask for 7218bc2f7c6SEric Biggers the block device. I/O requests to this device will be split 7228bc2f7c6SEric Biggers between segments wherever either the memory address of the end 7238bc2f7c6SEric Biggers of the previous segment or the memory address of the beginning 7248bc2f7c6SEric Biggers of the current segment is not aligned to virt_boundary_mask + 1 7258bc2f7c6SEric Biggers bytes. 7268bc2f7c6SEric Biggers 7278bc2f7c6SEric Biggers 728849ab826SEric BiggersWhat: /sys/block/<disk>/queue/wbt_lat_usec 729849ab826SEric BiggersDate: November 2016 730849ab826SEric BiggersContact: linux-block@vger.kernel.org 731849ab826SEric BiggersDescription: 732849ab826SEric Biggers [RW] If the device is registered for writeback throttling, then 733849ab826SEric Biggers this file shows the target minimum read latency. If this latency 734*0452f083STang Yizhou is exceeded in a given window of time (see curr_win_nsec), then 735849ab826SEric Biggers the writeback throttling will start scaling back writes. Writing 736849ab826SEric Biggers a value of '0' to this file disables the feature. Writing a 737849ab826SEric Biggers value of '-1' to this file resets the value to the default 738849ab826SEric Biggers setting. 739849ab826SEric Biggers 740849ab826SEric Biggers 741849ab826SEric BiggersWhat: /sys/block/<disk>/queue/write_cache 742849ab826SEric BiggersDate: April 2016 743849ab826SEric BiggersContact: linux-block@vger.kernel.org 744849ab826SEric BiggersDescription: 745849ab826SEric Biggers [RW] When read, this file will display whether the device has 746849ab826SEric Biggers write back caching enabled or not. It will return "write back" 747849ab826SEric Biggers for the former case, and "write through" for the latter. Writing 748849ab826SEric Biggers to this file can change the kernels view of the device, but it 749849ab826SEric Biggers doesn't alter the device state. This means that it might not be 750849ab826SEric Biggers safe to toggle the setting from "write back" to "write through", 751849ab826SEric Biggers since that will also eliminate cache flushes issued by the 752849ab826SEric Biggers kernel. 75307c9093cSEric Biggers 75407c9093cSEric Biggers 75507c9093cSEric BiggersWhat: /sys/block/<disk>/queue/write_same_max_bytes 75607c9093cSEric BiggersDate: January 2012 75707c9093cSEric BiggersContact: Martin K. Petersen <martin.petersen@oracle.com> 75807c9093cSEric BiggersDescription: 759849ab826SEric Biggers [RO] Some devices support a write same operation in which a 76007c9093cSEric Biggers single data block can be written to a range of several 761849ab826SEric Biggers contiguous blocks on storage. This can be used to wipe areas on 762849ab826SEric Biggers disk or to initialize drives in a RAID configuration. 763849ab826SEric Biggers write_same_max_bytes indicates how many bytes can be written in 764849ab826SEric Biggers a single write same command. If write_same_max_bytes is 0, write 765849ab826SEric Biggers same is not supported by the device. 76607c9093cSEric Biggers 76707c9093cSEric Biggers 76807c9093cSEric BiggersWhat: /sys/block/<disk>/queue/write_zeroes_max_bytes 76907c9093cSEric BiggersDate: November 2016 77007c9093cSEric BiggersContact: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> 77107c9093cSEric BiggersDescription: 772849ab826SEric Biggers [RO] Devices that support write zeroes operation in which a 773849ab826SEric Biggers single request can be issued to zero out the range of contiguous 774849ab826SEric Biggers blocks on storage without having any payload in the request. 775849ab826SEric Biggers This can be used to optimize writing zeroes to the devices. 776849ab826SEric Biggers write_zeroes_max_bytes indicates how many bytes can be written 777849ab826SEric Biggers in a single write zeroes command. If write_zeroes_max_bytes is 778849ab826SEric Biggers 0, write zeroes is not supported by the device. 779849ab826SEric Biggers 780849ab826SEric Biggers 7810c40d7cbSZhang YiWhat: /sys/block/<disk>/queue/write_zeroes_unmap_max_hw_bytes 7820c40d7cbSZhang YiDate: January 2025 7830c40d7cbSZhang YiContact: Zhang Yi <yi.zhang@huawei.com> 7840c40d7cbSZhang YiDescription: 7850c40d7cbSZhang Yi [RO] This file indicates whether a device supports zeroing data 7860c40d7cbSZhang Yi in a specified block range without incurring the cost of 7870c40d7cbSZhang Yi physically writing zeroes to the media for each individual 7880c40d7cbSZhang Yi block. If this parameter is set to write_zeroes_max_bytes, the 7890c40d7cbSZhang Yi device implements a zeroing operation which opportunistically 7900c40d7cbSZhang Yi avoids writing zeroes to media while still guaranteeing that 7910c40d7cbSZhang Yi subsequent reads from the specified block range will return 7920c40d7cbSZhang Yi zeroed data. This operation is a best-effort optimization, a 7930c40d7cbSZhang Yi device may fall back to physically writing zeroes to the media 7940c40d7cbSZhang Yi due to other factors such as misalignment or being asked to 7950c40d7cbSZhang Yi clear a block range smaller than the device's internal 7960c40d7cbSZhang Yi allocation unit. If this parameter is set to 0, the device may 7970c40d7cbSZhang Yi have to write each logical block media during a zeroing 7980c40d7cbSZhang Yi operation. 7990c40d7cbSZhang Yi 8000c40d7cbSZhang Yi 8010c40d7cbSZhang YiWhat: /sys/block/<disk>/queue/write_zeroes_unmap_max_bytes 8020c40d7cbSZhang YiDate: January 2025 8030c40d7cbSZhang YiContact: Zhang Yi <yi.zhang@huawei.com> 8040c40d7cbSZhang YiDescription: 8050c40d7cbSZhang Yi [RW] While write_zeroes_unmap_max_hw_bytes is the hardware limit 8060c40d7cbSZhang Yi for the device, this setting is the software limit. Since the 8070c40d7cbSZhang Yi unmap write zeroes operation is a best-effort optimization, some 8080c40d7cbSZhang Yi devices may still physically writing zeroes to media. So the 8090c40d7cbSZhang Yi speed of this operation is not guaranteed. Writing a value of 8100c40d7cbSZhang Yi '0' to this file disables this operation. Otherwise, this 8110c40d7cbSZhang Yi parameter should be equal to write_zeroes_unmap_max_hw_bytes. 8120c40d7cbSZhang Yi 8130c40d7cbSZhang Yi 814849ab826SEric BiggersWhat: /sys/block/<disk>/queue/zone_append_max_bytes 815849ab826SEric BiggersDate: May 2020 816849ab826SEric BiggersContact: linux-block@vger.kernel.org 817849ab826SEric BiggersDescription: 818849ab826SEric Biggers [RO] This is the maximum number of bytes that can be written to 819849ab826SEric Biggers a sequential zone of a zoned block device using a zone append 820849ab826SEric Biggers write operation (REQ_OP_ZONE_APPEND). This value is always 0 for 821849ab826SEric Biggers regular block devices. 822849ab826SEric Biggers 823849ab826SEric Biggers 824849ab826SEric BiggersWhat: /sys/block/<disk>/queue/zone_write_granularity 825849ab826SEric BiggersDate: January 2021 826849ab826SEric BiggersContact: linux-block@vger.kernel.org 827849ab826SEric BiggersDescription: 828849ab826SEric Biggers [RO] This indicates the alignment constraint, in bytes, for 829849ab826SEric Biggers write operations in sequential zones of zoned block devices 830849ab826SEric Biggers (devices with a zoned attributed that reports "host-managed" or 831849ab826SEric Biggers "host-aware"). This value is always 0 for regular block devices. 83207c9093cSEric Biggers 83307c9093cSEric Biggers 83407c9093cSEric BiggersWhat: /sys/block/<disk>/queue/zoned 83507c9093cSEric BiggersDate: September 2016 83607c9093cSEric BiggersContact: Damien Le Moal <damien.lemoal@wdc.com> 83707c9093cSEric BiggersDescription: 838849ab826SEric Biggers [RO] zoned indicates if the device is a zoned block device and 839849ab826SEric Biggers the zone model of the device if it is indeed zoned. The 840849ab826SEric Biggers possible values indicated by zoned are "none" for regular block 841849ab826SEric Biggers devices and "host-aware" or "host-managed" for zoned block 842849ab826SEric Biggers devices. The characteristics of host-aware and host-managed 843849ab826SEric Biggers zoned block devices are described in the ZBC (Zoned Block 844849ab826SEric Biggers Commands) and ZAC (Zoned Device ATA Command Set) standards. 845849ab826SEric Biggers These standards also define the "drive-managed" zone model. 846849ab826SEric Biggers However, since drive-managed zoned block devices do not support 847849ab826SEric Biggers zone commands, they will be treated as regular block devices and 848849ab826SEric Biggers zoned will report "none". 84907c9093cSEric Biggers 85007c9093cSEric Biggers 851e3306221SSagi GrimbergWhat: /sys/block/<disk>/hidden 852e3306221SSagi GrimbergDate: March 2023 853e3306221SSagi GrimbergContact: linux-block@vger.kernel.org 854e3306221SSagi GrimbergDescription: 855e3306221SSagi Grimberg [RO] the block device is hidden. it doesn’t produce events, and 856e3306221SSagi Grimberg can’t be opened from userspace or using blkdev_get*. 857e3306221SSagi Grimberg Used for the underlying components of multipath devices. 858e3306221SSagi Grimberg 859e3306221SSagi Grimberg 860ae7a7a53SEric BiggersWhat: /sys/block/<disk>/stat 861ae7a7a53SEric BiggersDate: February 2008 862ae7a7a53SEric BiggersContact: Jerome Marchand <jmarchan@redhat.com> 863ae7a7a53SEric BiggersDescription: 864ae7a7a53SEric Biggers The /sys/block/<disk>/stat files displays the I/O 865ae7a7a53SEric Biggers statistics of disk <disk>. They contain 11 fields: 866ae7a7a53SEric Biggers 867ae7a7a53SEric Biggers == ============================================== 868ae7a7a53SEric Biggers 1 reads completed successfully 869ae7a7a53SEric Biggers 2 reads merged 870ae7a7a53SEric Biggers 3 sectors read 871ae7a7a53SEric Biggers 4 time spent reading (ms) 872ae7a7a53SEric Biggers 5 writes completed 873ae7a7a53SEric Biggers 6 writes merged 874ae7a7a53SEric Biggers 7 sectors written 875ae7a7a53SEric Biggers 8 time spent writing (ms) 876ae7a7a53SEric Biggers 9 I/Os currently in progress 877ae7a7a53SEric Biggers 10 time spent doing I/Os (ms) 878ae7a7a53SEric Biggers 11 weighted time spent doing I/Os (ms) 879ae7a7a53SEric Biggers 12 discards completed 880ae7a7a53SEric Biggers 13 discards merged 881ae7a7a53SEric Biggers 14 sectors discarded 882ae7a7a53SEric Biggers 15 time spent discarding (ms) 883ae7a7a53SEric Biggers 16 flush requests completed 884ae7a7a53SEric Biggers 17 time spent flushing (ms) 885ae7a7a53SEric Biggers == ============================================== 886ae7a7a53SEric Biggers 887ae7a7a53SEric Biggers For more details refer Documentation/admin-guide/iostats.rst 888