基于2512版本构建的openUBMC
在pcie_device组件中看到这些资源协作接口:
请问是bios会监控pcie设备的这些错误(CE\UCE\FE\降带宽\降速)然后报给BMC么?
答案内容由AI生成,仅供参考:
PCIe设备的FDM故障监控是一个BIOS与BMC协同工作的过程:
BIOS在启动阶段负责对PCIe设备进行全面检测,包括链路建立、功能验证等,并将发现的错误(如UCE、降带宽、降速率等)通过专用接口上报给BMC。
BMC/FDM在系统运行时持续监控PCIe设备的各种状态,通过bmc.kepler.Systems.PCIeDevices.PCIeDevice.RAS接口收集运行时错误(如CE、UCE、超时错误等)。
两者通过标准化的接口(如SetDiagnosticFault、SetLinkSpeedReduced等)进行信息交互,确保故障能够被及时发现、记录和处理。
因此,这不是简单的"谁监控"的问题,而是一个分阶段、协同式的故障检测体系,BIOS负责启动阶段的深度诊断,BMC负责全生命周期的状态监控,共同保障系统的可靠性。
在基于2512版本构建的openUBMC系统中,PCIe设备的FDM(Fault Detection and Management)故障监控是一个多层次、协同工作的机制。以下将详细说明其工作原理。
根据提供的代码和上下文信息,pcie_device组件提供了多个与FDM相关的资源协作接口,用于接收和处理PCIe设备的各类故障事件:
对外接口
## 资源协作接口
- PCIeDevice
- Path: `/bmc/kepler/Systems/${SystemId}/PCIeDevices/${Id}`
- Interface: `bmc.kepler.Systems.PCIeDevices.PCIeDevice`
| 方法 | 描述 |
|:------------:|:------------:|
| SetPcieErrorStatus | 根据错误类型设置不同错误事件属性状态 |
| SetUCEByBIOS | 设置不可纠正错误标识 |
| SetBandwidthReduction | 设置降带宽事件标识 |
| SetLinkSpeedReduced | 设置链路降速事件标识 |
| SetDiagnosticFault | 设置严重故障告警标识 |
| SetPredictiveFault | 设置预故障事件标识 |
| GetDeviceName | PCIe设备丝印信息获取 |
| GetPCIeCardNum | 获取PCIeCard数量 |
| SetFaultByBios | 设置FaultByBios属性值 |
是的,BIOS在PCIe设备的FDM故障监控中扮演着关键角色。
从系统设计来看,BIOS负责在系统启动阶段对PCIe设备进行初始化和诊断,并将发现的各类错误上报给BMC。这种分工基于两个不同的运行阶段:
通过分析可知,BIOS主要监控以下几类PCIe错误:
SetUCEByBIOS方法上报SetBandwidthReduction方法上报SetLinkSpeedReduced方法上报SetDiagnosticFault方法上报如文档所述:“BIOS通过WritePcieCardBdfToBmc、WriteOcpCardBdfToBmc将设备的BDF号传给BMC。” 这表明BIOS与BMC之间存在明确的通信机制。
BIOS通过IPMI命令将PCIe设备的状态信息传递给BMC:
"WritePcieCardBdfToBmc": "设置PCIE卡的BDF",
"WriteOcpCardBdfToBmc": "设置OCP卡的BDF"
这一机制也延伸到了错误报告:不仅设备识别信息,连同运行过程中检测到的错误状态,都会通过类似机制上报。
根据社区讨论中的关键信息:
“FaultByBios是由BIOS在启动阶段上报的故障\nSystemError,ParityError、CorrectableError等是在描述的是PCIE在OS运行态时故障信息”
这表明:
FaultByBios属性记录的是启动阶段由BIOS上报的故障SystemError, ParityError, CorrectableError等是在操作系统运行时由FDM组件监测的故障| 错误类型 | 对应属性 | 上报来源 | 监控阶段 |
|---|---|---|---|
| 可纠正错误(CE) | CorrectableError |
FDM组件 | 运行时 |
| 不可纠正错误(UCE) | UncorrectableError |
FDM/BIOS | 启动/运行 |
| 致命错误(FE) | FatalError |
FDM/BIOS | 启动/运行 |
| 降带宽事件 | BandwidthReduction |
BI°FDM | 启动/运行 |
| 链路降速 | LinkSpeedReduced |
BI°FDM | 启动/运行 |
| 严重故障 | DiagnosticFault |
BI°FDM | 启动/运行 |
| 预故障 | PredictiveFault |
FDM | 运行时 |
PCIe设备的FDM故障监控是一个BIOS与BMC协同工作的过程:
BIOS在启动阶段负责对PCIe设备进行全面检测,包括链路建立、功能验证等,并将发现的错误(如UCE、降带宽、降速率等)通过专用接口上报给BMC。
BMC/FDM在系统运行时持续监控PCIe设备的各种状态,通过bmc.kepler.Systems.PCIeDevices.PCIeDevice.RAS接口收集运行时错误(如CE、UCE、超时错误等)。
两者通过标准化的接口(如SetDiagnosticFault、SetLinkSpeedReduced等)进行信息交互,确保故障能够被及时发现、记录和处理。
因此,这不是简单的"谁监控"的问题,而是一个分阶段、协同式的故障检测体系,BIOS负责启动阶段的深度诊断,BMC负责全生命周期的状态监控,共同保障系统的可靠性。
相关链接:
您好,这些告警均由Bios生成,上报给Sdk,再由Sdk调用pcie_device的rpc方法进行告警。