Linux 系统中的dvfs功能
前言
最近硬件的同事需要我們提供的版本能動態調頻,何為動態調頻呢?對于CPU來講,功耗和性能是一對不可調和的矛盾,通過調整CPU的電壓和頻率,可以在功耗和性能之間找一個平衡點。由于調整是在系統運行的過程中,因此這種功能也稱作動態電壓/頻率調整(Dynamic Voltage/Frequency Scaling,DVFS)。說白了,就是在不需要高性能時,降低電壓和頻率,以降低功耗;在需要高性能時,提高電壓和頻率,以提高性能。
正文
在開機過程中,我們可以用下面的命令來讀取目前CPU運行的頻率:
# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq1488000可以看到,我板子的運行頻率為1488000 KHz。如果將命令封裝在腳本中并開機自動,那么就能讀取到開機過程中的運行頻率變化了,如果開啟了DVFS功能的話,讀取到的值肯定是否變化的。
一開始,我手上的板子運行頻率并沒有變化,后來查閱了一些資料后,原來是腳本中設置了關閉,在我板子的inittab腳本中有這么幾個命令:
前兩條命令的含義是,動態頻率的變化范圍在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學習資料
總結
以上是生活随笔為你收集整理的Linux 系统中的dvfs功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tp5验证码详细代码
- 下一篇: Android 广播接收