我的cpu在一段时间后减速并且没有恢复

有时,我无法重现它(但它经常发生 – 至少每周几次)我的cpu减慢到低于规定的最小值。 这是一分钟前的cpufreq-info输出示例:

  cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009 Report errors and bugs to cpufreq@vger.kernel.org, please. 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.30 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 800 MHz and 3.30 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 610 MHz. analyzing CPU 1: driver: intel_pstate CPUs which run at the same hardware frequency: 1 CPUs which need to have their frequency coordinated by software: 1 maximum transition latency: 0.97 ms. hardware limits: 800 MHz - 3.30 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 800 MHz and 3.30 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 615 MHz. analyzing CPU 2: driver: intel_pstate CPUs which run at the same hardware frequency: 2 CPUs which need to have their frequency coordinated by software: 2 maximum transition latency: 0.97 ms. hardware limits: 800 MHz - 3.30 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 800 MHz and 3.30 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 590 MHz. analyzing CPU 3: driver: intel_pstate CPUs which run at the same hardware frequency: 3 CPUs which need to have their frequency coordinated by software: 3 maximum transition latency: 0.97 ms. hardware limits: 800 MHz - 3.30 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 800 MHz and 3.30 GHz. The governor "powersave" may decide which speed to use within this range. current CPU frequency is 589 MHz. 

问题是它确实减慢了一切。 Firefox变慢,vim的启动时间从150到250ms增加到700ms以上, g++编译速度变慢了三倍等等。

重启修复一切。

从我的系统日志过去几个小时的一些错误行:

  May 17 16:10:53 lati kernel: [ 1421.872755] ACPI Error: Index value 0x0000000000000083 overflows field width 0x7 (20140424/exfldio-343) May 17 16:10:53 lati kernel: [ 1421.872758] ACPI Error: Method parse/execution failed [\NEVT] (Node ffff88040e047258), AE_AML_REGISTER_LIMIT (20140424/psparse-536) May 17 16:10:53 lati kernel: [ 1421.872761] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.ECDV._Q66] (Node ffff88040e044b90), AE_AML_REGISTER_LIMIT (20140424/psparse-536) May 17 16:10:56 lati kernel: [ 1425.907749] ACPI Error: Index value 0x0000000000000083 overflows field width 0x7 (20140424/exfldio-343) May 17 16:10:56 lati kernel: [ 1425.907765] ACPI Error: Method parse/execution failed [\NEVT] (Node ffff88040e047258), AE_AML_REGISTER_LIMIT (20140424/psparse-536) May 17 16:10:56 lati kernel: [ 1425.907794] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.ECDV._Q66] (Node ffff88040e044b90), AE_AML_REGISTER_LIMIT (20140424/psparse-536) May 17 16:12:09 lati kernel: [ 1.925333] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro May 17 16:12:09 lati kernel: [ 2.421037] systemd-udevd[331]: Error calling EVIOCSKEYCODE: Invalid argument May 17 16:12:21 lati gnome-session[2251]: WARNING: Could not parse desktop file tracker-store.desktop or it references a not found TryExec binary May 17 16:12:21 lati gnome-session[2251]: WARNING: Could not parse desktop file tracker-miner-fs.desktop or it references a not found TryExec binary May 17 16:12:51 lati gnome-session[2251]: GLib-CRITICAL: g_environ_setenv: assertion 'value != NULL' failed May 17 17:48:19 lati kernel: [ 5769.576717] systemd-hostnamed[6983]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname! 

我在戴尔E7440,bios版本A14上使用Ubuntu 14.04.2,全新安装,64位。

顺便说一句,即使执行lsb_release ,当我处于这种模式时,也需要大约400ms。

额外信息

  • 我的处理器型号名称:Intel(R)Core(TM)i7-4600U CPU @ 2.10GHz
  • 我的处理器型号:69
  • 它可能只在暂停后发生,但通常不会发生(例如,自从我提出这个问题以来,它只发生过一次)。

额外信息(2)

