今天学习了cpu_cooling.c源文件,路径在drivers/thermal/cpu_cooling.c。源代码地址:https://elixir.bootlin.com/linux/v5.4/source/drivers/thermal/cpu_cooling.c
1 文件内容整体描述
cpu_cooling.c主要提供了thermal管理中注册cpufreq cooling device的接口函数,还包含注册时需要调用的函数。这些函数都是kernel的原生框架内容,不同的厂商平台可以依据此框架注册适合于自己平台的cpufreq cooling device。
2 主要数据结构
struct cpufreq_cooling_device {
int id; //设备ID
u32 last_load; //最近一次的负载
unsigned int cpufreq_state;
unsigned int max_level; //最大冷却等级
struct freq_table *freq_table; //频率和功率对应表,频率按降序排列,freq_table数据结构如下所示
struct cpufreq_policy *policy; //cpu对应的policy
struct list_head node;
struct time_in_idle *idle_time;
struct freq_qos_request qos_req;
};
struct freq_table {
u32 frequency;
u32 power;
};
/* Bind cpufreq callbacks to thermal cooling device ops */
//cpufreq cooling device的操作函数,注意下面这两个数据结构的区别
static

最低0.47元/天 解锁文章
818

被折叠的 条评论
为什么被折叠?



