启用Intel SpeedStep时,Ubuntu非常慢(CPU未全速使用)

我有配备i7处理器和Ubuntu 14.10的戴尔笔记本电脑。 当我在我的BIOS中禁用SpeedStep时,我的计算机非常快,但风扇经常运行,电池快速耗尽。

当我激活SpeedStep时,Ubuntu变得很慢。 我试过将调控器切换到性能没有任何影响。

这就是cpufreq-info显示的所有7个CPU:

analyzing CPU 7: driver: intel_pstate CPUs which run at the same hardware frequency: 7 CPUs which need to have their frequency coordinated by software: 7 maximum transition latency: 0.97 ms. hardware limits: 800 MHz - 3.70 GHz available cpufreq governors: performance, powersave current policy: frequency should be within 3.70 GHz and 3.70 GHz. The governor "performance" may decide which speed to use within this range. current CPU frequency is 1.17 GHz. 

奇怪的是,频率永远不会超过1.2 GHz。 我试过启动firefox或编译一个大项目。

这是lshw的CPU相关输出:

  *-cpu description: CPU product: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz vendor: Intel Corp. physical id: 43 bus info: cpu@0 version: Intel(R) Core(TM) i7-4800MQ CPU @ 2.70GHz slot: SOCKET 0 size: 3581MHz capacity: 3581MHz width: 64 bits clock: 100MHz capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cpufreq configuration: cores=4 enabledcores=4 threads=8 

从Ubuntu 14.04升级到14.10之后我遇到了这个问题。

那么如何让Ubuntu 14.10在需要时全速使用我的CPU呢?

更新:禁用intel_pstate后,无论我做什么,所有CPU都以800 MHz运行。 通过applet或命令行切换调控器无效。

更新:安装cpufreqd/var/log/syslog在循环中获取这些消息:

 Mar 3 13:00:03 scala cpufreqd: cpufreqd_set_profile : Couldn't set profile "Performance High" set for cpu0 (2700000-2700000-performance) Mar 3 13:00:03 scala cpufreqd: cpufreqd_loop : Cannot set policy, Rule unchanged ("none"). 

更新: cat /sys/devices/system/cpu/cpu*/cpufreq/bios_limit为所有CPU打印800000 (800 MHz)。 这个限制来自哪里? 怎么增加呢?

这个答案适用于新发现的BIOS限制CPU频率的原因。

请检查电源适配器和电池的状况。 他们运作正常吗? 电池正常充电吗? 笔记本电脑只能在电池上正常工作吗?

通常,Dell电源会在电源出现问题时强制降低CPU频率和/或不再识别电源适配器。

有一种方法可以绕过包含/ sys / devices / system / cpu / cpu * / cpufreq / bios_limit,但它应该只是作为最后的手段,并且清楚地知道最低级别的保护是禁用。 所以,我们不要去那里。

对于CPU时钟频率控制14.04,默认情况下使用acpi-cpufreq驱动程序,14.10默认使用intel_pstate驱动程序。 有报道称您遇到类似问题。

作为测试,请尝试切换回acpi-cpufreq驱动程序。 保存/ etc / default / grub文件的副本,以防万一:

 sudo cp /etc/default/grub /etc/default/grub.original 

编辑/ etc / default / grub文件作为sudo,并将此参数添加到GRUB_CMDLINE_LINUX_DEFAULT行:

 GRUB_CMDLINE_LINUX_DEFAULT="intel_pstate=disable" 

如果该行上已有其他参数,则添加新参数。 例:

 GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 intel_pstate=disable crashkernel=384M-:128M" 

保存文件后,再更新grub:

 sudo update-grub 

重新启动计算机。

您还可以检查您是否运行了thermald:

 sudo service thermald status 

如果是,只是为了进行快速测试,请将其禁用(注意,您应该在禁用thermald时监控温度):

 sudo service thermald stop 

如果您在某种负载下获得了一些CPU频率增加的能力,那么/etc/thermald/thermal-conf.xml文件可能会出现问题。