目标
假设我们需要修改cpu0的频率。
过程
首先需要进入/sys/devices/system/cpu/cpu0/cpufreq目录。该目录下文件如下图所示:
前缀cpuinfo代表的是cpu硬件上支持的频率,而scaling前缀代表的是可以通过CPUFreq系统用软件进行调节时所支持的频率。cpuinfo_cur_freq代表通过硬件实际上读到的频率值,而scaling_cur_freq则是软件当前的设置值,多数情况下这两个值是一致的,但是也有可能因为硬件的原因,有微小的差异。
从图中不难发现,只有scaling_governor,scaling_max_freq,scaling_min_freq,scaling_setspeed四个文件可以编辑。首先是scaling_governor。它的取值范围在scaling_available_governors中。scaling_available_governors保存了系统支持的电源策略,conservative (保守),powersave(节能),ondemand(请求),performance(性能),userspace模式。
ondemand策略的主要思想是:只要cpu的负载超过某一个阀值,cpu的频率会立刻提升至最高,然后再根据实际情况降到合适的水平。scaling_driver则会输出当前使用哪一个驱动来设置cpu的工作频率。
当我们选择userspace作为我们的调频governor时,我们可以通过scaling_setspeed手工设置需要的频率。powersave则简单地使用最低的工作频率进行运行,而performance则一直选择最高的频率进行运行。
我们需要设定cpu0的频率,则需要将scaling_governor内写入userspace。
另外,scaling_setspeed是设置频率。可以选择的频率值通过scaling_available_frequencies查看。
我们需要设定cpu0的频率,则需要将scaling_setspeed内写入需要的频率。
所以需要修改cpu0的频率,只需要执行以下指令:
1 | echo userspace > scaling_governor |
修改完毕后,执行s-tui查看结果。
参考文献
https://blog.csdn.net/zhangyongfeiyong/article/details/53506362