Provided by: libnvme-dev_1.8-3ubuntu1_amd64 bug

NAME

       struct nvme_smart_log - SMART / Health Information Log (Log Identifier 02h)

SYNOPSIS

       struct nvme_smart_log {
           __u8 critical_warning;
           __u8 temperature[2];
           __u8 avail_spare;
           __u8 spare_thresh;
           __u8 percent_used;
           __u8 endu_grp_crit_warn_sumry;
           __u8 rsvd7[25];
           __u8 data_units_read[16];
           __u8 data_units_written[16];
           __u8 host_reads[16];
           __u8 host_writes[16];
           __u8 ctrl_busy_time[16];
           __u8 power_cycles[16];
           __u8 power_on_hours[16];
           __u8 unsafe_shutdowns[16];
           __u8 media_errors[16];
           __u8 num_err_log_entries[16];
           __le32 warning_temp_time;
           __le32 critical_comp_time;
           __le16 temp_sensor[8];
           __le32 thm_temp1_trans_count;
           __le32 thm_temp2_trans_count;
           __le32 thm_temp1_total_time;
           __le32 thm_temp2_total_time;
           __u8 rsvd232[280];
        };

Members

       critical_warning
                   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 enum nvme_smart_crit).

       temperature 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.

       avail_spare Available  Spare:  Contains  a  normalized  percentage  (0%  to  100%) of the remaining spare
                   capacity available.

       spare_thresh
                   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.

       percent_used
                   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).

       endu_grp_crit_warn_sumry
                   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 enum nvme_smart_egcw).

       rsvd7       Reserved

       data_units_read
                   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.

       data_units_written
                   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.

       host_reads  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.

       host_writes 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.

       ctrl_busy_time
                   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.

       power_cycles
                   Power Cycles: Contains the number of power cycles.

       power_on_hours
                   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.

       unsafe_shutdowns
                   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.

       media_errors
                   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.

       num_err_log_entries
                   Number of Error Information Log Entries: Contains the number of Error Information log entries
                   over the life of the controller.

       warning_temp_time
                   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.

       critical_comp_time
                   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.

       temp_sensor 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.

       thm_temp1_trans_count
                   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.

       thm_temp2_trans_count
                   Thermal Management Temperature 2 Transition Count

       thm_temp1_total_time
                   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.

       thm_temp2_total_time
                   Total Time For Thermal Management Temperature 2

       rsvd232     Reserved

February 2025                                 struct nvme_smart_log                                   libnvme(2)