Thermal Governor 算法详解
1. 作用
Governor不读取寄存器,也不直接改频率;它根据 zone温度/trip/trend计算各 thermal_instance.target,再由 cooling device执行。
2. Step-wise
温度上升且越过 trip时逐步增加 cooling state;下降时逐步解除。优点简单稳健,缺点响应/解除速度依赖 update周期和 step。
3. Fair-share
根据 zone温度相对 trip的 level、cdev最大状态和 contribution分配状态。适合多个 actor粗粒度分担,但不是精确功率模型。
4. Bang-bang
两态控制:
1 | above trip -> max/on |
适合风扇、继电器,不适合需要平滑 DVFS的场景。
5. User-space
内核发送 trip事件,用户态写 cdev state。优点策略灵活;缺点 daemon崩溃/调度延迟可能失控,critical trip仍应留在内核/硬件。
6. Power allocator
PID型功率预算:
1 | error = control_temp - current_temp |
再按各 power actor requested power/weight分配预算并换算 cooling state。
要求:
- Energy Model/OPP;
- cdev power API;
-合理 sustainable power;
-稳定 update interval;
-正确 actor power model。
7. RK3588默认
主配置默认 power_allocator。soc-thermal 的 2100mW sustainable power是控制核心参数。该值是平台热设计输入,不是 SoC瞬时实测功耗。
8. 参数
power allocator sysfs可能提供:
- k_po;
- k_pu;
- k_i;
- k_d;
- integral_cutoff;
- sustainable_power。
实际可见性取决于版本和 policy。
9. 调参
- 先验证温度与 cooling actor;
- 测稳态可持续总功率;
- 设 control trip;
- 从保守增益开始;
- 测升温、过冲、恢复;
- 覆盖环境高温和风扇故障;
- 记录频率、power budget和温度。
10. 风险
- gain过大:频率/温度振荡;
- gain过小:过冲至 critical;
- sustainable power过高:长期升温;
-过低:无谓降频;
-多个独立 controller同时控同一 actor:策略冲突; - update周期过短:噪声和开销。
正在加载留言…