1. 背景

本文档描述了曦云® 系列GPU KMD内核驱动程序报告的EID(Error Message ID)信息格式,旨在帮助开发人员、FAE和系统管理员理解这些信息具体的含义,以达到对GPU相关问题分析和解决的目的。

2. 概述

当GPU KMD内核驱动检测到错误后,会按照特定格式将错误信息打印到操作系统内核日志中,这些日志记录了包括但不限于GPU硬件错误、系统故障或应用程序问题等信息。

在Linux系统中,GPU KMD内核驱动打印日志通常会放在 /var/log/messages路径下,通过以下命令可以查看GPU KMD打印的错误信息:

$ sudo grep -P "METAX.*ERROR|MXCD.*ERROR|MXGVM.*ERROR" /var/log/messages

备注

Linux内核日志存放路径会因Linux发行版本不同而有所区别,主流Linux发行版内核日志存放路径如下:

  • Ubuntu:/var/log/kernel.log

  • CentOS:/var/log/messages

如果存在GPU KMD内核驱动错误记录,比如ATU Fault,会得到类似如下日志:

[…] METAX.B10200.ATU.ERROR atu 0x0 pde_base_addr 0x50016c0000

[…] METAX.B10200.ATU.ERROR xpid 1 vfid 0 vf 0 page va 224200000

[…] METAX.B10200.ATU.ERROR hwip DMAW0 fault code(7) perm code: 2

每一条日志记录的格式为:

MODULE.DBDF.SUBMOD.LOGLEVEL CONTENT

其中,每个字段的具体定义如下:

  • MODULE:表示打印日志的主模块,目前包括 METAXMXCDMXGVM 几个主模块。

  • DBDF:表示日志所属的GPU卡,以GPU卡的PCIe DBDF(Domain Bus Device Function)作为GPU标识号。

    该GPU标识号具体格式为 Bxxxx,字母 B 为GPU标识号的前导编字母, xxxx 为GPU标识号的PCIe DBDF 16进制编码值(32比特位宽)。其中, bits[31:16]Domainbits[15:8]Busbits[7:3]Devicebits[2:0]Function

    比如,GPU标识号 B10200,对应标准PCIe DBDF格式件为 0001:02:00.0

  • SUBMOD:表示打印日志的子模块,根据主模块的不同,子模块的具体定义也不一样。

  • LOGLEVEL:表示日志等级,定义参见下表:

    表 2.1 LOGLEVEL字段定义

    编号

    LOGLEVEL

    说明

    1

    EMERG

    紧急错误,系统不可用

    2

    ALERT

    告警错误,需要立即处理

    3

    CRIT

    严重错误

    4

    ERROR

    一般错误

    5

    WARN

    告警提示

    6

    INFO

    普通信息

    7

    DEBUG

    调试信息

  • CONTENT:表示日志信息的具体内容。

3. 日志收集方法

GPU KMD内核驱动打印日志,可以通过如下方法收集:

表 3.1 日志收集方法

编号

方法

说明

1

dmesg 命令

Linux系统通用命令,只能查看当前运行时内核日志信息。同时由于Linux内核日志缓存区大小限制,可能无法显示当前运行时内核的完整日志。

命令如下:

sudo dmesg | grep -P "METAX.*ERROR|MXCD.*ERROR |MXGVM.*ERROR"

2

journalctl 命令

基于systemd启动的Linux系统上的强大日志工具,没有 dmesg 命令的内核日志缓存区限制问题,还可以查看系统的历史运行日志。

命令如下:

sudo journalctl -k -b 0 | grep -P "METAX.*ERROR|MXCD.*ERROR |MXGVM.*ERROR"

3

/var/log/message/var/log/kernel.log文件

Linux系统内核日志在磁盘存放位置,用户需要注意收集的内核日志是否属于当前系统运行时日志,还是系统以前运行的历史日志。

CentOS系统命令如下:

sudo grep -P "METAX.*ERROR|MXCD.*ERROR|MXGVM.*ERROR" /var/log/messages

