Linux内核dvfs之cpufreq介绍

Linux内核dvfs之cpufreq介绍本文基于Linux4.4内核介绍CPUFreq。在Linux内核中,CPUFreq支持动态调整CPU频率和电压,从而兼顾系统的性能和功耗。

欢迎大家来到IT世界,在知识的湖畔探索吧!

本文基于Linux4.4内核介绍CPUFreq

Linux内核中,CPUFreq支持动态调整CPU频率和电压,从而兼顾系统的性能和功耗。例:需要CPU高性能时,提升CPU频率和电压;反之,降低CPU频率和电压。

一、CPUFreq调频策略

CPUFreq的调频策略主要包括:

1、conservative

保守模式,根据CPU负载动态调频,按一定的比例平滑的升高或降低频率。

2、interactive

交互模式,直接上最高频率,然后根据CPU负载慢慢降低。

3、ondemand

按需响应模式,定期检查负载,根据负载来调节频率。

4、performance

高性能模式,性能优先。不考虑耗电,以CPU最高频率运行。

5、powersave

省电模式,功耗优先。以CPU最低频率运行,一般不用。

6、userspace

用户隔离模式,用户空间手动调节频率,系统不会调整。

二、CPUFreq调试方法

RockPI 4A单板为例,该单板使用RK3399处理器(双核A72+四核A53)和Linux 4.4内核,CPUFreq相关参数如下:

1、小核

## 1、CPU0 CPUFreq相关配置参数 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# ls -l total 0 -r--r--r-- 1 root root 4096 Aug 16 14:49 affected_cpus -r-------- 1 root root 4096 Aug 16 14:49 cpuinfo_cur_freq -r--r--r-- 1 root root 4096 Aug 16 14:49 cpuinfo_max_freq -r--r--r-- 1 root root 4096 Aug 16 14:49 cpuinfo_min_freq -r--r--r-- 1 root root 4096 Aug 16 14:49 cpuinfo_transition_latency drwxr-xr-x 2 root root 0 Aug 16 14:49 ondemand -r--r--r-- 1 root root 4096 Aug 16 14:49 related_cpus -r--r--r-- 1 root root 4096 Aug 16 14:49 scaling_available_frequencies -r--r--r-- 1 root root 4096 Aug 16 14:49 scaling_available_governors -r--r--r-- 1 root root 4096 Aug 16 14:49 scaling_cur_freq -r--r--r-- 1 root root 4096 Aug 16 14:49 scaling_driver -rw-r--r-- 1 root root 4096 Aug 16 14:49 scaling_governor -rw-r--r-- 1 root root 4096 Aug 16 14:49 scaling_max_freq -rw-r--r-- 1 root root 4096 Aug 16 14:49 scaling_min_freq -rw-r--r-- 1 root root 4096 Aug 16 14:49 scaling_setspeed drwxr-xr-x 2 root root 0 Aug 16 14:49 stats ## 2、CPUFreq影响的CPU Core,不显示offline状态 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat affected_cpus 0 1 2 3 ## 3、CPU0当前频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat cpuinfo_cur_freq  ## 3、CPU0支持的最大频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat cpuinfo_max_freq  ## 3、CPU0支持的最小频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat cpuinfo_min_freq  ## 4、频率转换延迟 root@linaro-alip:/sys/devices/system/cpu/cpu1/cpufreq# cat cpuinfo_transition_lattency 40000 ## 5、包括online和offline所有CPU Core root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat related_cpus 0 1 2 3 ## 6、可用频率列表 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_frequencies       ## 7、可用的governors root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_available_governors conservative ondemand userspace powersave interactive performance ## 8、当前频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_cur_freq  ## 9、当前governor root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_governor ondemand ## 10、当前调频策略的最大频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_max_freq  ## 11、当前调频策略的最小频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_min_freq  ## 12、在governor为userspace时,可通过设置scaling_setspeed,修改当前频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_setspeed <unsupported> ## 13、设置governor为userspace,后续可以调整频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# echo userspace > scaling_governor root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_governor userspace ## 14、设置当前频率 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat scaling_setspeed  root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# echo  > scaling_setspeed root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cat cpuinfo_cur_freq  root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# ## 1、CPU1 ~ CPU3 与CPU0 CPUFreq相关配置相同 root@linaro-alip:/sys/devices/system/cpu/cpu0/cpufreq# cd ../../cpu1/cpufreq root@linaro-alip:/sys/devices/system/cpu/cpu1/cpufreq# cat cpuinfo_cur_freq  root@linaro-alip:/sys/devices/system/cpu/cpu1/cpufreq# cat scaling_governor userspace 

欢迎大家来到IT世界,在知识的湖畔探索吧!

2、大核

欢迎大家来到IT世界,在知识的湖畔探索吧!root@linaro-alip:/sys/devices/system/cpu/cpu4/cpufreq# ls -l total 0 -r--r--r-- 1 root root 4096 Aug 16 15:19 affected_cpus -r-------- 1 root root 4096 Aug 16 15:19 cpuinfo_cur_freq -r--r--r-- 1 root root 4096 Aug 16 15:19 cpuinfo_max_freq -r--r--r-- 1 root root 4096 Aug 16 15:19 cpuinfo_min_freq -r--r--r-- 1 root root 4096 Aug 16 15:19 cpuinfo_transition_latency drwxr-xr-x 2 root root 0 Aug 16 15:19 ondemand -r--r--r-- 1 root root 4096 Aug 16 15:19 related_cpus -r--r--r-- 1 root root 4096 Aug 16 15:19 scaling_available_frequencies -r--r--r-- 1 root root 4096 Aug 16 15:19 scaling_available_governors -r--r--r-- 1 root root 4096 Aug 16 15:19 scaling_cur_freq -r--r--r-- 1 root root 4096 Aug 16 15:19 scaling_driver -rw-r--r-- 1 root root 4096 Aug 16 14:43 scaling_governor -rw-r--r-- 1 root root 4096 Aug 16 15:19 scaling_max_freq -rw-r--r-- 1 root root 4096 Aug 16 15:19 scaling_min_freq -rw-r--r-- 1 root root 4096 Aug 16 15:19 scaling_setspeed drwxr-xr-x 2 root root 0 Aug 16 15:19 stats root@linaro-alip:/sys/devices/system/cpu/cpu4/cpufreq# cat affected_cpus 4 5

大核与小核配置相同,不再单独介绍。

注:转载请注明出处。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/63267.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信