我买了一台配备相当新 CPU 的笔记本电脑:i7-1185G7。
在全新安装的 Ubuntu 20.20(Linux 5.8.0-33-generic)上,我注意到笔记本电脑速度非常慢。
我研究了其中的intel_pstate
参数/sys/devices/system/cpu/cpu*/cpufreq
并做出了以下观察:
- 默认值
scaling_governor
适用powersave
于所有核心。在这种模式下,CPU 几乎无法使用,因为它使所有核心都保持运行状态,400Mhz
除了短暂的睿频加速(它们会去往4.8GHz
然后返回)。 scaling_governor
将performance
核心设置为 使其以名义运行3GHz
,涡轮增压至4.8GHz
尽可能长的时间,没有任何原因(笔记本电脑空闲),直到达到某个截止值(thermald
这是我的理论)。
CPU有4个物理核心,8个逻辑核心。将 4 个逻辑核心设置为performance
以及 4 个powersave
以 ~1%/min 的速度耗尽电池电量。所以我的电池续航时间约为 1 小时 40 分钟。禁用涡轮增压可以稍微改善这一点。
接下来,我在 BIOS 中禁用了频率缩放,而 Linux 默认使用acpi-cpufreq
。使用此驱动程序,默认情况下所有内核始终处于400MHz
开启状态。我需要自己设置我想要的最小/最大频率。他们通常停留在最低限度。这根本违背了自动频率缩放的目的。
我的问题是:我可以进行纯硬件控制的频率缩放吗?我想禁用这两个驱动程序并让 CPU 做出自己的频率调整决定。有这种可能吗?其次,我应该在哪里最好地报告这种行为,可以说是在intel_pstate
?
答案1
我的全新戴尔 latitude 5420 (2021) 也有问题,具有相同的 CPU (i7-1185G7) 和 Linux。
我通过在系统启动后运行以下命令临时解决了该问题:
sudo rmmod intel_rapl_msr
sudo rmmod processor_thermal_device
sudo rmmod processor_thermal_rapl
sudo rmmod intel_rapl_common
sudo rmmod intel_powerclamp
sudo modprobe intel_powerclamp
sudo modprobe intel_rapl_common
sudo modprobe processor_thermal_rapl
sudo modprobe processor_thermal_device
sudo modprobe intel_rapl_msr