Ubuntu系统命令如下:

sudo grep -P "METAX.*ERROR|MXCD.*ERROR|MXGVM.*ERROR" /var/log/kernel.log

4

mx-report工具

mx-report工具的使用方法参见《曦云系列通用计算GPU 用户指南》

4. METAX常见错误

表 4.1 METAX常见错误列表

编号

错误信息

错误说明

METAX-EID-1

atu x pde_base_addr xxx

ATU Fault

METAX-EID-2

shader exception, pasid x error_type sxxx

XCORE Shader Error

METAX-EID-3

kill queue timeout, pipe x, queue x

CE Dequeue Timeout

METAX-EID-4

xxx-yyy page_offset x size

HBM显存坏页错误

METAX-EID-5

failed to get module!

引用GPU驱动失败

METAX-EID-6

wait SMPx timeout

等待SMP响应超时

METAX-EID-7

PCIe vram bar init failed, rrr

PCIe BAR空间不够

METAX-EID-8

bo xxx va xxx-xxx conflict with yyy-yyy

虚拟地址冲突错误

METAX-EID-9

vram try to use (xxx kB) beyond total memory (xxx kB), failed

HBM显存耗尽

METAX-EID-10

(xtt + userptr) memory (xxx bytes) beyond limit (xxx bytes)

系统内存耗尽

METAX-EID-11

xxx: add cookie client x src x to fifo failed

INT中断溢出错误

METAX-EID-12

detect uncorrectable AER, xxxx

PCIe AER Error

METAX-EID-13

get vm fault status with full f, device may be disconnected

PCIe通讯断开

METAX-EID-14

detect PCI syncflood alert, status xxxx, count xxxx

PCIe syncflood

METAX-EID-15

RAS.ERROR xx-xx misc 0xxx info 0xxx

RAS Error

4.1. METAX-EID-1:ATU Fault

问题现象

在GPU运行过程中,GPU卡ATU检测到存在非法VA地址访问(ATU Fault),会打印如下错误信息:

METAX.Bxxxx.ATU.ERROR atu x pde_base_addr xxx

METAX.Bxxxx.ATU.ERROR xpid x vfid x vf x page va x

METAX.Bxxxx.ATU.ERROR hwip x fault code x(x) perm code x

打印信息解读

  • page va x:表示触发ATU错误的虚拟地址

  • hwip x:表示触发ATU错误的硬件IP

  • fault code x:表示错误类型

  • perm code x:表示虚拟地址对应的页表项权限配置

可能原因以及建议操作

  • 页表所处的HBM不稳定,报bug给硬件厂商。

  • KMD页表管理逻辑出错,报bug给硬件厂商。

  • 非法VA或者越界访问,用户用GDB跟踪或者检查自己的代码是否可能导致非法VA或者越界访问。

    查看进程页表的方法:不要退出或者kill用户进程,新建一个窗口用root用户登录,执行 cat /sys/kernel/debug/mxcd/vm 命令,这个 debugfs 接口会列出当前所有进程使用的内存块的GPU虚拟地址和物理地址,然后查看出现 fault 的 VA 是否包含在任何一个内存块中:

    user va 0x803400000-> pa 0xff264000 size 0x100000 domain XTT cset 0x3
    
    user va 0x804200000-> pa 0x21b000 size 0x1000 domain VRAM cset 0x3
    

4.2. METAX-EID-2:XCORE Shader Error

问题现象

在执行GPU应用程序过程中,如果分发到GPU的kernel程序执行出现问题,GPU驱动可能会记录一些GPU硬件内部的XCORE shader错误信息,并打印到内核日志,具体格式如下:

METAX.Bxxxx.XCORE.ERROR shader exception, pasid x error_type xxx(x)

打印信息解读

  • pasid x:表示哪个进程下发的任务触发了XCORE shader error

  • error_type xxx:表示触发了哪种类型的XCORE shader error

    • 0x1:fwe_err

    • 0x2:illegal_inst

    • 0x4:mem_viol (non align access)

    • 0x8:xnack_error

    • 0x10:out_of_range

    • 0x20:fuc_error

    • 0x40:timeout_error

