问题描述
硬件注错,断开bmc和cpu的pcie通道,bmc无告警
环境信息
-
操作系统:Ubuntu 24.04
-
软件版本:1230sp1
重现步骤
硬件注错
-
kvm不显示内容
-
os下lspci看不到bmc
期望结果
bmc能产生告警
实际结果
bmc无告警,请问bmc有没有设计此告警?如果设计了,告警码是多少呢
硬件注错,断开bmc和cpu的pcie通道,bmc无告警
操作系统:Ubuntu 24.04
软件版本:1230sp1
硬件注错
kvm不显示内容
os下lspci看不到bmc
bmc能产生告警
bmc无告警,请问bmc有没有设计此告警?如果设计了,告警码是多少呢
请问注入错误使用的是拔掉EXU上的线缆还是通过单纯模拟信号发不通?
如果ipmb线缆没有断开的话,bios会上报bmc设备的错误,这种情况下sdk会向pcie_device组件发送rpc调用。可以观察一下bmc的PCIeDevice对象(一般是PCIeDevice_1_00/PCIeDevice_2_00)的DiagnosticFault是否置为1,如果置位但是没有告警大概率是没有配置告警,如果没有置位可能是rpc调用没发,这种情况检查一下rpc调用的记录。
答案内容由AI生成,仅供参考:
目前BMC在断开与CPU的PCIe通道后未产生告警,很可能是因为该场景的告警尚未在BMC内部进行明确定义和配置。根据设计规范,此类告警需要在BMC的CSR配置中显式定义才能生效。
建议在BMC配置中增加针对CPU-BMC PCIe链路状态监测的告警规则,并确保AssertMask正确设置以触发告警。同时,可通过查询掩码列表确认该类告警是否被意外屏蔽。
根据您提供的信息,当硬件注错并断开BMC与CPU之间的PCIe通道时,BMC未能产生预期的告警。以下是对此问题的综合分析。
在操作系统为Ubuntu 24.04、软件版本为1230sp1的环境下,执行以下操作:
lspci -vt | grep BMC无法看到BMC设备从提供的连接图可以看出,BMC与CPU之间通过多条PCIe信号线相连:
这些信号构成了CPU与BMC之间的PCIe通信通道。
根据现有知识库和文档资源,虽然没有直接提及"BMC与CPU PCIe通道断开"这一具体场景的告警码定义,但在相关指导书中提到了类似场景的设计原则:
“要在BMC内部定义,才能产生告警” —— 《基础板CSR配置指导书》
这表明:
AssertMask和DeassertMask才能实现告警触发逻辑busctl --user call bmc.kepler.event ... GetMaskedEventList检查)要实现此类告警,建议按以下方式配置:
{
"Event": {
"Name": "PCIe_Link_Between_CPU_BMC_Failure",
"Condition": 0,
"OperatorId": 5, // 等于
"DescArg1": "Component_PCIeChannel",
"AssertMask": true,
"DeassertMask": true,
"Enabled": true
}
}
可通过以下命令检查当前告警配置状态:
# 查询已屏蔽的事件
busctl --user call bmc.kepler.event /bmc/kepler/Systems/1/Events bmc.kepler.Systems.Events GetMaskedEventList a{ss}
# 检查pcie_device服务状态
busctl --user tree | grep pcie_device
目前BMC在断开与CPU的PCIe通道后未产生告警,很可能是因为该场景的告警尚未在BMC内部进行明确定义和配置。根据设计规范,此类告警需要在BMC的CSR配置中显式定义才能生效。
建议在BMC配置中增加针对CPU-BMC PCIe链路状态监测的告警规则,并确保AssertMask正确设置以触发告警。同时,可通过查询掩码列表确认该类告警是否被意外屏蔽。
rpc_records.log.txt (18.1 KB)