IBMC界面-NPU日志收集不可用

Atlas 300I A2 64G

答案内容由AI生成,仅供参考:

NPU日志收集失败问题分析

根据用户界面截图和系统日志,NPU日志收集功能在执行时出现失败,特别是针对NPU2-1的收集操作。以下是对问题的综合分析。

问题现象

  • 在IBMC管理界面中尝试收集NPU日志时,显示“收集失败”。
  • 多个NPU设备(如NPU2-1)的日志收集均未能成功完成。
  • 系统日志显示了一系列与IPMI通信相关的错误码和异常。

核心错误分析

从系统日志中可以定位到两个关键的错误信息:

1. IPMI通道获取失败

ipmi_core ERROR: ipmi_cmd.lua(825): get channel with chanType[1] and Instance[3] failed

该错误反复出现,表明系统在尝试通过IPMI协议访问NPU设备时无法获取指定类型的通信通道(chanType[1],实例为3)。这通常是底层通信链路或驱动配置问题所致。

2. IPMI命令发送失败

compute ERROR: imu_cmd.lua(501): [get_npu_log] ipmi send failed, error: 193

此错误表示在调用get_npu_log方法时,IPMI命令发送失败,返回错误码 193。此错误直接导致了NPU日志无法从目标芯片读取。

功能流程背景

NPU日志收集功能依赖于以下组件和流程:

  • DumpNpuLog 方法:用于收集NPU芯片日志,接收 NpuId 参数以标识具体芯片,并返回 TaskId 跟踪任务状态。
  • IPMI通信机制:基于 ipmi.json 中定义的命令集,由 bmcgo gen -r openubmc_dev 命令生成相应接口代码。
  • IPMI核心模块ipmi_core 负责处理所有IPMI命令的转发与执行。

关联关系: DumpNpuLog 方法属于 bmc.kepler.Systems.Processor.NPUs 命名空间,并通过IPMI通道实现与NPU硬件的通信。

可能原因

结合日志和架构信息,可能导致该问题的原因包括:

  1. IPMI通道配置异常

    • chanType[1] 对应某种特定通信类型(可能为KCS或SMIC),其驱动或初始化存在问题。
    • 目标实例(Instance 3)对应的NPU设备未正确注册或未响应。
  2. 硬件或固件不兼容

    • 特定NPU卡(如NPU2-1)固件版本与BMC当前版本不兼容,导致IPMI命令无法被识别。
    • NPU设备未上电或处于异常状态。
  3. 通信超时或中断

    • BMC与NPU之间的物理连接(如I²C、PCIe)不稳定,导致命令超时。
    • 总线访问被其他任务占用或锁死。
  4. 软件缺陷或服务异常

    • ipmi_core 服务运行异常或资源不足。
    • compute 模块(负责NPU管理)中 imu_cmd.lua 脚本存在逻辑错误。
  5. 权限或认证问题

    • 缺乏对目标NPU设备的访问权限。
    • 安全模块未正确授权IPMI操作。

建议排查步骤

  1. 确认设备状态

    • 检查NPU2-1是否在线并正常运行(可通过FRU信息或传感器状态判断)。
    • 查看 FaultStateDiagnosticFault 属性是否为0(无故障)。
  2. 验证IPMI通道

    • 使用命令行工具测试基础IPMI命令(如 Get Device ID)是否可正常执行。
    • 检查IPMI服务状态:systemctl status ipmi_core
  3. 检查日志上下文

    • 定位首次出现 get channel failed 的时间点,分析其前后的系统事件(如重启、升级等)。
    • 查看是否有其他模块报告NPU通信异常。
  4. 尝试手动调用

    • 通过REST API或CLI手动调用 DumpNpuLog(NpuId=2),观察返回结果和详细日志。
  5. 版本一致性检查

    • 确认BMC、BIOS、NPU固件版本是否匹配兼容列表要求。
  6. 重启相关服务

    • 尝试重启 ipmi_corecompute 服务以恢复临时性故障。

结论

NPU日志收集失败的根本原因在于 IPMI通信通道无法建立,进而导致日志读取命令发送失败(错误码193)。该问题涉及 ipmi_corecompute 模块间的协作,需重点排查底层通信配置、设备状态及服务运行情况。

参考知识图谱实体: ipmi_core, DumpNpuLog, NpuId, TaskId, bmc.kepler.Systems.Processor.NPUs

相关链接:

  1. 【教学培训篇】新增组件
  2. 2509版本 NPU卡信息显示问题
  3. 请问基于2509的Atlas 300I A2是否有FRU信息?
  4. Atlas 300V pro NPU卡信息显示不全
  5. openUBMC devmon特性设计说明书 | 文档中心 | openUBMC

目前看起来是ipmi命令发送不通,麻烦查看一下ipmi_core组件的资源协作接口,以及compute组件的资源协作接口

异常码193,应该是bmc这边的服务有问题,是不是其他的从npu获取的数据也有问题,软件版本啥的确定是配套的吗?有没有魔改过

1230的sdk版本才支持该特性,请使用1230的sdk版本验证。

使用1230版本验证发现新问题,系统日志收集页面下不显示NPU日志按钮了

经过初步定位发现可能是把npu给过滤掉了,if语句的判断不应该加not把

1230版本可以收集日志,但是收集后日志为空

可以传一份一键收集日志吗,后缀名改成txt可以传上来

HuaKunAT525B2_20260313-1433.7z.001.txt (8 MB)

HuaKunAT525B2_20260313-1433.7z.002.txt (3.9 MB)

我看第一份日志是有npu日志的,你这两份日志有什么区别吗?你们应该是对于csr有进行相关修改吧,我看npu卡日志文件路径不对

没有修改csr,两个文件是一份日志文件拆开压缩的 7zip一起解压即可

930的版本当时收集日志会直接报错,后面使用了1230版本验证,收集日志显示成功,但是打开里面npu日志文件全为空

这个路径下是你想要查询的文件吗
HuaKunAT525B2_20260313-1433.7z.001\HuaKunAT525B2_20260313-1433\dump_info\LogDump\pciecard\PCIeCard2(Atlas300IA264G)_Atlas300IA2(64G)InferenceCard

收集这些文件

由于没有源码 不清楚这个web界面上npu收集日志会收集哪些信息

npu_device_log (4).tar.gz.txt (253 字节)

这个是收集的空日志

从日志来看,你在这次收集日志的时候mcu一直没有准备好,可以再尝试一次并查看是否有类似日志

2026-03-13 14:17:14.338771 compute NOTICE: NPUCard.lua(1575): log type 12, start send msg to mcu
2026-03-13 14:17:26.372358 compute ERROR: NPUCard.lua(1529): MCU is not ready, retry failed.

如果还有类似日志打印出现,建议找硬件侧同学询问一下

const npuSupportedPartNumber = [‘03029WRV’, ‘03028DFH’, ‘0302018194’, ‘0302034997’, ‘06030667’];

看样子A2不支持

已向A2卡硬件确认,暂时MCU不支持带外收集NPU日志,该问题可以关闭