可能原因以及建议操作

  • error type = 1,即 fwe error,一般是卡内部SRAM没有初始化导致,报bug给硬件厂商。

  • error type = 2,即非法指令,确保用户编写的kernel函数正确并且编译器正确使用,如果无法解决,报bug给硬件厂商。

  • error type = 4,即 memory violation,一般是非对齐访问导致的,检查用户编写的kernel函数。

  • error type = 8,即 xnack error,会有对应的 ATU fault 触发,根据提示信息进一步调试,参见 4.1 METAX-EID-1:ATU Fault

4.3. METAX-EID-3:CE Dequeue Timeout

问题现象

在GPU应用进程结束退出时,驱动会释放GPU硬件相关资源。当遇到GPU应用程序结束过慢或卡住的问题时,其中可能原因就是 CE Dequeue Timeout,并在内核日志看到如下错误信息:

METAX.Bxxxx.XCORE.ERROR kill queue timeout, pipe x, queue x, rrr

打印信息解读

  • pipe x:释放失败的 pipe 编号

  • queue x:释放失败的 queue 编号

可能原因以及建议操作

GPU内部资源释放失败,报bug给硬件厂商,然后尝试 warm reset 或重启服务器进行恢复。

4.4. METAX-EID-4:HBM显存坏页错误

问题现象

当GPU内核驱动检查到HBM显存坏页错误时,会尝试对这些HBM显存坏页进行隔离处理,避免GPU应用程序继续使用这些HBM显存坏页,并打印如下信息:

METAX.Bxxxx.RAS.ERROR xxx-yyy page_offset x size x(Bytes) info x

打印信息解读

  • xxx:触发HBM显存坏页的IP名称,包括 MCCTL0/ MCCTL1 / MCCTL2 / MCCTL3

  • yyy:HBM显存坏页错误类型,包括 UE/ RE/ CE/ FATAL/ FREQ_CALL

  • page_offset x:出现HBM显存坏页的显存地址

可能原因以及建议操作

  • 遇到HBM显存坏页错误,可以尝试将业务进程全部退出,重新执行业务。若重新执行业务还会遇到同样的坏页错误,可以尝试warm reset或重启服务器进行恢复。

  • GPU HBM内存颗粒有问题,可以尝试换卡。

4.5. METAX-EID-5:引用GPU驱动失败

问题现象

在执行 mx-smi 命令返回失败时,内核日志打印如下错误信息:

METAX.Bxxxx.SMI.ERROR failed to get module

可能原因以及建议操作

在GPU内核驱动加载或卸载过程中,用户正在尝试通过SMI接口去访问GPU相关资源。请在GPU内核驱动加载或卸载完成后,再执行GPU业务操作。

4.6. METAX-EID-6:等待SMP响应超时

问题现象

METAX.Bxxxx.SMP.ERROR wait SMPx timeout

打印信息解读

SMP 可能值有两个: 0 或者 1。在GPU初始化过程中,KMD 会和 SMP 0 与 SMP 1 进行同步,该信息表明KMD和SMP通信失败了,驱动无法正常加载。

可能原因以及建议操作

导致这个问题的原因比较复杂,需要结合软硬件环境综合判断,联系硬件厂商解决。

4.7. METAX-EID-7:PCIe BAR空间不够

问题现象

在GPU卡初始化过程中,检测到GPU卡PCIe BAR空间不够,会打印如下错误信息:

METAX.Bxxxx.BASE.ERROR PCIe vram bar init failed, rrr

同时,在内核启动枚举PCIe过程中,还会打印GPU卡BAR空间资源分配失败的日志:

pci xxx BAR x: no space for [mem size xxxx]

…

pci xxx BAR x:failed to assign [mem size xxxx]

