硬件错误信息分类标识

概述

Xid 消息是墨芯 AI 计算卡驱动程序生成的错误报告,这些报告通常被记录在操作系统的内核日志或事件日志中。当 SPU(特定处理单元)发生错误时,就会生成 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 domain number: pcie bus number: pcie device number) 结合 PCIE 拓扑信息,可以定位到具体是哪颗芯片发生了 Xid 错误
Xid-Value Xid 值,例如 10
Xid-message Xid 错误的详细信息

说明Xid 消息的主要目的是作为调试过程中的重要指南。由于许多系统问题可能源于多种不同的根本原因,因此仅仅依赖Xid 值来完全理解每个问题并不总是可行的,您还需要结合其他系统日志、配置信息以及实际运行环境进行综合分析,以便准确识别问题的根源,并采取相应的解决措施。

例如,某个 Xid 值可能指示用户程序存在非法访问内存的情况。然而,在实际操作中,由于 PCIE 配置不当或缓冲区管理不当导致的内存错误,同样可能损坏发送给 SPU 的命令,进而引发其他看似不相关的错误。

Xid 错误问题建议操作

下表针对可能遇到的各种问题列出了建议采取的操作:

问题类型 建议操作
疑似用户编程问题 请联系开发人员进行分析。
疑似硬件问题 请联系硬件供应商,执行硬件诊断流程。
疑似 MOFFETT 驱动问题 请联系开发人员进行分析。

Xid 错误列表

下表列出了 Xid 错误以及每个错误的潜在原因:

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
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 上正在运行的应用程序时,系统会记录这一事件。这种事件可以由多种操作触发,
例如使用Control+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 以清除此错误。此事件可能反映出链路本身存在硬件故障,
也可能是链路终端设备出现问题。如果此错误频繁出现,并且即使重置 SPU 也无法解决问题,建议您及时联系硬件供应商寻求技术支持。
XID 20 SPU has fallen off the bus 当 SPU 驱动程序试图通过 PCI Express 链路访问 SPU 时,如果遭遇无法访问的情况,系统会记录这一事件。此事件通常指向 PCI Express 链路上的硬件故障,
导致 SPU 因链路中断而无法被访问。此时建议您查看系统事件日志和内核 PCI 事件日志,这些日志可以提供链路故障源的线索。此事件也可能是由于 SPU 硬件故障或其他驱动程序问题引起的。
XID 24 SECURITY FAULT ERROR 除非发生硬件故障,此事件通常应该是较为罕见的。若遇到此问题,请首先尝试撤销最近对系统硬件所做的任何更改,并进行冷重置系统。冷重置可以通过关闭
系统电源,等待片刻后再重新开机来实现。如果上述操作无法解决问题,建议联系硬件供应商以获取专业帮助。
XID 42 PCIE DMA Exception 当 DMA 控制器报告故障时,会记录此事件。DMA 控制器通过 PCI-E 总线管理 MOFFETT 驱动程序和 SPU 之间的通信流。这类故障通常与 PCI 总线的质量问题相关,而非用户应用程序直接导致。