grep -r . *输出grep -r . * grep -r . * in /sys/class/thermal

  cooling_device0/type:Processor cooling_device0/power/control:auto cooling_device0/power/async:disabled cooling_device0/power/runtime_enabled:disabled cooling_device0/power/runtime_active_kids:0 cooling_device0/power/runtime_active_time:0 cooling_device0/power/runtime_status:unsupported cooling_device0/power/runtime_usage:0 cooling_device0/power/runtime_suspended_time:0 cooling_device0/cur_state:0 cooling_device0/max_state:3 cooling_device1/type:Processor cooling_device1/power/control:auto cooling_device1/power/async:disabled cooling_device1/power/runtime_enabled:disabled cooling_device1/power/runtime_active_kids:0 cooling_device1/power/runtime_active_time:0 cooling_device1/power/runtime_status:unsupported cooling_device1/power/runtime_usage:0 cooling_device1/power/runtime_suspended_time:0 cooling_device1/cur_state:0 cooling_device1/max_state:3 cooling_device2/type:Processor cooling_device2/power/control:auto cooling_device2/power/async:disabled cooling_device2/power/runtime_enabled:disabled cooling_device2/power/runtime_active_kids:0 cooling_device2/power/runtime_active_time:0 cooling_device2/power/runtime_status:unsupported cooling_device2/power/runtime_usage:0 cooling_device2/power/runtime_suspended_time:0 cooling_device2/cur_state:0 cooling_device2/max_state:3 cooling_device3/type:Processor cooling_device3/power/control:auto cooling_device3/power/async:disabled cooling_device3/power/runtime_enabled:disabled cooling_device3/power/runtime_active_kids:0 cooling_device3/power/runtime_active_time:0 cooling_device3/power/runtime_status:unsupported cooling_device3/power/runtime_usage:0 cooling_device3/power/runtime_suspended_time:0 cooling_device3/cur_state:0 cooling_device3/max_state:3 cooling_device4/type:intel_powerclamp cooling_device4/power/control:auto cooling_device4/power/async:disabled cooling_device4/power/runtime_enabled:disabled cooling_device4/power/runtime_active_kids:0 cooling_device4/power/runtime_active_time:0 cooling_device4/power/runtime_status:unsupported cooling_device4/power/runtime_usage:0 cooling_device4/power/runtime_suspended_time:0 cooling_device4/cur_state:-1 cooling_device4/max_state:50 thermal_zone0/mode:enabled thermal_zone0/temp:25000 thermal_zone0/type:acpitz thermal_zone0/power/control:auto thermal_zone0/power/async:disabled thermal_zone0/power/runtime_enabled:disabled thermal_zone0/power/runtime_active_kids:0 thermal_zone0/power/runtime_active_time:0 thermal_zone0/power/runtime_status:unsupported thermal_zone0/power/runtime_usage:0 thermal_zone0/power/runtime_suspended_time:0 thermal_zone0/trip_point_0_temp:107000 thermal_zone0/trip_point_0_type:critical thermal_zone0/policy:step_wise thermal_zone0/passive:0 thermal_zone1/temp:47000 thermal_zone1/type:x86_pkg_temp thermal_zone1/power/control:auto thermal_zone1/power/async:disabled thermal_zone1/power/runtime_enabled:disabled thermal_zone1/power/runtime_active_kids:0 thermal_zone1/power/runtime_active_time:0 thermal_zone1/power/runtime_status:unsupported thermal_zone1/power/runtime_usage:0 thermal_zone1/power/runtime_suspended_time:0 thermal_zone1/trip_point_0_temp:0 thermal_zone1/trip_point_0_type:passive thermal_zone1/trip_point_1_temp:0 thermal_zone1/trip_point_1_type:passive thermal_zone1/policy:step_wise 

问题是否仍然存在?
我急切地想要确认或否认我认为正在发生的事情。

在暂停时钟调制已启用后,该理论以某种方式(怀疑是BIOS问题)。 当前版本的intel_pstate驱动程序与任何时钟调制的使用都不兼容,无论负载如何,总是会将目标pstate驱动到最小。 结果是表观CPU频率保持在最小*调制百分比。 acpi-cpufreq驱动程序与时钟调制一起工作正常,从而产生所需的频率*调制百分比。 (即acpi-cpufreq驱动程序的问题不太明显。)

请进行以下测试:
1.)(每次启动需要一次)

 sudo modprobe msr 

2.)在暂停之前:

 sudo rdmsr -a 0x19a 

3.)暂停后导致CPU频率低:

 sudo rdmsr -a 0x19a 

4.)如果步骤3的结果不是0,则:

 sudo wrmsr -a 0x19a 0x0 

并检查它:

 sudo rdmsr -a 0x19a 

5.)现在CPU频率是否正常?

在这里回复所有输出。

注意:rdmsr和wrmsr包含在msr-tools包中,如果默认安装,我不记得。

编辑:

如果可以的话,关于热交互和pstates的英特尔主题专家也希望输出:

 cd /sys/class/thermal grep -r . *