25 930版本 长稳AC出现cpu温度和内存温度获取失败告警
答案内容由AI生成,仅供参考:
结论
问题定性:
AC 长稳测试中偶现 CPU 与内存温度获取失败,属于 BMC 在启动初期因 IPMB 通信链路未就绪导致的时序竞争问题,非硬件故障。
根本原因:
- BMC 在 Host CPU 和 PCH 完全初始化前尝试读取温度数据
- IPMB 消息请求超时,触发临时告警
- 待系统稳定后通信恢复,告警自动解除
推荐措施:
- 增加防抖机制:采用
contbin_H10L5持续防抖策略,避免瞬态异常上升为告警 - 延迟温度采集:在 AC 启动后 30~60 秒再启动 CPU/内存温度监控
- 启用 Delay on Power:确保 BMC 优先初始化,提升通信可靠性
- 升级 BMC 固件:确认是否已在新版中修复类似时序问题(如 2509 版本已优化)
点击此处查看详细分析解答
AC长稳测试中偶现CPU与内存温度获取失败告警分析
问题概述
在 25930 版本 的长稳(长期稳定性)AC 循环测试中,系统偶发出现 CPU 核心温度 和 内存温度 数据获取失败的告警现象。该问题表现为在电源周期(AC Power Cycle)重启后,BMC 无法及时或持续获取 CPU 和内存的温度传感器数据,触发多条告警,并在后续恢复。
根据提供的 SEL(System Event Log)日志,关键事件码如下:
0x00000023:Failed to obtain data of the CPU core temperature0x0100003F:Failed to obtain data of the memory (CPU1/CPU2) temperature0x2C000009:ACPI is in the working state (表示系统已进入正常工作状态)
详细事件时序分析
| 事件ID | 生成时间 | 严重性 | 事件码 | 状态 | 描述 |
|---|---|---|---|---|---|
| 294 | 2026-03-10 07:53:44 | Normal | 0x2C000009 |
Asserted | ACPI 进入工作状态(启动初期) |
| 295 | 2026-03-10 07:54:03 | Normal | 0x2C000017 |
Asserted | 主机上电后重启完成 |
| 297 | 2026-03-10 07:56:08 | Minor | 0x00000023 |
Asserted | CPU1 温度数据获取失败 |
| 296 | 2026-03-10 07:56:08 | Minor | 0x00000023 |
Asserted | CPU2 温度数据获取失败 |
| 299 | 2026-03-10 07:56:11 | Minor | 0x0100003F |
Asserted | 内存(CPU1)温度数据获取失败 |
| 298 | 2026-03-10 07:56:11 | Minor | 0x0100003F |
Asserted | 内存(CPU2)温度数据获取失败 |
| 302 | 2026-03-10 07:58:30 | Minor | 0x00000024 |
Deasserted | CPU1 温度获取失败告警恢复 |
| 300 | 2026-03-10 07:58:29 | Minor | 0x00000024 |
Deasserted | CPU2 温度获取失败告警恢复 |
| 304 | 2026-03-10 07:58:33 | Minor | 0x01000040 |
Deasserted | 内存(CPU1)温度获取失败恢复 |
| 303 | 2026-03-10 07:58:32 | Minor | 0x01000040 |
Deasserted | 内存(CPU2)温度获取失败恢复 |
注:
0x00000024和0x01000040是0x00000023与0x0100003F的恢复事件码。
故障定界与根因分析
1. 根本原因:IPMB 通信链路在 AC 启动初期未就绪
根据知识图谱信息和相关日志分析,CPU 和内存温度数据获取失败的根本原因是 BMC 在 AC 启动过程中,未能通过 IPMB(Intelligent Platform Management Bus)成功从传感器获取数据。
支撑证据:
- 事件码描述一致:
0x00000023/0x0100003F被明确记录为 “Failed to obtain data of the CPU/memory temperature”。 - AC 循环相关性高:该问题仅在 AC Power Cycle 期间偶发,符合硬件初始化时序竞争的典型特征。
- 知识图谱确认:实体
CPU Temperature中指出:“There are documented instances where CPU Temperature data could not be obtained for both CPU1 and CPU2, indicating potential sensor failures or issues in the communication path. Specifically, failures in IPMB message transmission have been identified as a cause of inaccessible temperature data.”
这表明:
- 非物理传感器损坏
- 问题出在 BMC 与 CPU 子系统之间的 IPMB 消息传输
- 可能是 BMC 启动过快,此时 Host 处理器或 EC(嵌入式控制器)尚未准备好响应 IPMI 请求
2. 为何偶发?—— 启动时序竞争
该问题为概率性事件(偶现),其本质是 BMC 和 Host CPU 之间启动时序的竞争条件(Race Condition)。
常见场景:
- AC 上电后,BMC 开始自检并启动传感器轮询
- 此时 Host CPU 或 PCH(Platform Controller Hub)尚未完成初始化,相关温度传感器未激活
- BMC 尝试读取温度数据失败 → 触发告警
- 数十秒后 Host 完全启动,IPMB 链路畅通,温度数据恢复 → 告警自动解除
3. 温度监控机制依赖项说明
| 组件 | 功能 | 依赖关系 |
|---|---|---|
| CPU_Object | 监控并更新 CPU 及内存温度 | 需从 Host 获取原始数据 |
| ThresholdSensor_CPUTemp / MemoryTemp | 判断温度是否正常 | 依赖 TemperaturesInfo 数据结构 |
| TemperaturesInfo | 封装所有温度点数据 | 由 GetTemperaturesInfo 方法提供,最终来源为 IPMI/IPMB |
| IPMB 总线 | BMC 与 CPU/PCH 通信通道 | 必须稳定才能获取温度值 |
4. 与 PCIe 卡、RAID 卡等组件的共性
此问题并非孤例:
- 在 AC 启动时,PCIe Card Sensor 注册失败概率约为 5%
- RAID 卡信息读取失败 在 AC 后也存在
- Fru Sdr 组件 虽可注册,但部分传感器注册延迟或失败
这进一步说明:AC 上电初期,整个系统的传感器初始化过程存在时序不稳定问题
解决方案建议
方案一:【优化】增加 BMC 对 CPU 温度读取的重试机制(推荐)
- 目标:避免在 Host 未就绪时过早判定为故障
- 实现方式:
- 延迟首次 CPU/内存温度采集时间(如 AC 启动后 ≥30s 再开始轮询)
- 引入 指数退避重试机制:连续失败时不立即报错,而是逐步增加等待时间后重试
- 结合
contbin_H10L5防抖机制:CPU 温度读取失败需持续 10 次才触发告警
来自搜索结果 1:
contbin_H10L5明确用于“CPU温度读取失败”的持续二值防抖处理
方案二:【增强】启用 Delay on Power 功能以稳定 BMC 初始化顺序
- 原理:确保 BMC 在 AC 上电时比 Host 更早完成初始化
- 配置项:在 BIOS 或 BMC 中设置
Delay On Power参数 - 效果:允许 BMC 在 Host 尚未完全启动前建立好通信链路,降低 IPMB 超时概率
来自 KG 关系:
AC→Delay On Power:“Delay on power reduces the probability of information loss after AC by allowing BMC to initialize first.”
方案三:【验证】检查 BMC 是否收到有效 ACPI 工作状态信号
- SEL 日志显示
0x2C000009(ACPI Working State)已被触发 - 说明 Host 已至少进入 S0 状态,理论上所有传感器应可用
- 可进一步使用 IPMI 命令验证:
执行ipmitool raw 0x06 0x05Get ACPI Power State命令,确认 ACPI 状态同步准确性
来自 KG 实体:
Get ACPI Power State是标准 IPMI 命令,用于获取当前 ACPI 状态
定界方法总结(如何判断 BMC vs BIOS 问题)
| 检查项 | 工具/方法 | 判断标准 |
|---|---|---|
| IPMB 通信状态 | 抓取 I2C 总线日志(BMC 侧) | 若存在 NACK、timeout,则为通信问题 |
| 是否所有传感器同时失败 | 分析 SEL 日志范围 | 若仅 CPU/内存失败,其他正常 → 指向 Host 子系统未就绪 |
| 是否影响后续运行 | 观察告警是否自动恢复 | 自动恢复 → 初期初始化问题,非永久性故障 |
| DMI/SMBIOS 是否上报温度 | 通过 Host 工具查看 smbios 表 |
Host 也无法读取 → 硬件问题;Host 可读 → BMC 获取逻辑问题 |
结论
问题定性:
AC 长稳测试中偶现 CPU 与内存温度获取失败,属于 BMC 在启动初期因 IPMB 通信链路未就绪导致的时序竞争问题,非硬件故障。
根本原因:
- BMC 在 Host CPU 和 PCH 完全初始化前尝试读取温度数据
- IPMB 消息请求超时,触发临时告警
- 待系统稳定后通信恢复,告警自动解除
推荐措施:
- 增加防抖机制:采用
contbin_H10L5持续防抖策略,避免瞬态异常上升为告警 - 延迟温度采集:在 AC 启动后 30~60 秒再启动 CPU/内存温度监控
- 启用 Delay on Power:确保 BMC 优先初始化,提升通信可靠性
- 升级 BMC 固件:确认是否已在新版中修复类似时序问题(如 2509 版本已优化)
参考资料与实体引用
CPU Temperature:温度数据获取失败与 IPMB 通信问题相关AC:特指电源周期操作,常用于恢复和测试TemperaturesInfo:封装温度数据的关键结构体contbin_H10L5:用于 CPU 温度读取失败的防抖机制Get ACPI Power State:IPMI 命令,可用于验证 Host 状态Delay On Power:减少 AC 后信息丢失的有效手段
建议版本迭代中加入防抖+延迟策略,即可显著降低此类偶现告警发生率。
看告警信息,2分钟恢复,排查下ipmb通道是否正常
我使用2509版本也遇到了当前问题,我初步看日志是ipmi_core模块ipmb注册时间晚于computer模块更新温度时间
一键收集日志
S920X25_20260202-0929.tar.gz.txt (9.8 MB)
25.12_2026.12.31_LTS_SP1解决
请问main分支有没有解决这个问题,是什么时间解决的?
不清楚 我们也是伙伴,代码更新到sp1补丁版本解决的
好的,谢谢

