答案内容由AI生成,仅供参考:
RASTools 工具注入PCIe错误后 BMC未记录的可能原因分析
根据您提供的信息,RASTools工具注入PCIe不可纠正错误(UE)后显示“Inject Success”,但在BMC的一键日志中未发现FDM(Fault Detection and Management)告警记录。以下是基于上下文信息的综合性分析和排查建议。
问题现象总结
- 工具注入结果:RASTools执行成功,返回“Inject Success”。
- 预期行为:BMC应捕获到PCIe设备的致命错误(FatalError),并在
fdm_log中生成硬件错误日志。 - 实际现象:BMC的一键日志中无相关FDM告警或硬件错误记录。
根本原因分析与排查方向
1. RASTool注入方式与BMC监控机制不匹配
尽管工具返回成功,但可能注入的是仅触发驱动层处理而未生成AER(Advanced Error Reporting)硬件事件,或未被正确上报至BMC。
关键点:
- BMC通过
bmc.kepler.Systems.PCIeDevices.PCIeDevice.RAS接口监控 PCIe 设备的FatalError、SystemError等状态。PCIeRASCollector组件负责收集 PCIe 相关的 RAS 错误(如致命错误、非致命错误)并在 OS runtime 阶段上报。
若注入未引发真实的 AER 寄存器变化或未被 BIOS/BMC 感知,则不会触发 RAS 收集流程。
2. PCIe RAS Collector 未正常运行或加载失败
从知识图谱中可知:
PCIeRASCollector是一个系统组件,用于在 OS 运行期间收集并报告 PCIe 相关的错误状态。
若该组件加载失败或未启用,即使发生错误也无法上报。
建议排查:
- 在
/var/log/app.log或bmc.log中搜索:grep "PCIeRASCollector" /var/log/app.log - 查看是否有类似
"failed to load"或"collecting PCIe errors"的日志条目。
3. 设备未被识别或BDF信息缺失
Write_Pcie_Card_Bdf_To_Bmc 方法由 BIOS 使用,用于将 PCIe 卡的 BDF(Bus, Device, Function)写入 BMC。如果此过程失败,BMC 将无法建立设备上下文,导致即使有错误也无法定位到具体设备对象进行告警。
建议检查:
- 在
bios service日志中确认是否在启动时打印了Disk PcieAddrInfo信息:[2025-12-16 09:12:17.778573] Disk PcieAddrInfo: ... - 检查
bmc.kepler.Systems.PcieAddrInfo属性是否包含目标 PCIe 设备的Bus,Device,Function等信息。
若
Pcie_Device fails to find matching PCIe address information for DeviceType 26类似错误存在,则说明地址映射失败。
4. 目标设备不在BMC监控范围内(未正确加载SR配置)
BMC 需要为每个 PCIe RAID 卡加载对应的 SR(Schema Representation)文件 才能创建 PCIeDevice 对象并启用 RAS 监控。
建议排查:
- 登录 BMC,检查路径
/opt/bmc/sr/是否存在目标 RAID 卡的 SR 文件。 - 在
app.log中搜索:grep "Component_ComPCIeCard1_0101010D02" /var/log/app.log - 查看是否有关于
Event_PCIeRAIDCardFault_0101010D02注册失败的日志,如:“failed to access property ‘Component’ of referenced object path”
这类错误通常意味着配置未加载或对象路径无效。
5. 工具注入的目标设备不存在或参数错误
RASTool 命令:
./RASTool --ErrorType=0x32 --PcieDevNum=0x01
其中 --PcieDevNum=0x01 表示 PCIe 设备号为 1,但实际环境中该设备可能:
- 并非 PCIe RAID 卡;
- 多CPU场景下需指定
CpuId; - 未启用 AER 支持;
- 是虚拟设备或未被枚举。
建议验证:
- 使用以下命令确认设备是否存在:
lspci | grep -i raid - 检查是否启用 AER:
lspci -s <BDF> -vv | grep -i aer
6. FDM策略未配置或被屏蔽
有时即使错误被正确上报,FDM(故障管理模块)可能因策略配置问题未触发告警。
排查方法:
- 在
fdm_log中搜索其他类型的硬件错误,确认 FDM 模块是否正常工作。 - 检查是否存在
DiagnosticFault=0、PredictiveFault=0的情况,表明设备健康状态未更新。 - 检查是否因“Mock模式”、“事件屏蔽”或“License未导入”导致事件被忽略(虽有案例表明与License无关,但仍需确认)。
排查建议清单
| 步骤 | 操作 | 预期输出 |
|---|---|---|
| 1 | 检查 PCIeRASCollector 是否运行正常 |
app.log 中有无加载或错误收集日志 |
| 2 | 检查 bmc.kepler.Systems.PCIeDevices.PCIeDevice.RAS.FatalError 是否为1 |
可通过 Redfish 或 D-Bus 查询 |
| 3 | 确认 Write_Pcie_Card_Bdf_To_Bmc 是否执行成功 |
BIOS 启动日志中有 Disk PcieAddrInfo 打印 |
| 4 | 检查 /opt/bmc/sr/ 是否存在目标 RAID 卡 SR 文件 |
存在且正确命名 |
| 5 | 查询 app.log 是否有 Event_PCIeRAIDCardFault 注册失败日志 |
无报错,或提示缺失组件 |
| 6 | 检查 lspci 输出及设备 AER 支持情况 |
明确设备存在且支持 AER |
| 7 | 提供 一键日志 给支持团队 | 包含 app.log, fdm_log, bmc.log |
参考信息(来自上下文)
bmc.kepler.Systems.PCIeDevices.PCIeDevice.RAS结构包含以下关键属性:FatalError: U8— 0表示无致命错误,1表示已发生FatalErrorCount: U32— 致命错误计数器SystemError: U8— 系统级错误标志
Event_PCIeRAIDCardFault_0101010D02是一个事件,用于上报 PCIe RAID 卡故障,但依赖于底层对象属性可访问UnknownPCIeRASCollector负责收集未知 PCIe 设备的错误,可用于诊断未识别设备的异常
结论与建议
工具显示 Success 不代表 BMC 收到了真实的硬件错误事件。
请优先执行以下操作:
确认目标 PCIe RAID 卡已被 BMC 正确识别(SR 加载、BDF 正确、出现在 PcieAddrInfo 中)
检查 PCIeRASCollector是否运行正常
查阅 app.log和fdm_log确定错误是否被采集但未告警
提供完整的 一键日志 给平台支持人员进一步分析(参考 OpenUBMC_Assistant在社区中的支持流程)
如有需要,可使用 iTestSmart 工具执行标准用例测试,并附带 Tool Log 进行深度定位。
相关文档参考:
- 《openUBMC Qemu特性设计说明书》支持RAID卡仿真测试
- 《Event常见问题指南》提供事件生命周期排查流程
- BMC Studio 可用于查看 CSR 配置与接口映射是否正确
如仍无法定位,请将一键日志发送至技术支持邮箱。
相关链接: