问题描述
重启BMC,查看传感器事件出现消除PCIe_Status传感器的告警事件
没有事件产生,只产生了事件消除
产生版本:330社区反合期间
答案内容由AI生成,仅供参考:
结论:重启BMC后,传感器事件列表中仅出现PCIe_Status的消除事件,而没有产生事件,在大多数情况下属于正常行为。这通常是因为PCIe_Status传感器在重启前处于告警状态,重启过程中硬件恢复正常,BMC在恢复传感器状态时记录了从“异常”到“正常”的转变,即消除事件。产生事件已在重启前的日志中记录。
何时视为异常:此现象在以下情况下需要重点关注:
进一步的排查与确认方法:要确认此现象是否正常,可以进行如下操作:
PCIe_Status传感器的当前状态。如果状态显示为“正常”(如Enabled或状态值为0表示OK),则说明硬件已恢复正常,消除事件是合理的。PCIeDevice相关的日志,确认在BMC重启前的日志中是否存在对应的Asserted(产生)事件。建议的解决方案:
PCIe设备的物理连接状态(线缆、插槽)是否稳定。好的,根据您提供的上下文信息,我将为您分析和解答重启BMC后,传感器事件中出现“消除PCIe_Status传感器告警事件”的问题。
根据您描述的现象——“重启BMC,查看传感器事件出现消除PCIe_Status传感器的告警事件,没有事件产生,只产生了事件消除”,这在已知的BMC重启场景下是一个可以被理解和解释的现象,它与其他硬件传感器(如BBU)在BMC重启后的行为逻辑相似。
BMC重启前的状态:在BMC重启之前,PCIe_Status传感器处于某个异常或告警状态(Asserted),这可能是由于PCIe设备初始化未完成、通信短暂中断等原因造成的。
重启过程中的状态恢复:当BMC执行重启操作时(BMC Reset或BMC Restart),系统会重新初始化。根据上下文信息,BMC重启的一个重要步骤是恢复之前的传感器状态。例如,知识图谱中明确提到:
“After a BMC reset, the system restores the previous sensor state from persistent event memory, including the nr status.”
这个过程意味着,BMC重启后,它会尝试重新加载并恢复到重启前系统记录的传感器状态。对于PCIe_Status传感器,如果重启过程中硬件已恢复正常,其状态会从“异常”恢复到“正常”。
事件记录逻辑:在传感器状态从“异常”(Asserted)恢复到“正常”(Deasserted)时,系统会记录一个Deasserted(消除)事件。而触发该“异常”状态的Asserted(产生)事件,是在BMC重启之前发生并被记录的。重启后,您看到的日志是新状态变化(从异常到正常)的记录,因此只显示“消除”事件,而之前的“产生”事件存在于BMC重启前的日志中。
这个现象与上下文中的一个已知问题分析高度相似:BMC重启后BBU告警先消除后产生问题分析。
在Search Result的第一个文档中,描述了一个完全相同的机制:
“BMC复位时该告警是否需要恢复,若需要恢复则按照当前的流程处理为正常情况,若不需要恢复,则需要检查复位场景下告警关联属性是否会被置成恢复告警的值。”
这表明,BMC复位时,告警(或传感器)状态是否会被“恢复”是一个关键点。如果PCIe_Status的告警状态在复位时被错误地恢复为正常状态(Deasserted),就会导致只产生消除事件,而不产生产生事件。文档也指出了,这可能是由于代码适配问题(如配置Conversion属性错误)导致的。
您提到的“没有事件产生”是理解这个问题的关键。从BMC重启后的视角看,PCIe_Status从异常状态变为正常状态,这一状态变化本身就是一个“事件”,即告警消除事件。用户期望看到的“产生事件”应该在BMC重启前被记录,而不是在重启后。
结论:重启BMC后,传感器事件列表中仅出现PCIe_Status的消除事件,而没有产生事件,在大多数情况下属于正常行为。这通常是因为PCIe_Status传感器在重启前处于告警状态,重启过程中硬件恢复正常,BMC在恢复传感器状态时记录了从“异常”到“正常”的转变,即消除事件。产生事件已在重启前的日志中记录。
何时视为异常:此现象在以下情况下需要重点关注:
进一步的排查与确认方法:要确认此现象是否正常,可以进行如下操作:
PCIe_Status传感器的当前状态。如果状态显示为“正常”(如Enabled或状态值为0表示OK),则说明硬件已恢复正常,消除事件是合理的。PCIeDevice相关的日志,确认在BMC重启前的日志中是否存在对应的Asserted(产生)事件。建议的解决方案:
PCIe设备的物理连接状态(线缆、插槽)是否稳定。综上所述,重启BMC后PCIe_Status传感器只产生消除事件,核心原因是BMC重启触发了传感器状态从之前的异常恢复到正常,只记录了这个“恢复”事件。这通常是一个正常的系统行为,但需警惕其是否频繁出现以排除潜在的硬件或固件问题。
PCIe传感器消除事件只跟OS重启/上下电状态有关,需要确认过程是否存在该动作,请提供问题现场的一键收集日志方便定位
日志已通过邮件发送
从一键收集来看属于platform.sr配置不当导致的问题
fdm_log日志在2026-04-21 22:34:58显示PCIe设备0X19:0X00:0X00上报了NFE故障,所以sel_log.csv对应有传感器事件,属于真实故障
行 42: 383,2026-04-21 22:35:00,PCIe_Status,Critical,Critical Interrupt,Asserted,Bus Uncorrectable error
行 43: 382,2026-04-21 22:35:00,PCIe_Status,Critical,Critical Interrupt,Asserted,PCI SERR
对应fdm_log细节
[Hardware Error Log Number]: 163 Time: 2026-04-21 22:34:58
Collect: IMU(INT) Serial Number: 1 Collect Integrity: Validate(0X00)
Socket: CPU1 DIE: Nimbus1 Module: PCIE CORE2 Sub Module: Root Port0(0X19:0X00:0X00)
----------------------- IIO REPORTING ERROR -----------------------
Error Type: Non-Fatal Error Error Code: Non-fatal Error Messsage Received
Error Type: Non-Fatal Error Error Code: Completer Abort (8A)
PCISTS: (Bit14)Signaled System Error
SECSTS: (Bit11)Signaled Target Abort (Bit13)Received Master Abort
DEVSTS: (Bit 0)Correctable Error Detected (Bit 1)Non-Fatal Error Detected (Bit 3)Unsupported Request Detected
在此之后maintenance.log显示升级BMC相关hpc包,加载了一份自定义的platform.sr,其中配置的DiscreteEvent_PcieStatus传感器有误,如果需要同时使用PCIeRASCollector.UnknownBDF和DevBDF来上报PCIe不同槽位端口的故障,需要关联不同的SensorObject,否则已触发的DiscreteEvent_PcieStatusPERR会由于DiscreteEvent_PcieStatusUnknownPERR对象分发导致传感器被反复消除
"DiscreteEvent_PcieStatusUnknownPERR": {
"ListenType": 1,
"EventData1": 4,
"EventData2": "<=/PCIeRASCollector.UnknownDevBus",
"EventData3": "<=/PCIeRASCollector.UnknownDevDevice;<=/PCIeRASCollector.UnknownDevFunction |> expr($1 * 8 + $2)",
"EventDir": "<=/PCIeRASCollector.UnknownParityError",
"Conversion": 0,
"SensorObject": "#/DiscreteSensor_PcieStatus",
"Severity": 3
},
"DiscreteEvent_PcieStatusPERR": {
"ListenType": 1,
"EventData1": 4,
"EventData2": "<=/PCIeRASCollector.DevBus",
"EventData3": "<=/PCIeRASCollector.DevDevice;<=/PCIeRASCollector.DevFunction |> expr($1 * 8 + $2)",
"EventDir": "<=/PCIeRASCollector.ParityError",
"Conversion": 0,
"SensorObject": "#/DiscreteSensor_PcieStatus",
"Severity": 3
},
综上,如果希望对所有PCIe端口进行传感器监听,DiscreteSensor_PcieStatus之外,建议额外配置DiscreteSensor_UnkonwPcieStatus对象