我试图理解为什么我的 CPU 不能以更高的频率运行(相关链接)
有人能解释一下,当定义了最小值和最大值后,有效值最终怎么会超出该范围呢?
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
3267000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
3300000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
1199960
$ cpupower frequency-info
analyzing CPU 0:
driver: intel_pstate
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 0.97 ms.
hardware limits: 800 MHz - 3.30 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 3.27 GHz and 3.30 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.20 GHz.
boost state support:
Supported: yes
Active: yes
25500 MHz max turbo 4 active cores
25500 MHz max turbo 3 active cores
25500 MHz max turbo 2 active cores
25500 MHz max turbo 1 active cores
cpuinfo_cur_freq
另外,有人可以解释一下和之间的区别scaling_cur_freq
吗?
我为解决我的问题而打开的相关问题(可能包含这里未提及的可能有用的其他信息)
附加信息:
$ sudo rdmsr -a 0x19a
0
0
0
0
rdmsr: No CPU 4
答案1
这取决于您的处理器,对于您的处理器来说,情况确实如此,cpuinfo_cur_freq
并且scaling_cur_freq
是相同的。
对于某些处理器,cpuinfo_cur_freq
涉及硬件读取,并且可能在时间上“昂贵”,这就是它需要sudo
访问的原因。
您的 CPU 频率可能超出您设置的限制,因为如果负载足够轻,处理器本身可以退出 PLL(锁相环),无论您要求什么。不用担心,如果有实际工作要做,CPU 频率会非常快地旋转。在您的例子中,您正在使用性能调节器,它将提供最快的 CPU 频率提升时间。
对于您提到的其他问题,正如我在那里提到的,我认为涉及时钟调制,这对 intel_pstate CPU 频率驱动程序来说是一个问题。要确认或否认时钟调制是否已启用,请将此结果添加到您的问题中:
$ sudo modprobe msr
$ sudo rdmsr -a 0x19a
msr-tools
请注意, rdmsr 原语需要该包。一旦提供信息,我将对其进行解码。