数据结构与日志格式 - 第213页
NVME2.0协议解读 1 min read

数据结构与日志格式 - 第213页

Blog Author

中文深入分析协议:NVM Express® Base Specification, revision 2.0b 第5.16.1.14节持久事件日志页头部

1. 持久事件日志头部:

持久事件日志(Persistent Event Log)记录了有关NVM子系统中的重要事件,且该日志是跨电源周期和重置保存的。此日志的头部信息包含了关于日志的基本结构和特性,并且在获取日志页时返回给主机。头部数据的字段如下:

📌 持久事件日志头部字段解析

  1. Log Identifier (0Dh)
  2. 描述:这个字段始终设置为 0Dh,用来标识此日志页为持久事件日志。

  3. Reserved (03:01)

  4. 描述:保留字段,未使用。

  5. Total Number of Events (TNEV)

  6. 描述:此字段表示日志中的事件总数。它告诉主机该日志包含多少个事件条目。

  7. Total Log Length (TLL)

  8. 描述:此字段包含持久事件日志页数据的总字节数,包括头部。主机可以通过这个字段了解日志数据的总长度。

  9. Log Revision (03h)

  10. 描述:此字段包含一个数字,指示该日志页数据结构的修订版本。根据协议,这个字段应设置为 03h,表明该日志使用的是版本3的持久事件日志格式。

  11. Reserved (17)

  12. 描述:保留字段,未使用。

  13. Log Header Length (19:18)

  14. 描述:此字段表示日志头部的长度(单位:字节)。其值加上 20 即为完整的日志头部大小。

  15. Timestamp (27:20)

  16. 描述:此字段表示建立持久事件日志报告上下文时的时间戳。返回的时间戳应遵循协议中 Timestamp 数据结构的定义(参见图340)。

  17. Power on Hours (POH) (43:28)

  18. 描述:此字段记录从设备上电以来的总工作时间(单位:小时)。不包括设备处于非工作状态时的时间。

  19. Power Cycle Count (51:44)

    • 描述:此字段表示控制器的电源周期计数,记录设备通电次数。
  20. PCI Vendor ID (VID) (53:52)

    • 描述:此字段与 Identify Controller 数据结构中的 PCI Vendor ID 字段一致,表示设备的PCI厂商标识符。
  21. PCI Subsystem Vendor ID (SSVID) (55:54)

    • 描述:此字段与 Identify Controller 数据结构中的 PCI Subsystem Vendor ID 字段一致,表示设备子系统的厂商标识符。
  22. Serial Number (SN) (75:56)

    • 描述:此字段包含设备的序列号,与 Identify Controller 数据结构中的 Serial Number 字段一致。
  23. Model Number (MN) (115:76)

    • 描述:此字段包含设备的型号,与 Identify Controller 数据结构中的 Model Number 字段一致。
  24. NVM Subsystem NVMe Qualified Name (SUBNQN) (371:116)

    • 描述:此字段包含 Identify Controller 数据结构中 NVM Subsystem NVMe Qualified Name 字段的内容。如果该字段不被支持,则该字段的所有字节清零。
  25. 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:帮助确定持久事件日志内容是否更新。

总结

持久事件日志头部不仅记录了日志的基本信息,还提供了设备的状态信息(如上电小时数、电源周期数、序列号等)。这些数据对于主机监控设备健康状态、追踪硬件行为和调试非常有用。