可能原因以及建议操作

  • 修改服务器BIOS,启用large BAR功能,有些服务器选项为启用超过4GB PCI地址空间,具体可联系硬件厂商确认。

  • 若启用large BAR无法解决问题,则需确认VBIOS是否启用了VF BAR导致服务器PCI空间不够,联系硬件厂商解决。

4.8. METAX-EID-8:虚拟地址冲突错误

问题现象

当出现GPU卡的虚拟内存管理错误时,内核日志会打印如下错误信息:

METAX.Bxxxx.MC.ERROR bo xxx va xxx-xxx conflict with yyy-yyy

METAX.Bxxxx.MC.ERROR failed to map va xxx in vm, rrr

METAX.Bxxxx.MC.ERROR failed to map bo to xvm, rrr

打印信息解读

Log里面打印出两段有重叠区域的VA区间范围( xxx-xxxyyy-yyy), rrr 为返回值。

可能原因以及建议操作

UMD申请内存使用的VA有重叠,KMD会检测每个进程各GPU VA到PA的entry映射是否与其他entry有重复(包括部分重复),一旦检测到GPU VA到PA存在多重映射,KMD 日志就会记录冲突地址,标记当前映射失败,并返回错误码。这种问题需要联系硬件厂商解决。

4.9. METAX-EID-9:HBM显存耗尽

问题现象

当GPU应用程序使用的HBM显存空间超过GPU卡的HBM显存总大小时,会打印如下错误信息:

METAX.Bxxxx.MC.ERROR vram try to use (xxx kB) beyond total memory (xxx kB), failed

打印信息解读

  • try to use (xxx kB):已使用的HBM显存空间

  • total memory (xxx kB):GPU卡HBM显存总大小

可能原因以及建议操作

  • GPU应用程序使用了过多的HBM显存,GPU应用程序编程模型是否合理,减少对HBM显存过多申请,或者及时释放没用的HBM显存。

  • GPU SDK存在内存管理相关问题,可以联系硬件厂商解决。

4.10. METAX-EID-10:系统内存耗尽

问题现象

当GPU应用程序使用的系统内存空间超过GPU驱动对系统内存(XTT)限制总大小时,会打印如下错误信息:

METAX.Bxxxx.MC.ERROR (xtt + userptr) memory (xxx bytes) beyond limit (xxx bytes)

打印信息解读

  • memory (xxx bytes):已使用的系统内存总空间

  • beyond limit (xxx bytes):当前GPU驱动对系统内存限制总大小

可能原因以及建议操作

  • GPU应用程序使用了过多的系统内存,GPU应用程序编程模型是否合理,减少对系统内存过多申请,或者及时释放没用的系统内存。

  • GPU SDK存在内存管理相关问题,可以联系硬件厂商解决。

4.11. METAX-EID-11:INT中断溢出错误

问题现象

GPU INT中断消息发送到host后,GPU内核驱动将这些INT中断消息缓存到FIFO队列失败后,会打印如下错误信息:

METAX.Bxxxx.INT.ERROR xxx add cookie client x src x to fifo failed

打印信息解读

  • client:触发INT中断的IP编号

  • src:触发INT中断的源编号

可能原因以及建议操作

因为GPU触发INT中断和CPU处理中断的过程是异步的,当GPU触发INT中断消息的速度超过CPU处理中断的速度,会出现GPU驱动的中断FIFO队列溢出问题,可以尝试以下操作:

确认CPU是不是运行在最高频率,通过 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor,确认是否为 performance 模式;如果不是,则执行 echo performance > /sys/devices/system/cpu/cpu<x>/cpufreq/scaling_governor 命令切换为 performance 模式,其中 <x> 为所有CPU的index。

如果还有问题,请联系硬件厂商。

4.12. METAX-EID-12:PCIe AER Error

问题现象

当host与GPU卡PCIe通讯链路存在某些异常的时候(比如常见的Completion Timeout、Unsupported Request与ECRC Error等),GPU驱动通常会在内核记录如下PCIe AER错误信息:

METAX.Bxxxx.PCI.ERROR detect uncorrectable AER, xxxx

打印信息解读

