CPUFREQ
cpufreq driver 学习记录
SoloLinux
专注Kernel,GPU Driver,ROCM,CPU, Power/Performance开
展开
-
cpufreq: cpufreq_online 的大致流程
call cpu driver的init callbackret = cpufreq_driver->init(policy)//初始化policy并调用set_policyret = cpufreq_init_policy(policy);//注册thermal 相关callbackif (cpufreq_thermal_control_enabled(cpufreq_driver))policy->cdev = of_cpufreq_cooling_register(policy原创 2022-02-10 15:45:27 · 964 阅读 · 0 评论 -
理解Intel cpufreq intel_pstate driver的工作模式
主要分为支持HWP ,不支持HWP,主动模式和被动模式主动被动支持HWP依赖于gov来选择频率不支持 HWP主动模式下,如果支持HWP, 测CPU的硬件会自动选择频率主动模式下,如果不支持HWP, 那会采用Intel自己的GOV来选择频率, 主要是通过CPU的利用率来进行调频.被动模式没啥好说的了, 基本就是依赖于gov的策略,比如schedutil的算法, 依据基本也是CPU的rq 负载来更新频率.Operation Modesintel_pstate can原创 2022-02-10 15:09:55 · 2270 阅读 · 0 评论 -
cpufreq: update_limits 实现和引用
void acpi_processor_ppc_has_changed(struct acpi_processor *pr, int event_flag){ int ret; if (ignore_ppc || !pr->performance) { /* * Only when it is notification event, the _OST object * will be evaluated. Otherwise it is skipped. */ if.原创 2022-02-10 15:04:00 · 422 阅读 · 0 评论 -
cpufreq 频率设置verify
新频率在被设置时需要检查是否在可用范围内.static struct cpufreq_driver longrun_driver = {.flags = CPUFREQ_CONST_LOOPS,.verify = longrun_verify_policy,.setpolicy = longrun_set_policy,.get = longrun_get,.init = longrun_cpu_init,.name = “longrun”,};When the user dec原创 2022-02-10 14:10:07 · 499 阅读 · 0 评论