CPU频率调节:当前频率如何超出最小-最大范围?

我正在努力理解为什么我的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_freqscaling_cur_freq之间的区别吗?

我打开的相关问题来解决我的问题(可能包含其他未提及但可能有用的附加信息)


附加信息:
$ sudo rdmsr -a 0x19a
0
0
0
0
rdmsr: No CPU 4
1个回答

根据您的处理器,对于您来说是这样的,cpuinfo_cur_freqscaling_cur_freq是同一件事。
对于某些处理器来说,cpuinfo_cur_freq涉及硬件读取,可能会在时间上比较“昂贵”,这就是为什么它需要sudo权限访问的原因。
您的CPU频率可能会超出您设置的限制,因为如果负载足够轻,处理器本身可以降低PLL(锁相环)的频率,而不管您要求的是什么。不用担心,如果有实际工作要做,CPU频率会非常快地增加。在您的情况下,您正在使用性能调节器,这将提供最快的CPU频率升速时间。
至于您提到的其他问题,正如我在那里提到的,我认为涉及到时钟调制,这对于intel_pstate CPU频率驱动程序是一个问题。请将此结果添加到您的问题中以确认或否认是否启用了时钟调制。
$ sudo modprobe msr
$ sudo rdmsr -a 0x19a

请注意,需要安装msr-tools软件包以使用rdmsr原始指令。一旦提供信息,我将解码它。

谢谢你的回答。我看到你在其他话题中提到了时钟调制,但问题是在休眠后出现的对吗?我的问题发生在重启后,而且当我给CPU增加负载时,频率似乎会降低(参见:https://github.com/pyamsoft/pstate-frequency/issues/24)。这仍然可能有关系吗?我现在无法测试,但我会查看你的其他回答,并尝试关闭时钟调制和pstate驱动程序。谢谢 - Sebastien Lorber
我建议,在你的情况下,时钟调制功能被启用是有实质原因的。也就是说,这是为了防止处理器过热而采取的最后一道防线。除了我之前提到的要求外,我认为运行sudo turbostat --debug sleep 10命令并输出结果可能会有所帮助。 - Doug Smythies
在我最近的测试中,我移除了thermald并将pstate-frequency设置为最大值,我发现处理器温度接近100°。很可能是因为计算机试图保护自己,因为结合温度是105。但这意味着升级Ubuntu发行版后,我的计算机在更低的频率下运行时变得比以前更热?这是什么原因引起的呢?明天我会使用turbostat来获取更多信息,谢谢。 - Sebastien Lorber
我怀疑你的计算机通风路径需要清理。我有一台戴尔XPS-M1730,我每隔大约6个月就要清理一次通风口。 - Doug Smythies
嗨。我已经将turbostat的输出放在相关问题(http://askubuntu.com/q/800797/453923)上,因为那里更适合。不幸的是,我不确定如何打开我的电脑进行清洁(从未尝试过),螺丝非常小,似乎需要特定的工具。看起来我的电脑在负载下允许温度变得非常高,然后决定它太热了,只让CPU以大约1Ghz的频率运行。我宁愿让我的电脑变得不那么热,当它太热时,避免降到这么低的频率。 - Sebastien Lorber
如果你能看一下这个新问题我会很感激。也许是因为过热了,但是为什么风扇会变慢呢?http://askubuntu.com/questions/801226/fans-arent-fullspeed-while-cpu-is-100-then-cpu-frequency-decrease - Sebastien Lorber
Doug Smythies 我还是有问题。我正在努力工作,我强制风扇全速运转,而CPU温度保持在60°(对于我的电脑来说很低)。频率现在一直保持在800MHz左右,尽管我的电脑几乎没有负载(大约5-10% C0)。我目前正在使用acpi-cpufreq,并关闭了thermaldcpufreqdi8kmon。我刚刚运行了您的rdmsr命令,并将结果添加在上面。您是否有可能知道可能的原因? - Sebastien Lorber
可能的原因是什么?你所描述的对我来说似乎很正常。我想要的rdmsr命令是用于当CPU频率由于极端热事件而过低时。顺便说一下,我清洁了我的笔记本电脑的通风口等部位,没有拆开它,使用一根弯曲的纸片夹住风扇叶片,以防止它们旋转,然后使用吸尘器和压缩空气。如果你没有压缩空气,只需尝试通过进气口区域进行吸尘即可。如果你有干净(无油)的压缩空气,则可以在出风口喷些压缩空气,同时在进气口处吸尘。在我的情况下,我看到了很多灰尘。 - Doug Smythies
哦,如果你还在使用性能调节器,那么我们会期望更高的CPU频率,即使是在5到10%的C0时间内。 - Doug Smythies