diff options
Diffstat (limited to 'doc/man/nvme_smart_log.2')
-rw-r--r-- | doc/man/nvme_smart_log.2 | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/doc/man/nvme_smart_log.2 b/doc/man/nvme_smart_log.2 new file mode 100644 index 0000000..ffeb798 --- /dev/null +++ b/doc/man/nvme_smart_log.2 @@ -0,0 +1,235 @@ +.TH "libnvme" 9 "struct nvme_smart_log" "February 2024" "API Manual" LINUX +.SH NAME +struct nvme_smart_log \- SMART / Health Information Log (Log Identifier 02h) +.SH SYNOPSIS +struct nvme_smart_log { +.br +.BI " __u8 critical_warning;" +.br +.BI " __u8 temperature[2];" +.br +.BI " __u8 avail_spare;" +.br +.BI " __u8 spare_thresh;" +.br +.BI " __u8 percent_used;" +.br +.BI " __u8 endu_grp_crit_warn_sumry;" +.br +.BI " __u8 rsvd7[25];" +.br +.BI " __u8 data_units_read[16];" +.br +.BI " __u8 data_units_written[16];" +.br +.BI " __u8 host_reads[16];" +.br +.BI " __u8 host_writes[16];" +.br +.BI " __u8 ctrl_busy_time[16];" +.br +.BI " __u8 power_cycles[16];" +.br +.BI " __u8 power_on_hours[16];" +.br +.BI " __u8 unsafe_shutdowns[16];" +.br +.BI " __u8 media_errors[16];" +.br +.BI " __u8 num_err_log_entries[16];" +.br +.BI " __le32 warning_temp_time;" +.br +.BI " __le32 critical_comp_time;" +.br +.BI " __le16 temp_sensor[8];" +.br +.BI " __le32 thm_temp1_trans_count;" +.br +.BI " __le32 thm_temp2_trans_count;" +.br +.BI " __le32 thm_temp1_total_time;" +.br +.BI " __le32 thm_temp2_total_time;" +.br +.BI " __u8 rsvd232[280];" +.br +.BI " +}; +.br + +.SH Members +.IP "critical_warning" 12 +This field indicates critical warnings for the state +of the controller. Critical warnings may result in an +asynchronous event notification to the host. Bits in +this field represent the current associated state and +are not persistent (see \fIenum nvme_smart_crit\fP). +.IP "temperature" 12 +Composite Temperature: Contains a value corresponding +to a temperature in Kelvins that represents the current +composite temperature of the controller and namespace(s) +associated with that controller. The manner in which +this value is computed is implementation specific and +may not represent the actual temperature of any physical +point in the NVM subsystem. Warning and critical +overheating composite temperature threshold values are +reported by the WCTEMP and CCTEMP fields in the Identify +Controller data structure. +.IP "avail_spare" 12 +Available Spare: Contains a normalized percentage (0% +to 100%) of the remaining spare capacity available. +.IP "spare_thresh" 12 +Available Spare Threshold: When the Available Spare +falls below the threshold indicated in this field, an +asynchronous event completion may occur. The value is +indicated as a normalized percentage (0% to 100%). +The values 101 to 255 are reserved. +.IP "percent_used" 12 +Percentage Used: Contains a vendor specific estimate +of the percentage of NVM subsystem life used based on +the actual usage and the manufacturer's prediction of +NVM life. A value of 100 indicates that the estimated +endurance of the NVM in the NVM subsystem has been +consumed, but may not indicate an NVM subsystem failure. +The value is allowed to exceed 100. Percentages greater +than 254 shall be represented as 255. This value shall +be updated once per power-on hour (when the controller +is not in a sleep state). +.IP "endu_grp_crit_warn_sumry" 12 +Endurance Group Critical Warning Summary: This field +indicates critical warnings for the state of Endurance +Groups. Bits in this field represent the current associated +state and are not persistent (see \fIenum nvme_smart_egcw\fP). +.IP "rsvd7" 12 +Reserved +.IP "data_units_read" 12 +Data Units Read: Contains the number of 512 byte data +units the host has read from the controller; this value +does not include metadata. This value is reported in +thousands (i.e., a value of 1 corresponds to 1000 +units of 512 bytes read) and is rounded up (e.g., one +indicates the that number of 512 byte data units read +is from 1 to 1000, three indicates that the number of +512 byte data units read is from 2001 to 3000). When +the LBA size is a value other than 512 bytes, the +controller shall convert the amount of data read to +512 byte units. For the NVM command set, logical blocks +read as part of Compare, Read, and Verify operations +shall be included in this value. A value of 0h in +this field indicates that the number of Data Units Read +is not reported. +.IP "data_units_written" 12 +Data Units Written: Contains the number of 512 byte +data units the host has written to the controller; +this value does not include metadata. This value is +reported in thousands (i.e., a value of 1 corresponds +to 1000 units of 512 bytes written) and is rounded up +(e.g., one indicates that the number of 512 byte data +units written is from 1 to 1,000, three indicates that +the number of 512 byte data units written is from 2001 +to 3000). When the LBA size is a value other than 512 +bytes, the controller shall convert the amount of data +written to 512 byte units. For the NVM command set, +logical blocks written as part of Write operations shall +be included in this value. Write Uncorrectable commands +and Write Zeroes commands shall not impact this value. +A value of 0h in this field indicates that the number +of Data Units Written is not reported. +.IP "host_reads" 12 +Host Read Commands: Contains the number of read commands +completed by the controller. For the NVM command set, +this value is the sum of the number of Compare commands +and the number of Read commands. +.IP "host_writes" 12 +Host Write Commands: Contains the number of write +commands completed by the controller. For the NVM +command set, this is the number of Write commands. +.IP "ctrl_busy_time" 12 +Controller Busy Time: Contains the amount of time the +controller is busy with I/O commands. The controller +is busy when there is a command outstanding to an I/O +Queue (specifically, a command was issued via an I/O +Submission Queue Tail doorbell write and the corresponding +completion queue entry has not been posted yet to the +associated I/O Completion Queue). This value is +reported in minutes. +.IP "power_cycles" 12 +Power Cycles: Contains the number of power cycles. +.IP "power_on_hours" 12 +Power On Hours: Contains the number of power-on hours. +This may not include time that the controller was +powered and in a non-operational power state. +.IP "unsafe_shutdowns" 12 +Unsafe Shutdowns: Contains the number of unsafe +shutdowns. This count is incremented when a Shutdown +Notification (CC.SHN) is not received prior to loss of power. +.IP "media_errors" 12 +Media and Data Integrity Errors: Contains the number +of occurrences where the controller detected an +unrecovered data integrity error. Errors such as +uncorrectable ECC, CRC checksum failure, or LBA tag +mismatch are included in this field. Errors introduced +as a result of a Write Uncorrectable command may or +may not be included in this field. +.IP "num_err_log_entries" 12 +Number of Error Information Log Entries: Contains the +number of Error Information log entries over the life +of the controller. +.IP "warning_temp_time" 12 +Warning Composite Temperature Time: Contains the amount +of time in minutes that the controller is operational +and the Composite Temperature is greater than or equal +to the Warning Composite Temperature Threshold (WCTEMP) +field and less than the Critical Composite Temperature +Threshold (CCTEMP) field in the Identify Controller +data structure. If the value of the WCTEMP or CCTEMP +field is 0h, then this field is always cleared to 0h +regardless of the Composite Temperature value. +.IP "critical_comp_time" 12 +Critical Composite Temperature Time: Contains the amount +of time in minutes that the controller is operational +and the Composite Temperature is greater than or equal +to the Critical Composite Temperature Threshold (CCTEMP) +field in the Identify Controller data structure. If +the value of the CCTEMP field is 0h, then this field +is always cleared to 0h regardless of the Composite +Temperature value. +.IP "temp_sensor" 12 +Temperature Sensor 1-8: Contains the current temperature +in degrees Kelvin reported by temperature sensors 1-8. +The physical point in the NVM subsystem whose temperature +is reported by the temperature sensor and the temperature +accuracy is implementation specific. An implementation +that does not implement the temperature sensor reports +a value of 0h. +.IP "thm_temp1_trans_count" 12 +Thermal Management Temperature 1 Transition Count: +Contains the number of times the controller transitioned +to lower power active power states or performed vendor +specific thermal management actions while minimizing +the impact on performance in order to attempt to reduce +the Composite Temperature because of the host controlled +thermal management feature (i.e., the Composite +Temperature rose above the Thermal Management +Temperature 1). This counter shall not wrap once the +value FFFFFFFFh is reached. A value of 0h, indicates +that this transition has never occurred or this field +is not implemented. +.IP "thm_temp2_trans_count" 12 +Thermal Management Temperature 2 Transition Count +.IP "thm_temp1_total_time" 12 +Total Time For Thermal Management Temperature 1: +Contains the number of seconds that the controller +had transitioned to lower power active power states or +performed vendor specific thermal management actions +while minimizing the impact on performance in order to +attempt to reduce the Composite Temperature because of +the host controlled thermal management feature. This +counter shall not wrap once the value FFFFFFFFh is +reached. A value of 0h, indicates that this transition +has never occurred or this field is not implemented. +.IP "thm_temp2_total_time" 12 +Total Time For Thermal Management Temperature 2 +.IP "rsvd232" 12 +Reserved |