Skip to content

Thermal温度过载保护模块

支持在芯片过热时调整Property值以改变调度策略, 例如降低CPU的最大功耗和限制GPU的最高频率.

params - 调频器参数

字段类型定义
intervalint空闲工作频率
actionDelayint活动工作频率
matchRulenullnull
json
  "Thermal": {
    "params": {
      "interval": 1000,
      "actionDelay": 1000,
      "matchRule": null
    },

modes - 调频器参数

字段类型定义
tempArrayInt过热温度(范围:0-100°C)
cpu.max_powerintCPU整体功耗上限(单位:mW)
mtk_gpu.max_freqintGPU整体频率上限(单位:Mhz)
devfreq.ddr.max_freqintDDR工作频率上限(单位:Mhz)
devfreq.gpu.max_freqintGPU工作频率上限(单位:Mhz)

TIP

过热温度为触发调频器温度控制的阈值,当temp设置为-1时则代表忽略过热温度,例如temp设置为80时则表示当CPU温度超过80°C时将触发该字段所包含的变量,当超过90°C时将触发下一个字段.并由setProperty字段中的namevalue来设置对应的属性值.

WARNING

powerLimitboost extra_margin,low_latency0/false的时候生效,但是max_power还是会限制功耗,max_power的功耗限制是优先级高于powerLimit的,即使powerLimit设置为10000,max_power设置为5000,那么最终的功耗限制还是5000.

json
 "modes": {
      "powersave": {
        "actions": [
          {
            "temp": -1, 
            "setProperty": [
              {"name": "cpu.max_power", "value": 8000},
              {"name": "mtk_gpu.max_freq", "value": 600},
              {"name": "devfreq.ddr.max_freq", "value": 10000},
              {"name": "devfreq.gpu.max_freq", "value": 10000}
            ]
          },
          {
            "temp": 80, 
            "setProperty": [
              {"name": "cpu.max_power", "value": 5000},
              {"name": "mtk_gpu.max_freq", "value": 500},
              {"name": "devfreq.ddr.max_freq", "value": 10000},
              {"name": "devfreq.gpu.max_freq", "value": 10000}
            ]
          },
          {
            "temp": 90, 
            "setProperty": [
              {"name": "cpu.max_power", "value": 2000},
              {"name": "mtk_gpu.max_freq", "value": 500},
              {"name": "devfreq.ddr.max_freq", "value": 10000},
              {"name": "devfreq.gpu.max_freq", "value": 10000}
            ]
          }
        ]
      },

节选自CuToolbox V8.2.0 Alpha更新日志

[Thermal] 新增的模块, 支持在芯片过热时调整Property值以改变调度策略, 例如降低CPU的最大功耗和限制GPU的最高频率.