ala*_*ain 7 suspend cpufreq kubuntu 15.10
我在联想 Y50-70 上运行 kubuntu 15.10,我有一个非常烦人的 CPU 时钟问题:每当计算机从睡眠状态恢复时,CPU 时钟的最大值较低,而且这种情况不仅发生一次,而且在每次恢复时钟都会变慢,直到它从最初的 3.6 GHz 下降到 ~600 MHz。
alain@alain-Y50-70:~$ sudo -i
[sudo] password for alain:
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 3.60 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 817 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 2.88 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 800 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
80
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
60
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 1.44 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 699 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 1.44 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 605 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~#
Run Code Online (Sandbox Code Playgroud)
我在上面的命令之间让计算机进入睡眠状态。如您所见,首先max_perf_pct
逐步减少,直到达到 40,然后保持 40,但时钟速度继续降低。笔记本电脑插不插电无所谓,温度正常。
我认为这可能与此错误有关:https : //bugzilla.kernel.org/show_bug.cgi?id=90421
最大的问题是我找不到手动将最大时钟设置回 3.6 GHz 的方法。首先我试过cpupower frequency-set -u 3.60GHz
:
root@alain-Y50-70:~# cpupower frequency-set -u 3.60GHz
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 1.44 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 699 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
Run Code Online (Sandbox Code Playgroud)
但这似乎是错误的方式,因为使用了Intel P-State 驱动程序,所以我尝试echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
了没有效果:
root@alain-Y50-70:~# echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
root@alain-Y50-70:~# 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.60 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 800 MHz and 1.44 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency is 700 MHz (asserted by call to hardware).
boost state support:
Supported: yes
Active: yes
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
Run Code Online (Sandbox Code Playgroud)
我也试过performance
州长,但没有成功。
如何将最大时钟频率设置回 3.6 GHz?
您遇到的问题已被多次报告。
请参阅此 bugzilla 错误报告。
该问题已与内核树中的特定提交隔离。该提交也已向后移植到一些以前的稳定内核版本。
然而,真正真正的根本原因是联想 BIOS 问题。引用 linux-pm 电子邮件线程:
BIOS 报告虚假的被动跳闸点值,即 0 摄氏度……为了解决这个虚假的 BIOS,我们应该通过检查跳闸点值来禁用那些无效的跳闸点,
如果您返回一两个版本,您的 Lenovo 将正常工作(已知 4.2.0-19 可以正常工作)。
您的问题与时钟调制(寄存器 0x19A)无关,除非您的电池电量低于 30%(未经证实,但值得怀疑)。
参考资料:
http :
//ubuntuforums.org/showthread.php?t=2316101 奇怪的 cpufreq 缩放问题:无论调节器如何,
当电池电量低于 30%
http://marc.info/? t=145816738700001&r=1&w=2