1libnvme(9) API Manual libnvme(9)
2
3
4
6 struct nvme_error_log_page - Error Information Log Entry (Log Identi‐
7 fier 01h)
8
10 struct nvme_error_log_page {
11 __le64 error_count;
12 __le16 sqid;
13 __le16 cmdid;
14 __le16 status_field;
15 __le16 parm_error_location;
16 __le64 lba;
17 __le32 nsid;
18 __u8 vs;
19 __u8 trtype;
20 __u8 csi;
21 __u8 opcode;
22 __le64 cs;
23 __le16 trtype_spec_info;
24 __u8 rsvd[21];
25 __u8 log_page_version;
26 };
27
28
30 error_count Error Count: a 64-bit incrementing error count, indicating
31 a unique identifier for this error. The error count starts
32 at 1h, is incremented for each unique error log entry, and
33 is retained across power off conditions. A value of 0h in‐
34 dicates an invalid entry; this value is used when there are
35 lost entries or when there are fewer errors than the maxi‐
36 mum number of entries the controller supports. If the value
37 of this field is FFFFFFFFh, then the field shall be set to
38 1h when incremented (i.e., rolls over to 1h). Prior to NVMe
39 1.4, processing of incrementing beyond FFFFFFFFh is unspec‐
40 ified.
41
42 sqid Submission Queue ID: indicates the Submission Queue Identi‐
43 fier of the command that the error information is associ‐
44 ated with. If the error is not specific to a particular
45 command, then this field shall be set to FFFFh.
46
47 cmdid Command ID: indicates the Command Identifier of the command
48 that the error is associated with. If the error is not spe‐
49 cific to a particular command, then this field shall be set
50 to FFFFh.
51
52 status_field
53 Bits 15-1: Status Field: indicates the Status Field for the
54 command that completed. If the error is not specific to a
55 particular command, then this field reports the most appli‐
56 cable status value. Bit 0: Phase Tag: may indicate the
57 Phase Tag posted for the command.
58
59 parm_error_location
60 Parameter Error Location: indicates the byte and bit of the
61 command parameter that the error is associated with, if ap‐
62 plicable. If the parameter spans multiple bytes or bits,
63 then the location indicates the first byte and bit of the
64 parameter. Bits 10-8: Bit in command that contained the
65 error. Valid values are 0 to 7. Bits 7-0: Byte in command
66 that contained the error. Valid values are 0 to 63.
67
68 lba LBA: This field indicates the first LBA that experienced
69 the error condition, if applicable.
70
71 nsid Namespace: This field indicates the NSID of the namespace
72 that the error is associated with, if applicable.
73
74 vs Vendor Specific Information Available: If there is addi‐
75 tional vendor specific error information available, this
76 field provides the log page identifier associated with that
77 page. A value of 0h indicates that no additional informa‐
78 tion is available. Valid values are in the range of 80h to
79 FFh.
80
81 trtype Transport Type (TRTYPE): indicates the Transport Type of
82 the transport associated with the error. The values in this
83 field are the same as the TRTYPE values in the Discovery
84 Log Page Entry. If the error is not transport related, this
85 field shall be cleared to 0h. If the error is transport re‐
86 lated, this field shall be set to the type of the transport
87 - see enum nvme_trtype.
88
89 csi Command Set Indicator: This field contains command set in‐
90 dicator for the command that the error is associated with.
91
92 opcode Opcode: This field contains opcode for the command that the
93 error is associated with.
94
95 cs Command Specific Information: This field contains command
96 specific information. If used, the command definition spec‐
97 ifies the information returned.
98
99 trtype_spec_info
100 Transport Type Specific Information
101
102 rsvd Reserved: [62:42]
103
104 log_page_version
105 This field shall be set to 1h. If set, csi and opcode will
106 have valid values.
107
108
109
110April 2023 struct nvme_error_log_page libnvme(9)