CPU 在 18.10 中切换到非常低的速度

CPU 在 18.10 中切换到非常低的速度

自从更新到 Ubuntu 18.10 以来,CPU 电源管理似乎出现了问题。我认为(不确定)当笔记本电脑开始有点热时,intel_pstate 会将 CPU 切换到较低的速度。这种情况在过去发生过,但一旦冷却下来,速度就会再次切换为更高。

现在,自从更新以来,它的速度就变得非常慢。例如,从cpufreq-info

analyzing CPU 7:
driver: intel_pstate
CPUs which run at the same hardware frequency: 7
CPUs which need to have their frequency coordinated by software: 7
maximum transition latency: 4294.55 ms.
hardware limits: 1.20 GHz - 3.30 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 1.32 GHz and 1.32 GHz.
              The governor "powersave" may decide which speed to use
              within this range.
current CPU frequency is 353 MHz.

所有 8 个 CPU 的速度都在 344 -- 373 MHz 范围内。这些是“Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz”CPU。我现在能找到的最高温度是 78°C,远低于速度通常会回升的温度。

18.04 和 18.10 之间似乎发生了一些变化,导致这种过度的电源管理。有什么想法可以找到正确配置的地方吗?

编辑以添加: rdmsr -a 0x19a给出输出

8
8
8
8
8
8
8
8

请注意,这是在重启后发生的,这似乎是恢复正常 CPU 速度的唯一方法。如果再次出现减速,我会看看它是否会改变。

这是一台 HP 笔记本电脑,如果这很重要的话。链接似乎是指戴尔笔记本电脑,从睡眠状态恢复后速度很慢。在我的情况下,没有睡眠/暂停导致速度缓慢。在更新到 18.10 之前也从未发生过这种情况。

更新:速度再次下降,我重新运行了命令rdmsr。输出与笔记本电脑以正常速度运行时相同:数字 8 重复了 8 次。

如果这种速度变慢的原因不明确,那么是否有至少某种方法可以将速度恢复正常,而无需每次都重新启动?cpufreq-info显示所有 8 个 CPU 都设置为“省电”。我可以依次将每个 CPU 的调节器设置为“性能” cpufreq-set -c 0 -g performance,但速度保持锁定在 316 - 357 MHz 范围内。

另一个更新:我不确定这是否与问题有关,但在速度变慢时,thermald 的行为发生了变化。在我的系统日志中,我看到类似以下内容的行:

thermald[1401]: >>thd_cdev_set_state index:1 state:1 :3:0:0:2147483647 force:0
thermald[1401]: cdev index:1 consecutive call, increment exponentially state 11
thermald[1401]: Set : threshold:96000, temperature:96000, cdev:1(Processor), curr_state:10, max_state:10
thermald[1401]: >>thd_cdev_set_state index:1 state:0 :3:0:0:2147483647 force:0
thermald[1401]: match zone 3 trip 0 clamp_valid 0 clamp 2147483647
thermald[1401]: Erased  [3: 0 2147483647
thermald[1401]: Set : threshold:96000, temperature:95000, cdev:1(Processor), curr_state:9, max_state:10

在此之前,仅cdev:9(intel_pstate)被提及。事实上,最后一行似乎表明它已达到最大值,并且 thermald 已切换到cdev:1(Processor)

thermald[1401]: >>thd_cdev_set_state index:9 state:1 :3:0:0:2147483647 force:0
thermald[1401]: cdev index:9 consecutive call, increment exponentially state 11
thermald[1401]: Set : threshold:96000, temperature:96000, cdev:9(intel_pstate), curr_state:10, max_state:10
thermald[1401]: >>thd_cdev_set_state index:1 state:1 :3:0:0:2147483647 force:0
thermald[1401]: Added zone 3 trip 0 clamp_valid 0 clamp 2147483647
thermald[1401]: Set : threshold:96000, temperature:97000, cdev:1(Processor), curr_state:1, max_state:10

有没有可能不是 intel_pstate 调节器的问题,而是 thermald 的问题?它切换到了不同的冷却方法,并没有切换回/撤消它使用的任何节流?我该如何手动撤消它来检查?bionic 和 cosmic 之间有什么变化,我可以解决这个问题吗?

再更新一次:罪魁祸首肯定是 thermald。我intel_pstate=disable在 中添加了 linux 命令行grub。我不得不在机器上增加更多负载才能使其达到cdev:9(cpufreq)最大状态 12(而 intel_pstate 为 10),但一旦达到,thermaldcdev:1(Processor)又切换到。CPU 再次以较慢的速度锁定,但比 pstate 快 3 倍左右。我尝试的所有方法都无法恢复,即使温度早已回落。

目前的解决方法:我删除了该行

  <CoolingDevice>Processor</CoolingDevice>

来自/etc/thermald/thermal-cpu-cdev-order.xml。仍然不知道为什么自更新以来这又成了一个问题。

相关内容