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

Wit*_*tek 5 performance intel cpufreq 14.04

我有一台配备 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.
Run Code Online (Sandbox Code Playgroud)

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

这是与 CPU 相关的输出lshw

 *-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
Run Code Online (Sandbox Code Playgroud)

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

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

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

更新:安装后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").
Run Code Online (Sandbox Code Playgroud)

更新: 为所有 CPUcat /sys/devices/system/cpu/cpu*/cpufreq/bios_limit打印800000(800 MHz)。这个限制从何而来?怎么增加呢?

Dou*_*ies 13

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

请检查电源适配器和电池的状况。它们运行正常吗?电池充电是否正常?笔记本电脑只能靠电池工作吗?

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

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