xxxx:表示PCIe uncorrectable AER错误信息,与PCIe spec规范AER定义一致。

可能原因以及建议操作

  • PCIe链路不稳定,可以尝试重新插拔GPU卡或更换PCIe卡。

  • 服务器PCIe相关配置不对

这两种情况都需要联系硬件厂商和服务器厂家分析PCIe AER产生的原因。如果是偶尔发生这种情况,可以尝试warm reset或重启服务器进行恢复。

4.13. METAX-EID-13:PCIe通讯断开

问题现象

在GPU运行过程中,如果PCIe通讯断开,则GPU驱动检测到GPU卡无法正常访问(读到全 f),并会打印如下信息:

METAX.Bxxxx.ATU.ERROR get vm fault status with full f

打印信息解读

日志指示GPU驱动访问GPU卡的特定MMIO寄存器返回全 f 异常,表明PCIe通讯已经断开。

可能原因以及建议操作

  • 可能是前面执行业务异常,导致GPU通讯断开,可从之前最开始出现错误的地方排查。

  • 可能是硬件问题,可以尝试更换PCIe slot或GPU卡进行测试。

这两种情况都需要联系硬件厂商和服务器厂家分析PCIe通讯断开产生的原因。如果是偶尔发生这种情况,可以尝试warm reset或重启服务器进行恢复。

4.14. METAX-EID-14:PCIe syncflood

问题现象

在GPU运行实际业务过程中,驱动会定时轮询syncflood寄存器的信息。如果轮询寄存器的信息不为 0,则表明发生了硬件错误,驱动会尝试扫描所有IP,并将出错IP的MCA信息dump到系统日志。

METAX.Bxxxx.MON.ALERT detect PCI syncflood alert, status xxxx, count xxxx

METAX.Bxxxx.MON.ALERT pcie syncflood [x] xxxx, count xxxx

打印信息解读

日志显示发生了syncflood,并指出了造成syncflood的IP,一般后面会伴随RAS信息的打印。RAS信息的详细说明参见 4.15 METAX-EID-15:RAS Error

可能原因以及建议操作

可能是IP发生了Fatal Error或者Uncorrectable Error,可以先尝试warm reset或重启服务器进行恢复。如果还是会重现这个错误,则需要换卡进行测试。

需要联系硬件厂商分析造成syncflood的IP发生错误的原因。

4.15. METAX-EID-15:RAS Error

问题现象

在GPU运行实际业务过程中,如果驱动检测到硬件IP发生严重错误,会将发生错误的IP信息dump到内核日志。

METAX.Bxxxx.RAS.ERROR xx-xx misc 0xxx info 0xxx

打印信息解读

日志显示发生了RAS Error,并指出了发生RAS Error的IP名称和发生的错误类型(UE/CE/FATAL ERROR)。

可能原因以及建议操作

可能是硬件问题,可以先尝试warm reset或者重启服务器进行恢复。如果还是会重现这个错误,可以尝试更换GPU卡进行测试。

需要联系硬件厂商分析RAS ERROR产生的原因。

5. MXCD常见错误

表 5.1 MXCD常见错误列表

编号

错误信息

错误说明

MXCD-EID-1

destroy ce rb failed, logic rb_id:xxx, pipe_id:xxxs

CE Dequeue Error

MXCD-EID-2

device IDs array empty

IOCTL操作设备失败

5.1. MXCD-EID-1:CE Dequeue Error

问题现象

在进程主动或强制结束的过程中出现挂起的情况,MXCD也会打印 destroy ce rb failed 错误信息。

该问题与 4.3 METAX-EID-3:CE Dequeue Timeout 属于同样的问题,典型的日志记录如下:

[…] MXCD.Bxxxx.RINGBUF.ERROR destroy ce rb failed, logic rb_id:x, pipe_id:x

打印信息解读

  • rb_id:dequeue失败的queue编号

  • pipe_id:dequeue失败的queue所在的pipe编号

可能原因以及建议操作

GPU内部任务调度失败,报bug给硬件厂商,然后尝试warm reset或重启服务器进行恢复。

