第5章 管理接口命令集 - 页码103
这部分(第 104 页)深入定义了 Controller Health Status Poll 命令中 NVMe Management Dword 0
的结构与意义。下面我们对各字段逐一剖析,帮助你彻底理解其作用与在实际中的使用方法。
✅ Controller Health Status Poll – NVMe Management Dword 0 字段详解(图 94)
位段 | 名称 | 含义解析 |
---|---|---|
31 | Report All (ALL) | 如果该位为 1 ,则忽略错误选择位(即 Dword 1 中的 CWARN , SPARE , PDLU , CTEMP , CSTS 位),强制返回所有 Controller Health 结构。若该位为 0 ,则只根据这些错误状态是否触发来决定是否返回该控制器的状态。 |
30:27 | Reserved | 保留位,不使用,填 0 。 |
26 | INCVF(Include SR-IOV Virtual Functions) | 设为 1 :包含与 SR-IOV 虚拟功能(VF)相关联的控制器。设为 0 :排除这些控制器。 |
25 | INCPF(Include SR-IOV Physical Functions) | 设为 1 :包含与 SR-IOV 物理功能(PF)相关联的控制器。设为 0 :排除这些控制器。 |
24 | INCF(Include PCI Functions) | 设为 1 :包含所有非 SR-IOV 的 PCI 控制器。设为 0 :排除这些控制器。 |
23:16 | MAXRENT(Maximum Response Entries) | 指定返回的 Controller Health 数据结构最大数量,0 为返回 1 条,最大为 255(值 FFh )。如果值为 100h (即 256),将触发 Invalid Parameter Error,并通过 PEL 指出该字段错误。 |
15:00 | SCTLID(Starting Controller ID) | 控制器枚举起始点:仅返回 Controller ID ≥ 此值的控制器数据。如果超出了当前 NVM Subsystem 最大控制器 ID,同样触发 Invalid Parameter Error。 |
🌟 小结与应用建议
这个字段设计非常灵活,允许用户按以下方式定制查询:
- 批量状态轮询:通过
SCTLID
和MAXRENT
控制返回内容的范围和数量,适合多控制器设备。 - 仅关心有问题的控制器:
ALL=0
且设置 Dword 1 中的错误选择位(下一节详解 Dword 1)——返回那些状态有更新的控制器。 - SR-IOV 支持选择性:可以选择是否包含 SR-IOV 虚拟功能(VF)和物理功能(PF)控制器,非常适用于虚拟化环境。
- 系统级诊断工具的优化:可以只检查从某个 Controller ID 开始的控制器,避免无效查询,提高效率。
如果你想,我可以进一步讲解接下来的 NVMe Management Dword 1(图 95)及其错误选择位的具体作用,以及命令的响应数据结构格式和用途。是否继续?