当前位置:网站首页>一点点读懂Thremal(二)
一点点读懂Thremal(二)
2022-08-04 22:50:00 【szembed】
目录
本章节分析governor之一的step_wise。
1、基本术语概念
在介绍之前,先介绍几个术语概念来帮助大家理解:

1.1 trip point
可以理解为一个阈值吧,每一个温度区间的阈值可以理解为一个trip point。
1.2 cooling state
可以认为是温控调节的下一目标的索引,以频率调整为例,state =1 对应100MHZ,state=2表示200MHZ,即通过该值可以找到目标频率,如果是其他方法类似。
1.3 zone device state
表示zone device 当前温度的状态,比如我们可以把state分为4种状态:cold、normal、hot、critical,分别对应温度区间为:
Cold: temperature <= 3°C,对应温控策略通常升压提频,以达到升温的目的。
Normal: temperature > 3°C && temperature <= 50°C,对应策略通常为持续监控,电压和频率暂不做调整
Hot: temperature > 50°C && temperature <= 80°C,对应策略为降压降频,同时监控周期缩短
Critical: temperature > 80°C,对应策略一般为重启系统
2、Governor实现介绍
step_wise 算法在计算 target cooling state 的过程中,除了需要知道是否 throttle,还添加了一个 trend 作为参考条。trend 表示温升趋势,Linux Thermal Framework 定义了五种 trend type,见 enum thermal_trend,即稳定(THERMAL_TREND_STABLE), 上升(THERMAL_TREND_RAISING), 下降(THERMAL_TREND_DROPPING), 最高温线(THERMAL_TREND_RAISE_FULL),最低温线(THERMAL_TREND_DROP_FULL)。
step_wise governor 对于 cooling_state 选择的策略:
1)当前温度大于当前trip point时
a. if the trend is THERMAL_TREND_RAISING, use higher cooling state for this trip point
b. if the trend is THERMAL_TREND_DROPPING, do nothing
c. if the trend is THERMAL_TREND_RAISE_FULL, use upper limit for this trip point
d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit for this trip point
2)当前温度小于当前trip point时
a. if the trend is THERMAL_TREND_RAISING, do nothing
b. if the trend is THERMAL_TREND_DROPPING, use lower cooling state for this trip point, if the cooling state already equals lower limit, deactivate the thermal instance
c. if the trend is THERMAL_TREND_RAISE_FULL, do nothing
d. if the trend is THERMAL_TREND_DROP_FULL, use lower limit,if the cooling state already equals lower limit,deactivate the thermal instance
step_wise governor 是每个轮询周期逐级提高冷却状态,是一种相对温和的温控策略。
3、step_wise governor执行流程

边栏推荐
猜你喜欢
随机推荐
ffplay视频播放原理分析
一招包治pycharm DEBUG报错 UnicodeDecodeError: ‘utf-8‘ codec can‘t decode
双非读者,一举拿下阿里、字节、美团、京东、虾皮offer
PAN3020 Sub-1G无线收发芯片
Redisson
ANT1.7 download and configuration method
亿流量大考(3):不加机器,如何抗住每天百亿级高并发流量?
The Controller layer code is written like this, concise and elegant!
QT[一] 信号与槽
【2020】【论文笔记】超表面:多功能和可编程——
enumerate()函数
SSM整合完整流程讲解
ANT1.7下载以及配置方法
Nacos配置中心之客户端长轮询
【云原生 · Kubernetes】Kubernetes运维
单片机原理[一] 学好单片机必会的五张图
Jbpm3.2 开发HelloWorld (简单请假流程)客户端
【3D建模制作技巧分享】ZBrush模型如何添加不同材质
【字符串函数内功修炼】strlen + strstr + strtok + strerror(三)
2022精选最新金融银行面试真题——附带答案









