1libnvme(9) API Manual libnvme(9)
2
3
4
6 struct nvme_smart_log - SMART / Health Information Log (Log Identifier
7 02h)
8
10 struct nvme_smart_log {
11 __u8 critical_warning;
12 __u8 temperature[2];
13 __u8 avail_spare;
14 __u8 spare_thresh;
15 __u8 percent_used;
16 __u8 endu_grp_crit_warn_sumry;
17 __u8 rsvd7[25];
18 __u8 data_units_read[16];
19 __u8 data_units_written[16];
20 __u8 host_reads[16];
21 __u8 host_writes[16];
22 __u8 ctrl_busy_time[16];
23 __u8 power_cycles[16];
24 __u8 power_on_hours[16];
25 __u8 unsafe_shutdowns[16];
26 __u8 media_errors[16];
27 __u8 num_err_log_entries[16];
28 __le32 warning_temp_time;
29 __le32 critical_comp_time;
30 __le16 temp_sensor[8];
31 __le32 thm_temp1_trans_count;
32 __le32 thm_temp2_trans_count;
33 __le32 thm_temp1_total_time;
34 __le32 thm_temp2_total_time;
35 __u8 rsvd232[280];
36 };
37
38
40 critical_warning
41 This field indicates critical warnings for the state of the
42 controller. Critical warnings may result in an asynchronous
43 event notification to the host. Bits in this field repre‐
44 sent the current associated state and are not persistent
45 (see enum nvme_smart_crit).
46
47 temperature Composite Temperature: Contains a value corresponding to a
48 temperature in Kelvins that represents the current compos‐
49 ite temperature of the controller and namespace(s) associ‐
50 ated with that controller. The manner in which this value
51 is computed is implementation specific and may not repre‐
52 sent the actual temperature of any physical point in the
53 NVM subsystem. Warning and critical overheating composite
54 temperature threshold values are reported by the WCTEMP and
55 CCTEMP fields in the Identify Controller data structure.
56
57 avail_spare Available Spare: Contains a normalized percentage (0% to
58 100%) of the remaining spare capacity available.
59
60 spare_thresh
61 Available Spare Threshold: When the Available Spare falls
62 below the threshold indicated in this field, an asynchro‐
63 nous event completion may occur. The value is indicated as
64 a normalized percentage (0% to 100%). The values 101 to
65 255 are reserved.
66
67 percent_used
68 Percentage Used: Contains a vendor specific estimate of the
69 percentage of NVM subsystem life used based on the actual
70 usage and the manufacturer's prediction of NVM life. A
71 value of 100 indicates that the estimated endurance of the
72 NVM in the NVM subsystem has been consumed, but may not in‐
73 dicate an NVM subsystem failure. The value is allowed to
74 exceed 100. Percentages greater than 254 shall be repre‐
75 sented as 255. This value shall be updated once per power-
76 on hour (when the controller is not in a sleep state).
77
78 endu_grp_crit_warn_sumry
79 Endurance Group Critical Warning Summary: This field indi‐
80 cates critical warnings for the state of Endurance Groups.
81 Bits in this field represent the current associated state
82 and are not persistent (see enum nvme_smart_egcw).
83
84 rsvd7 Reserved
85
86 data_units_read
87 Data Units Read: Contains the number of 512 byte data units
88 the host has read from the controller; this value does not
89 include metadata. This value is reported in thousands
90 (i.e., a value of 1 corresponds to 1000 units of 512 bytes
91 read) and is rounded up (e.g., one indicates the that num‐
92 ber of 512 byte data units read is from 1 to 1000, three
93 indicates that the number of 512 byte data units read is
94 from 2001 to 3000). When the LBA size is a value other than
95 512 bytes, the controller shall convert the amount of data
96 read to 512 byte units. For the NVM command set, logical
97 blocks read as part of Compare, Read, and Verify operations
98 shall be included in this value. A value of 0h in this
99 field indicates that the number of Data Units Read is not
100 reported.
101
102 data_units_written
103 Data Units Written: Contains the number of 512 byte data
104 units the host has written to the controller; this value
105 does not include metadata. This value is reported in thou‐
106 sands (i.e., a value of 1 corresponds to 1000 units of 512
107 bytes written) and is rounded up (e.g., one indicates that
108 the number of 512 byte data units written is from 1 to
109 1,000, three indicates that the number of 512 byte data
110 units written is from 2001 to 3000). When the LBA size is a
111 value other than 512 bytes, the controller shall convert
112 the amount of data written to 512 byte units. For the NVM
113 command set, logical blocks written as part of Write opera‐
114 tions shall be included in this value. Write Uncorrectable
115 commands and Write Zeroes commands shall not impact this
116 value. A value of 0h in this field indicates that the num‐
117 ber of Data Units Written is not reported.
118
119 host_reads Host Read Commands: Contains the number of read commands
120 completed by the controller. For the NVM command set, this
121 value is the sum of the number of Compare commands and the
122 number of Read commands.
123
124 host_writes Host Write Commands: Contains the number of write commands
125 completed by the controller. For the NVM command set, this
126 is the number of Write commands.
127
128 ctrl_busy_time
129 Controller Busy Time: Contains the amount of time the con‐
130 troller is busy with I/O commands. The controller is busy
131 when there is a command outstanding to an I/O Queue
132 (specifically, a command was issued via an I/O Submission
133 Queue Tail doorbell write and the corresponding completion
134 queue entry has not been posted yet to the associated I/O
135 Completion Queue). This value is reported in minutes.
136
137 power_cycles
138 Power Cycles: Contains the number of power cycles.
139
140 power_on_hours
141 Power On Hours: Contains the number of power-on hours.
142 This may not include time that the controller was powered
143 and in a non-operational power state.
144
145 unsafe_shutdowns
146 Unsafe Shutdowns: Contains the number of unsafe shutdowns.
147 This count is incremented when a Shutdown Notification
148 (CC.SHN) is not received prior to loss of power.
149
150 media_errors
151 Media and Data Integrity Errors: Contains the number of oc‐
152 currences where the controller detected an unrecovered data
153 integrity error. Errors such as uncorrectable ECC, CRC
154 checksum failure, or LBA tag mismatch are included in this
155 field. Errors introduced as a result of a Write Uncor‐
156 rectable command may or may not be included in this field.
157
158 num_err_log_entries
159 Number of Error Information Log Entries: Contains the num‐
160 ber of Error Information log entries over the life of the
161 controller.
162
163 warning_temp_time
164 Warning Composite Temperature Time: Contains the amount of
165 time in minutes that the controller is operational and the
166 Composite Temperature is greater than or equal to the Warn‐
167 ing Composite Temperature Threshold (WCTEMP) field and less
168 than the Critical Composite Temperature Threshold (CCTEMP)
169 field in the Identify Controller data structure. If the
170 value of the WCTEMP or CCTEMP field is 0h, then this field
171 is always cleared to 0h regardless of the Composite Temper‐
172 ature value.
173
174 critical_comp_time
175 Critical Composite Temperature Time: Contains the amount of
176 time in minutes that the controller is operational and the
177 Composite Temperature is greater than or equal to the Crit‐
178 ical Composite Temperature Threshold (CCTEMP) field in the
179 Identify Controller data structure. If the value of the
180 CCTEMP field is 0h, then this field is always cleared to 0h
181 regardless of the Composite Temperature value.
182
183 temp_sensor Temperature Sensor 1-8: Contains the current temperature in
184 degrees Kelvin reported by temperature sensors 1-8. The
185 physical point in the NVM subsystem whose temperature is
186 reported by the temperature sensor and the temperature ac‐
187 curacy is implementation specific. An implementation that
188 does not implement the temperature sensor reports a value
189 of 0h.
190
191 thm_temp1_trans_count
192 Thermal Management Temperature 1 Transition Count: Contains
193 the number of times the controller transitioned to lower
194 power active power states or performed vendor specific
195 thermal management actions while minimizing the impact on
196 performance in order to attempt to reduce the Composite
197 Temperature because of the host controlled thermal manage‐
198 ment feature (i.e., the Composite Temperature rose above
199 the Thermal Management Temperature 1). This counter shall
200 not wrap once the value FFFFFFFFh is reached. A value of
201 0h, indicates that this transition has never occurred or
202 this field is not implemented.
203
204 thm_temp2_trans_count
205 Thermal Management Temperature 2 Transition Count
206
207 thm_temp1_total_time
208 Total Time For Thermal Management Temperature 1: Contains
209 the number of seconds that the controller had transitioned
210 to lower power active power states or performed vendor spe‐
211 cific thermal management actions while minimizing the im‐
212 pact on performance in order to attempt to reduce the Com‐
213 posite Temperature because of the host controlled thermal
214 management feature. This counter shall not wrap once the
215 value FFFFFFFFh is reached. A value of 0h, indicates that
216 this transition has never occurred or this field is not im‐
217 plemented.
218
219 thm_temp2_total_time
220 Total Time For Thermal Management Temperature 2
221
222 rsvd232 Reserved
223
224
225
226April 2023 struct nvme_smart_log libnvme(9)