BlockQueueStats models the queue files that are located in the sysfs tree for each block device and described in the kernel documentation: https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt https://www.kernel.org/doc/html/latest/block/queue-sysfs.html
| 93 | // https://www.kernel.org/doc/Documentation/block/queue-sysfs.txt |
| 94 | // https://www.kernel.org/doc/html/latest/block/queue-sysfs.html |
| 95 | type BlockQueueStats struct { |
| 96 | // AddRandom is the status of a disk entropy (1 is on, 0 is off). |
| 97 | AddRandom uint64 |
| 98 | // Dax indicates whether the device supports Direct Access (DAX) (1 is on, 0 is off). |
| 99 | DAX uint64 |
| 100 | // DiscardGranularity is the size of internal allocation of the device in bytes, 0 means device |
| 101 | // does not support the discard functionality. |
| 102 | DiscardGranularity uint64 |
| 103 | // DiscardMaxHWBytes is the hardware maximum number of bytes that can be discarded in a single operation, |
| 104 | // 0 means device does not support the discard functionality. |
| 105 | DiscardMaxHWBytes uint64 |
| 106 | // DiscardMaxBytes is the software maximum number of bytes that can be discarded in a single operation. |
| 107 | DiscardMaxBytes uint64 |
| 108 | // HWSectorSize is the sector size of the device, in bytes. |
| 109 | HWSectorSize uint64 |
| 110 | // IOPoll indicates if polling is enabled (1 is on, 0 is off). |
| 111 | IOPoll uint64 |
| 112 | // IOPollDelay indicates how polling will be performed, -1 for classic polling, 0 for hybrid polling, |
| 113 | // with greater than 0 the kernel will put process issuing IO to sleep for this amount of time in |
| 114 | // microseconds before entering classic polling. |
| 115 | IOPollDelay int64 |
| 116 | // IOTimeout is the request timeout in milliseconds. |
| 117 | IOTimeout uint64 |
| 118 | // IOStats indicates if iostats accounting is used for the disk (1 is on, 0 is off). |
| 119 | IOStats uint64 |
| 120 | // LogicalBlockSize is the logical block size of the device, in bytes. |
| 121 | LogicalBlockSize uint64 |
| 122 | // MaxHWSectorsKB is the maximum number of kilobytes supported in a single data transfer. |
| 123 | MaxHWSectorsKB uint64 |
| 124 | // MaxIntegritySegments is the max limit of integrity segments as set by block layer which a hardware controller |
| 125 | // can handle. |
| 126 | MaxIntegritySegments uint64 |
| 127 | // MaxSectorsKB is the maximum number of kilobytes that the block layer will allow for a filesystem request. |
| 128 | MaxSectorsKB uint64 |
| 129 | // MaxSegments is the number of segments on the device. |
| 130 | MaxSegments uint64 |
| 131 | // MaxSegmentsSize is the maximum segment size of the device. |
| 132 | MaxSegmentSize uint64 |
| 133 | // MinimumIOSize is the smallest preferred IO size reported by the device. |
| 134 | MinimumIOSize uint64 |
| 135 | // NoMerges shows the lookup logic involved with IO merging requests in the block layer. 0 all merges are |
| 136 | // enabled, 1 only simple one hit merges are tried, 2 no merge algorithms will be tried. |
| 137 | NoMerges uint64 |
| 138 | // NRRequests is the number of how many requests may be allocated in the block layer for read or write requests. |
| 139 | NRRequests uint64 |
| 140 | // OptimalIOSize is the optimal IO size reported by the device. |
| 141 | OptimalIOSize uint64 |
| 142 | // PhysicalBlockSize is the physical block size of device, in bytes. |
| 143 | PhysicalBlockSize uint64 |
| 144 | // ReadAHeadKB is the maximum number of kilobytes to read-ahead for filesystems on this block device. |
| 145 | ReadAHeadKB uint64 |
| 146 | // Rotational indicates if the device is of rotational type or non-rotational type. |
| 147 | Rotational uint64 |
| 148 | // RQAffinity indicates affinity policy of device, if 1 the block layer will migrate request completions to the |
| 149 | // cpu “group” that originally submitted the request, if 2 forces the completion to run on the requesting cpu. |
| 150 | RQAffinity uint64 |
| 151 | // SchedulerList contains list of available schedulers for this block device. |
| 152 | SchedulerList []string |
nothing calls this directly
no outgoing calls
no test coverage detected