Linux 系统中的dvfs功能

前言

最近硬件的同事需要我们提供的版本能动态调频,何为动态调频呢?对于CPU来讲,功耗和性能是一对不可调和的矛盾,通过调整CPU的电压和频率,可以在功耗和性能之间找一个平衡点。由于调整是在系统运行的过程中,因此这种功能也称作动态电压/频率调整(Dynamic Voltage/Frequency Scaling,DVFS)。说白了,就是在不需要高性能时,降低电压和频率,以降低功耗;在需要高性能时,提高电压和频率,以提高性能。

正文

在开机过程中,我们可以用下面的命令来读取目前CPU运行的频率:

# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq1488000

可以看到,我板子的运行频率为1488000 KHz。如果将命令封装在脚本中并开机自动,那么就能读取到开机过程中的运行频率变化了,如果开启了DVFS功能的话,读取到的值肯定是否变化的。
一开始,我手上的板子运行频率并没有变化,后来查阅了一些资料后,原来是脚本中设置了关闭,在我板子的inittab脚本中有这么几个命令:

null::sysinit:echo 1488000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freqnull::sysinit:echo 96000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freqnull::sysinit:echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

前两条命令的含义是,动态频率的变化范围在96000 KHz~1488000 KHz,但是performance的含义是将CPU频率固定工作在其支持的最高运行频率上,而不动态调节。如果想设置为动态调频,则应该设置如下:

echo interactive > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

其实在/sys/devices/system/cpu/cpu0/cpufreq目录下还有很多的节点,比如:

1、scaling_available_frequencies

# cat scaling_available_frequencies96000 192000 312000 408000 504000 600000 696000 816000 912000 1008000 1104000 1200000 1296000 1416000 1488000

支持的所有频率,动态调频就是在这几个值中变化

2、scaling_available_governors

# cat scaling_available_governorshotplug interactive conservative ondemand performance

除了一开始我们看到的几个调频策略,还有其他的策略可以通过这个节点获取

3、affected_cpus

# cat affected_cpus0 1 2 3

我们只是设置了CPU0的策略,但是在一些平台,其他的CPU会跟随主CPU的变化而变化,这个节点就可以看出来哪些online的CPU使用相同的策略

参考链接:https://blog.csdn.net/melody157398/article/details/7948101


  回复「 篮球的大肚子」进入技术群聊

回复「1024」获取1000G学习资料

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值