硬件错误信息分类标识
Xid 消息是墨芯 AI 计算卡驱动程序生成的错误报告,通常记录在操作系统内核日志或事件日志中。稀疏处理单元 SPU(Sparse Processing Unit)发生错误时,驱动程序会生成 Xid 消息。
此类错误最常见的原因在于驱动程序对 SPU 的编程不正确,或者发送到 SPU 的命令损坏。这些消息对于诊断硬件问题、墨芯软件故障或用户应用程序的潜在问题具有重要意义。您可以利用这些消息中的诊断信息,来深入分析并解决与 SPU 相关的各类问题。
查看 Xid 信息方式
在 Linux 下,您可以执行以下命令,查看所有 Xid 消息:
$ dmesg | grep "MFRM"
示例如下:
[119480.065134]MFRM:xid(0000:31:80):10,(6016)host kmd: send response msg fail
| 参数 | 说明 |
|---|---|
| […] MFRM:xid | 日志前缀,可不关注 |
| (PCIe 域号:PCIe 总线号:PCIe 设备号) | 结合 PCIe 拓扑信息,可以定位发生 Xid 错误的芯片 |
| Xid-Value | Xid 值,例如 10 |
| Xid-message | Xid 错误的详细信息 |
须知
Xid 消息的主要目的是作为调试过程中的重要指南。由于许多系统问题可能源于多种不同的根本原因,因此仅仅依赖 Xid 值来完全理解每个问题并不总是可行的,您还需要结合其他系统日志、配置信息以及实际运行环境进行综合分析,以便准确识别问题的根源,并采取相应的解决措施。例如,某个 Xid 值可能指示用户程序存在非法访问内存的情况。然而,在实际操作中,由于 PCIe 配置不当或缓冲区管理不当导致的内存错误,同样可能损坏发送给 SPU 的命令,进而引发其他看似不相关的错误。
Xid 错误问题建议操作
下表针对可能遇到的各种问题列出了建议采取的操作:
| 问题类型 | 建议操作 |
|---|---|
| 疑似用户编程问题 | 联系开发人员进行分析。 |
| 疑似硬件问题 | 联系硬件供应商,执行硬件诊断流程。 |
| 疑似墨芯驱动问题 | 联系开发人员进行分析。 |
Xid 错误列表
下表列出了 Xid 错误及其潜在原因。表中的纠错码(Error-Correcting Code,ECC)、动态电压和频率调节(Dynamic Voltage and Frequency Scaling,DVFS)、直接内存访问(Direct Memory Access,DMA)和通用 Netlink(Generic Netlink,GENETLINK)为通用技术术语。MFDEC、MFJPG 和 MFPPB 分别表示视频解码、JPEG 解码和图像后处理模块,数字后缀表示模块实例。EDC、SMBPBI 和 IPC 是驱动程序或固件报告中的原始错误标识,因当前来源未提供可发布的统一全称,本文保留原样。
| Xid | 问题 | 硬件错误 | 驱动错误 | 用户应用程序错误 | 系统内存错误 | 总线错误 | 过温错误 |
|---|---|---|---|---|---|---|---|
| 1 | 地址无效或损坏 | X | X | ||||
| 2 | SPU 停止运行 | X | X | X | X | ||
| 3 | 驱动对 SPU 编程出错 | X | |||||
| 4 | 驱动处理 SPU 异常出错 | X | |||||
| 5 | PCI 配置空间中禁用总线主控 | X | |||||
| 6 | SPU 内存页错误 | X | X | ||||
| 7 | SPU 内部微控制器错误 | X | |||||
| 8 | SPU 内部微控制器断点/警告 | ||||||
| 9 | SPU 内部微控制器停止工作 | X | X | X | |||
| 10 | 驱动/固件错误 | X | X | X | X | ||
| 11 | 资源抢占/冲突 | X | |||||
| 12 | 辅助电源未连接到 SPU 板 | ||||||
| 13 | 双位 ECC 错误 | X | |||||
| 14 | EDC 错误 | X | |||||
| 15 | 高单比特位 ECC 错误率 | X | X | ||||
| 16 | 受控的 ECC 错误 | X | X | ||||
| 17 | 不受控的 ECC 错误 | X | X | ||||
| 18 | 驱动非法存取 | X | X | ||||
| 19 | PCIe 或 Netlink 出错 | X | X | X | |||
| 20 | SPU 脱离总线 | X | X | X | X | X | |
| 21 | 发送到 SPU 的数据损坏 | X | X | X | X | ||
| 22 | SMBPBI 测试消息 | X | |||||
| 23 | SMBPBI 测试消息无回应 | X | |||||
| 24 | 安全性故障 | X | |||||
| 25 | 推理引擎异常 | X | X | X | X | X | |
| 26 | 消息队列异常 | X | X | X | |||
| 27 | SPU 状态监控器异常 | X | X | ||||
| 28 | MFDEC0 异常 | X | X | ||||
| 29 | MFDEC1 异常 | X | X | ||||
| 30 | MFDEC2 异常 | X | X | ||||
| 31 | MFDEC3 异常 | X | X | ||||
| 32 | MFJPG0 异常 | X | X | ||||
| 33 | MFJPG1 异常 | X | X | ||||
| 34 | MFJPG2 异常 | X | X | ||||
| 35 | MFJPG3 异常 | X | X | ||||
| 36 | MFPPB0 异常 | X | X | ||||
| 37 | MFPPB1 异常 | X | X | ||||
| 38 | MFPPB2 异常 | X | X | ||||
| 39 | MFPPB3 异常 | X | X | ||||
| 40 | DVFS 异常 | X | X | ||||
| 41 | GENETLINK 异常 | X | X | X | X | ||
| 42 | PCIe DMA 异常 | X | X | X | X | X | |
| 43 | IPC 异常 | X | X | X | X |
常见的 Xid 错误
下表提供了一些常见 Xid 错误的说明信息:
| 错误码 | 信息 | 说明 |
|---|---|---|
| Xid 11 | OS: Preemptive Channel Removal | 当用户应用程序中止,并且内核驱动程序开始卸载 SPU 上运行的应用程序时,系统会记录此事件。使用 Ctrl+C 中断程序、重置 SPU 或发送 SIGKILL 信号等操作都可能触发此事件。多数情况下,此事件反映用户或系统的正常操作,并不表示系统发生错误。 |
| Xid 13 | DBE (Double Bit Error) ECC Error | 当 SPU 检测到无法纠正的错误时,系统会记录此事件并向用户应用程序报告。此时需要重置 SPU 以清除错误。 |
| Xid 16、17 | CONTAINED/UNCONTAINED ECC ERRORs | 支持 ECC 错误控制功能的 SPU 处理 ECC 内存错误时,系统会记录此类事件。 |
| Xid 19 | PCIE NETLINK ERROR | 当 SPU 检测到用户进程与内核进程之间通信异常时,系统会记录此事件。此事件可能表示链路或链路终端设备发生故障。重置 SPU 后问题仍频繁出现时,请联系硬件供应商。 |
| Xid 20 | SPU has fallen off the bus | SPU 驱动程序无法通过 PCIe 链路访问 SPU 时,系统会记录此事件。此事件通常表示 PCIe 链路、链路终端设备或 SPU 硬件发生故障。请结合系统事件日志和内核 PCIe 事件日志定位故障来源。 |
| Xid 24 | SECURITY FAULT ERROR | 此事件通常仅在发生硬件故障时出现。请先撤销最近的硬件更改,然后关闭系统电源并重新开机。如果问题仍未解决,请联系硬件供应商。 |
| Xid 42 | PCIE DMA Exception | DMA 控制器报告故障时,系统会记录此事件。DMA 控制器通过 PCIe 总线管理墨芯驱动程序和 SPU 之间的通信流。此类故障通常与 PCIe 总线质量有关。 |