我在联想 y5070 上运行 Ubuntu Mate 15.10 64 位(内核 4.2.0),该电脑配备 i7-4710HQ CPU。我最近注意到(可能是在最近的 dist-upgrade 之后)某些程序运行速度非常慢。经过一番调查,我发现 intel_pstate 默认切换到“powersave”调节器,当我没有执行任何密集操作时,它会正确地将我的 cpufreq 降低到大约 600 MHz。但是,当我执行密集操作时,它不再增加 cpufreq。
为了解决这个问题,我在以下位置设置了 GOVERNOR="performance":
/etc/init.d/cpufrequtils.
启动后,cpufreq 正确保持在 2.5 GHz 左右,并且调节器正确设置为“性能”。但是,一分钟后,调节器会自动更改回“省电”,cpufreq 再次下降。如果我使用 cpufreq-set 手动设置调节器,它会返回到 2.5 GHz。
我注意到的第二个问题是,每次我挂起并唤醒笔记本电脑时,最大 cpufreq 都会下降一个增量(每次的增量都是相同的):
暂停之前:
current policy: frequency should be within 800 MHz and 3.50 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 2.20 GHz.
第一次唤醒后:
current policy: frequency should be within 800 MHz and 2.10 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.12 GHz.
第二次醒来后:
current policy: frequency should be within 800 MHz and 1.40 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.30 GHz.
ETC。
注意:调速器仍然设置为“性能”。
尝试使用 cpufreq-set 设置 cpufreq 最大值:
for ((i=0;i<$(nproc);i++)); do sudo cpufreq-set -c $i -u 3.50GHz; done
没有效果。
最后,我还尝试在 grub 中禁用 intel_pstate,并将 acpi 配置设置为“性能”;这存在同样的挂起/唤醒问题。
任何见解都将不胜感激!
编辑 1:我试过了这这表明问题可能是时钟调制在唤醒时自动启用,这与 intel_pstate 冲突。实际上,时钟调制似乎已启用,但使用以下命令禁用它:
sudo wrmsr -a 0x19a 0x0
没有明显改变频率,而且我仍然无法改变最大 cpufreq 值。
编辑 2:@DougSmythies 在我的电脑上,这些文件在其他地方,这些是相应的打印输出(我排除了其他 7 个核心的频率,它们是相同的)。另请注意,我目前正在使用 acpi 驱动程序:
cat /sys/devices/system/cpu/cpu*/cpufreq/cpu_min_freq
800000
cat /sys/devices/system/cpu/cpu*/cpufreq/cpu_max_freq
2501000
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq
2501000
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq
800000
我在 /sys/devices 中的任何地方都找不到 intel_pstate 文件。
编辑 3:@DougSmythies 我已经使用 intel_pstate 驱动程序重新启动,并暂停和唤醒了机器。现在核心在性能模式下以大约 2000 的速度运行。根据 cpufreq-info,最大频率为 2.1 GHz;暂停前为 3.5 GHz。以下是您请求的文件的输出(仅适用于 cpu0,它们都相同):
$cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
3500000
$cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
800000
$cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
2100000
$cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
800000
$grep . /sys/devices/system/cpu/intel_pstate/*
/sys/devices/system/cpu/intel_pstate/max_perf_pct:60
/sys/devices/system/cpu/intel_pstate/min_perf_pct:22
/sys/devices/system/cpu/intel_pstate/no_turbo:0
/sys/devices/system/cpu/intel_pstate/num_pstates:28
/sys/devices/system/cpu/intel_pstate/turbo_pct:36
答案1
您可能受到此错误的影响:
https://bugzilla.kernel.org/show_bug.cgi?id=114551
该补丁仅适用于主线内核 v 4.6。在适当的时候,也许它会被移植到 16.04LTS,或者在 2017 年 2 月,它应该会出现在下一个 LTS Enablement Stack 中:
https://wiki.ubuntu.com/Kernel/LTSEnablementStack#Kernel.2FSupport.A16.04.x_Ubuntu_Kernel_Support