Thermal Governor 算法详解

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
2
above trip -> max/on
below trip-hysteresis -> min/off

适合风扇、继电器,不适合需要平滑 DVFS的场景。

5. User-space

内核发送 trip事件,用户态写 cdev state。优点策略灵活;缺点 daemon崩溃/调度延迟可能失控,critical trip仍应留在内核/硬件。

6. Power allocator

PID型功率预算:

1
2
error = control_temp - current_temp
budget = sustainable_power + P + I + D-like terms

再按各 power actor requested power/weight分配预算并换算 cooling state。

要求:

  • Energy Model/OPP;
  • cdev power API;
    -合理 sustainable power;
    -稳定 update interval;
    -正确 actor power model。

7. RK3588默认

主配置默认 power_allocatorsoc-thermal 的 2100mW sustainable power是控制核心参数。该值是平台热设计输入,不是 SoC瞬时实测功耗。

8. 参数

power allocator sysfs可能提供:

  • k_po;
  • k_pu;
  • k_i;
  • k_d;
  • integral_cutoff;
  • sustainable_power。

实际可见性取决于版本和 policy。

9. 调参

  1. 先验证温度与 cooling actor;
  2. 测稳态可持续总功率;
  3. 设 control trip;
  4. 从保守增益开始;
  5. 测升温、过冲、恢复;
  6. 覆盖环境高温和风扇故障;
  7. 记录频率、power budget和温度。

10. 风险

  • gain过大:频率/温度振荡;
  • gain过小:过冲至 critical;
  • sustainable power过高:长期升温;
    -过低:无谓降频;
    -多个独立 controller同时控同一 actor:策略冲突;
  • update周期过短:噪声和开销。

文章互动

阅读 --

留言

0 条留言

正在加载留言…