平滑重启失败概率性出现风扇满转无法恢复问题分析
更新时间: 2026/06/02
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:openUBMC 26.4.0.B001;
- 涉及功能:平滑启动,风扇;
- 触发条件:平滑重启失败,查看风扇转速;
- 业务表现:预期风扇满转后可恢复;实际为风扇满转不可恢复。
问题复现步骤
脚本执行平滑重启,观察风扇转速情况。
关键日志信息
app.log信息:
定位过程
一键收集日志可看出,reboot cancel后风扇level达到100,根据该日志从组件thermal_mgmt的代码分析可知,此时风扇转速设置尚在prepare阶段,而代码中风扇的prepare阶段存在协程切换操作,如果此时取消操作,prepare阶段尚未完成,风扇转速不会恢复,会一直高速运转。
问题原因
thermal_mgmt风扇转速设置prepare阶段存在协程切换动作,当prepare还未执行完成时,进行取消操作,导致风扇转速无法恢复。
解决方案
thermal_mgmt组件执行重启取消操作时,必须保证prepare阶段完成执行,若没有执行完成,则需要等待完成后再进行其他操作。