5.2. MXCD-EID-2:IOCTL操作设备失败

问题现象

当用户通过IOCTL系统调用向GPU KMD驱动请求服务,KMD无法成功完成该请求会报IOCTL失败信息,格式如下:

[…] MXCD.Bxxxx.IOCTL.ERROR device IDs array empty

可能原因以及建议操作

IOCTL失败一般是软件上的参数非法或条件不满足导致的,定位该问题需要结合实际环境配置和报错信息综合判断原因。

6. MXGVM常见错误

表 6.1 MXGVM常见错误列表

编号

错误信息

错误说明

MXGVM-EID-1

Failed to mmap xxx

映射GPU卡PCIe BAR失败

MXGVM-EID-2

Chip preinit, SMPx timeout

GPU卡初始化由于SMP通信超时而失败

MXGVM-EID-3

The vbios version xxx is below the driver's minimum compatible version xxx

GPU卡VBIOS与GPU驱动版本不兼容

MXGVM-EID-4

Not support SRIOV

GPU卡不支持SRIOV虚拟化

MXGVM-EID-5

Not enough MMIO resources for SRIOV BARx

GPU卡SRIOV BAR空间不够

MXGVM-EID-6

Failed to properly enable virt, ret=x

开启GPU卡SRIOV虚拟化失败

MXGVM-EID-7

wait reset status x timeout

GPU卡FLR复位失败

MXGVM-EID-8

get fault status with full f, device may be disconnected

GPU卡PCIe通讯断开

MXGVM-EID-9

die x atul2 x hwip xxxx xpid x vfid x fault perm x va xxxx

GPU卡ATU Fault

6.1. MXGVM-EID-1:映射GPU卡PCIe BAR失败

问题现象

在GPU卡初始化过程中,映射GPU卡PCIe BAR空间到CPU地址空间失败,会打印如下错误信息:

[…] MXGVM.Bxxxx.BASE.ERROR Failed to map mmio

可能原因以及建议操作

服务器的MMIO空间不够,确认服务器BIOS是否有MMIO空间相关配置选项,如果有,建议将MMIO空间配置到最大。

6.2. MXGVM-EID-2:GPU卡初始化由于SMP通信超时而失败

问题现象

在GPU卡初始化过程中,GPU驱动与GPU卡SMP通信超时,会打印如下错误信息:

[…] MXGVM.Bxxxx.SOC.ERROR Chip preinit, SMPx timeout

可能原因以及建议操作

  1. 初步排查,使用 lspci -s DBDF -x 命令测试GPU卡的PCIe configure space能否继续访问( DBDF 为故障卡的PCIe DBDF)。

    • 如果命令返回全 f 数据,则表示GPU卡PCIe基本通路有问题,建议按照步骤 2 排查硬件问题。

    • 如果命令返回有效值,则表示GPU卡PCIe基本通路正常,建议按照步骤 3 排查GPU VBIOS软件问题。

  2. 排查硬件相关问题,比如GPU卡与服务器的接插件的连接是否良好,断电后重新插拔GPU卡、更换PCIe slot或更换GPU卡。

  3. 排查GPU VBIOS软件问题,通过mx-report工具抓取GPU卡状态信息,然后报告给硬件厂商。

6.3. MXGVM-EID-3:GPU卡VBIOS与GPU驱动版本不兼容

问题现象

在GPU卡初始化过程中,检查到GPU卡VBIOS固件版本与当前运行驱动版本不兼容,会打印如下错误信息:

[…] MXGVM.Bxxxx.SOC.ERROR The vbios version xxx is below the driver's minimum compatible version xxx

可能原因以及建议操作

GPU卡的VBIOS固件版本与当前GPU驱动不兼容,可以尝试升级与GPU驱动兼容的VBIOS版本。

6.4. MXGVM-EID-4:GPU卡不支持SRIOV虚拟化

问题现象

在GPU卡初始化过程中,检查到GPU卡不支持SRIOV虚拟化功能时,会打印如下错误信息:

