数据结构与日志格式 - 第212页
中文深入分析协议:NVM Express® Base Specification, revision 2.0b 第5.16.1.14节持久事件日志操作的命令字段
1. Action字段:控制器在处理Get Log Page命令时的操作
在 Command Dword 10 的 Log Specific Field 中,Action 字段指示控制器在处理 Get Log Page 命令时所采取的操作。具体的操作通过不同的值来确定,以下是每个值的含义:
📌 Action 字段的值和对应操作
- 00b (Read Log Data):返回持久事件日志数据
-
操作描述:控制器将返回持久事件日志页数据,起始地址由 LPOU 和 LPOL 字段指定。如果控制器没有持久事件日志报告上下文,命令将被中止,并返回 Command Sequence Error 状态码。
-
01b (Establish Context and Read Log Data):建立报告上下文并返回日志数据
- 操作描述:
- 控制器首先确定持久事件日志页数据的长度。
- 确定需要报告的事件集合。
- 建立一个持久事件日志报告上下文,用于存储描述持久事件日志数据的信息,并跟踪持久事件日志页数据的访问。
-
特别注意:如果已经存在持久事件日志报告上下文,控制器将中止命令,并返回 Command Sequence Error 状态码。
-
10b (Release Context):释放持久事件日志报告上下文
-
操作描述:控制器释放持久事件日志报告上下文(如果存在)。如果控制器没有持久事件日志报告上下文,执行此操作不算错误。
-
11b (Establish Context and Read 512 Bytes of Header):建立报告上下文并返回日志页头部数据
- 操作描述:
- 控制器首先确定持久事件日志页数据的长度。
- 确定需要报告的事件集合。
- 如果报告上下文尚未存在,则创建持久事件日志报告上下文,用于存储描述持久事件日志数据的信息,并跟踪日志页数据访问。
- 如果报告上下文不存在,则建立报告上下文后,返回 512 字节的持久事件日志页头部数据,起始地址为偏移量 0h,Reporting Context Exists 字段设置为 0,并返回状态码 Successful Completion。
- 如果报告上下文已经存在,则返回 512 字节的持久事件日志页头部数据,起始地址为偏移量 0h,Reporting Context Exists 字段设置为 1,并返回状态码 Successful Completion。
📌 操作总结
- Read Log Data:直接读取日志数据,必须存在报告上下文。
- Establish Context and Read Log Data:在读取日志数据之前,首先建立报告上下文。
- Release Context:释放已有的报告上下文,清理日志数据相关信息。
- Establish Context and Read 512 Bytes of Header:读取日志数据的头部,并在需要时建立报告上下文。