数据结构与日志格式 - 第213页
中文深入分析协议:NVM Express® Base Specification, revision 2.0b 第5.16.1.14节持久事件日志页头部
1. 持久事件日志头部:
持久事件日志(Persistent Event Log)记录了有关NVM子系统中的重要事件,且该日志是跨电源周期和重置保存的。此日志的头部信息包含了关于日志的基本结构和特性,并且在获取日志页时返回给主机。头部数据的字段如下:
📌 持久事件日志头部字段解析
- Log Identifier (0Dh)
-
描述:这个字段始终设置为 0Dh,用来标识此日志页为持久事件日志。
-
Reserved (03:01)
-
描述:保留字段,未使用。
-
Total Number of Events (TNEV)
-
描述:此字段表示日志中的事件总数。它告诉主机该日志包含多少个事件条目。
-
Total Log Length (TLL)
-
描述:此字段包含持久事件日志页数据的总字节数,包括头部。主机可以通过这个字段了解日志数据的总长度。
-
Log Revision (03h)
-
描述:此字段包含一个数字,指示该日志页数据结构的修订版本。根据协议,这个字段应设置为 03h,表明该日志使用的是版本3的持久事件日志格式。
-
Reserved (17)
-
描述:保留字段,未使用。
-
Log Header Length (19:18)
-
描述:此字段表示日志头部的长度(单位:字节)。其值加上 20 即为完整的日志头部大小。
-
Timestamp (27:20)
-
描述:此字段表示建立持久事件日志报告上下文时的时间戳。返回的时间戳应遵循协议中 Timestamp 数据结构的定义(参见图340)。
-
Power on Hours (POH) (43:28)
-
描述:此字段记录从设备上电以来的总工作时间(单位:小时)。不包括设备处于非工作状态时的时间。
-
Power Cycle Count (51:44)
- 描述:此字段表示控制器的电源周期计数,记录设备通电次数。
-
PCI Vendor ID (VID) (53:52)
- 描述:此字段与 Identify Controller 数据结构中的 PCI Vendor ID 字段一致,表示设备的PCI厂商标识符。
-
PCI Subsystem Vendor ID (SSVID) (55:54)
- 描述:此字段与 Identify Controller 数据结构中的 PCI Subsystem Vendor ID 字段一致,表示设备子系统的厂商标识符。
-
Serial Number (SN) (75:56)
- 描述:此字段包含设备的序列号,与 Identify Controller 数据结构中的 Serial Number 字段一致。
-
Model Number (MN) (115:76)
- 描述:此字段包含设备的型号,与 Identify Controller 数据结构中的 Model Number 字段一致。
-
NVM Subsystem NVMe Qualified Name (SUBNQN) (371:116)
- 描述:此字段包含 Identify Controller 数据结构中 NVM Subsystem NVMe Qualified Name 字段的内容。如果该字段不被支持,则该字段的所有字节清零。
-
Generation Number (373:372)
- 描述:此字段每次建立持久事件日志报告上下文时递增,标识日志页数据与上次报告上下文建立时返回的数据是否不同。此字段在递增到 FFFFh 时会清零,并重新从 0h 开始。
📌 字段功能总结
- Total Number of Events (TNEV):返回持久事件日志中的事件数量。
- Total Log Length (TLL):返回日志数据的总长度,包括头部。
- Log Revision (03h):指示日志的版本号,固定为 03h。
- Power on Hours (POH) 和 Power Cycle Count:分别提供设备的总上电小时数和电源周期数。
- Generation Number:帮助确定持久事件日志内容是否更新。
总结:
持久事件日志头部不仅记录了日志的基本信息,还提供了设备的状态信息(如上电小时数、电源周期数、序列号等)。这些数据对于主机监控设备健康状态、追踪硬件行为和调试非常有用。