硬件错误信息分类标识

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 总线质量有关。