[…] MXGVM.Bxxxx.BASE.ERROR Not support SRIOV

可能原因以及建议操作

GPU卡不支持SRIOV功能,使用 lspci –s DBDF -vvv 命令查看GPU卡是否有SRIOV能力( DBDF 为故障卡的PCIe DBDF),如果不支持SRIOV能力,则需要升级为支持SRIOV的VBIOS版本。

6.5. MXGVM-EID-5:GPU卡SRIOV BAR空间不够

问题现象

在GPU卡初始化过程中,检查到GPU卡的SRIOV MMIO空间不足后,会打印如下错误信息:

[…] MXGVM.Bxxxx.BASE.ERROR Not enough MMIO resources for SRIOV BARx

可能原因以及建议操作

  • 服务器BIOS是否开启SRIOV相关配置,MMIO空间是否开启到最大。

  • 确认GPU VBIOS版本是否与服务器匹配,可以尝试升级为SRIOV MMIO空间需求更小的VBIOS版本。

6.6. MXGVM-EID-6:开启GPU卡SRIOV虚拟化失败

问题现象

在GPU卡初始化过程中,在开启SRIOV虚拟化功能失败后,会打印如下错误信息:

[…] MXGVM.Bxxxx0.BASE.ERROR Failed to properly enable virt, ret=x

可能原因以及建议操作

  • 服务器BIOS是否开启SRIOV相关配置,如果有SRIOV配置选项,则将SRIOV配置打开。

  • 用mx-report工具收集VBIOS运行日志,并报告给硬件厂商。

6.7. MXGVM-EID-7:GPU卡FLR复位失败

问题现象

在对GPU卡FLR复位失败后,会打印如下错误信息:

[…] MXGVM.Bxxxx.MXIOV.ERROR wait reset status x timeout

可能原因以及建议操作

可能是GPU硬件或VBIOS固件问题,用mx-report工具收集VBIOS运行日志,并报告给硬件厂商。

6.8. MXGVM-EID-8:GPU卡PCIe通讯断开

问题现象

在GPU运行过程中,如果PCIe通讯断开,则GPU驱动检测到GPU卡无法正常访问(读到全 f),会打印如下错误信息:

[…] MXGVM.Bxxxx.ATU.ERROR get fault status with full f, device may be disconnected

可能原因以及建议操作

  • 可能是前面执行业务异常,导致GPU通讯断开,可从之前最开始出现错误的地方排查。

  • 可能是硬件问题,可以尝试更换PCIe slot或GPU卡进行测试。

6.9. MXGVM-EID-9:GPU卡ATU Fault

问题现象

在GPU运行过程中,GPU卡ATU检测到存在非法VA地址访问(ATU Fault),会打印如下错误信息:

[…] MXGVM.Bxxxx.ATU.ERROR die 0 atul2 1 hwip DMAW0 xpid 1 vfid 0 vf 1 fault XVM_NO_PERM perm 2 va 0xa06000000

此条错误信息每个字段定义如下:

  • die:ATU fault报错的die ID(0:master,1:slave)

  • atul2:ATU fault报错的ATUL2 ID(范围0-1)

  • hwip:ATU fault报错的硬件IP

  • xpid:ATU fault报错的XPID(范围0-15)

  • vfid:ATU fault报错的VF卡ID

  • vf:ATU fault报错是否为VF卡(0:PF卡,1:VF卡)

  • fault:ATU fault报错的内部原因

  • perm:ATU fault报错的地址页表项权限配置

  • va:ATU fault报错的VA(虚拟地址)地址

以上述错误信息为例,表示在die 0(master die)上的ATUL2 0(编号0的ATUL2)上检测到hwip DMAW0产生了ATU fault,同时,此错误是发生在VF 0卡上的XPID 1地址空间,出错原因是 XVM_NO_PERM,出错VA地址为 0xa06000000

可能原因以及建议操作

业务程序可能存在问题,排查应用程序中对GPU卡的VA访问地址是否合法。