在内核为 4.18 的 Ubuntu 18.10 上使用 Thinkpad X1 Carbon 2018(第 6 代)时,我注意到系统即使在 AC 模式下也感觉无响应。
这在 Firefox(但不限于此)中最为明显,其中文本输入、自动完成和悬停效果有一点延迟。我可以使用“性能”调速器,延迟就会消失,但这只是换取风扇几乎不断运行。
在我看来,切换 CPU 频率时会有延迟。此外,我注意到cpupower
无法通过硬件调用显示转换延迟或当前 CPU 频率。
$ sudo 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: Cannot determine or is not supported.
hardware limits: 400 MHz - 4.00 GHz
available cpufreq governors: performance powersave
current policy: frequency should be within 400 MHz and 4.00 GHz.
The governor "powersave" may decide which speed to use
within this range.
current CPU frequency: Unable to call hardware
current CPU frequency: 1.20 GHz (asserted by call to kernel)
boost state support:
Supported: yes
Active: yes
$ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency
0
我正在运行 tlp 及其默认配置。尽管如此,这里是输出tlp-stat -p
:
--- TLP 1.1 --------------------------------------------
+++ Processor
CPU model = Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu0/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu1/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu1/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu2/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu2/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu2/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu3/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu3/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu3/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu4/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu4/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu4/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu4/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu5/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu5/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu5/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu5/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu5/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu6/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu6/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu6/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu6/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu6/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/cpu7/cpufreq/scaling_driver = intel_pstate
/sys/devices/system/cpu/cpu7/cpufreq/scaling_governor = powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_available_governors = performance powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_min_freq = 400000 [kHz]
/sys/devices/system/cpu/cpu7/cpufreq/scaling_max_freq = 4000000 [kHz]
/sys/devices/system/cpu/cpu7/cpufreq/energy_performance_preference = balance_performance
/sys/devices/system/cpu/cpu7/cpufreq/energy_performance_available_preferences = default performance balance_performance balance_power power
/sys/devices/system/cpu/intel_pstate/min_perf_pct = 30 [%]
/sys/devices/system/cpu/intel_pstate/max_perf_pct = 100 [%]
/sys/devices/system/cpu/intel_pstate/no_turbo = 0
/sys/devices/system/cpu/intel_pstate/turbo_pct = 60 [%]
/sys/devices/system/cpu/intel_pstate/num_pstates = 37
x86_energy_perf_policy.cpu0 = performance
x86_energy_perf_policy.cpu0 = HWP_REQ: min
x86_energy_perf_policy.cpu0 = HWP_CAP: low
x86_energy_perf_policy.cpu1 = performance
x86_energy_perf_policy.cpu1 = HWP_REQ: min
x86_energy_perf_policy.cpu1 = HWP_CAP: low
x86_energy_perf_policy.cpu2 = performance
x86_energy_perf_policy.cpu2 = HWP_REQ: min
x86_energy_perf_policy.cpu2 = HWP_CAP: low
x86_energy_perf_policy.cpu3 = performance
x86_energy_perf_policy.cpu3 = HWP_REQ: min
x86_energy_perf_policy.cpu3 = HWP_CAP: low
x86_energy_perf_policy.cpu4 = performance
x86_energy_perf_policy.cpu4 = HWP_REQ: min
x86_energy_perf_policy.cpu4 = HWP_CAP: low
x86_energy_perf_policy.cpu5 = performance
x86_energy_perf_policy.cpu5 = HWP_REQ: min
x86_energy_perf_policy.cpu5 = HWP_CAP: low
x86_energy_perf_policy.cpu6 = performance
x86_energy_perf_policy.cpu6 = HWP_REQ: min
x86_energy_perf_policy.cpu6 = HWP_CAP: low
x86_energy_perf_policy.cpu7 = performance
x86_energy_perf_policy.cpu7 = HWP_REQ: min
x86_energy_perf_policy.cpu7 = HWP_CAP: low
/sys/module/workqueue/parameters/power_efficient = Y
/proc/sys/kernel/nmi_watchdog = 0
+++ Undervolting
PHC kernel not available.
安装的固件是最新的,包括最新的风扇和散热修复:
$ sudo dmidecode | less
BIOS Information
Vendor: LENOVO
Version: N23ET59W (1.34 )
Release Date: 11/08/2018
Address: 0xE0000
答案1
我有一个 Skylake CPU,具体来说是 i5 6200U,并且遇到与您描述的完全相同的症状。经过几个小时摆弄前沿内核、GPU 驱动程序等后,我发现将 intel_pstate=no_hwp 作为内核参数传递可以解决我的问题。
我偶然发现了你的话题,试图弄清楚是否有更多的人经历过这种情况,或者这只是我的单位。