我的笔记本电脑 Thinkpad T400 运行 Ubuntu 16.04,有两个 cpu 核心cpu0
和cpu1
.
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq
797963
797963
$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed
800000
800000
然后我编辑/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
将其内容更改为1600000
,然后
为什么cpu1的实时频率也改变了,而没有改变它的
scaling_setspeed
文件?$ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_setspeed 1600000 800000 $ cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq 1595928 1595926
为什么以下命令显示的结果与上面不同:
$ watch grep \"cpu MHz\" /proc/cpuinfo Every 2.0s: grep "cpu MHz" /proc/cpuinfo Thu Jan 25 17:31:01 2018 cpu MHz : 1600.000 cpu MHz : 800.000
谢谢。
看来更改应该只影响当前的核心,而不是两者都影响:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/affected_cpus
0
$ cat /sys/devices/system/cpu/cpu1/cpufreq/affected_cpus
1
答案1
这可能是硬件限制。许多 CPU 要求所有核心(有时是同一芯片上的成对核心)以相同频率运行。该affected_cpus
文件(位于同一目录中)应该告诉您哪些核心被迫以相同的频率运行。
看https://www.kernel.org/doc/Documentation/cpu-freq/user-guide.txt一些文档。