I have a Dell notebook with i7 processor and Ubuntu 14.10. When i disable SpeedStep in my BIOS my computer is very fast but the fan runs very often and the battery gets empty fast.
When I activate SpeedStep, then Ubuntu gets very slow. I have tried switching the governor to performance with no effect.
This is what cpufreq-info shows for all 7 CPUs:
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.
Strange thing is the frequenccy never goes above 1.2 GHz. I have tried starting firefox or compiling a big project.
This is the CPU related output of 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
I got this issue after upgrading from Ubuntu 14.04 to 14.10.
So how to get Ubuntu 14.10 to use my CPU on full speed when needed?
Update: After disabling intel_pstate
all CPUs run at 800 MHz no matter what I do. Switching governor by applet or command line has no effect.
Update: After installing cpufreqd
, /var/log/syslog
gets these messages in a loop:
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").
Update: cat /sys/devices/system/cpu/cpu*/cpufreq/bios_limit
prints 800000
(800 MHz) for all CPUs. Where does this limit come from? How to increase it?
This answer applies to the newly discovered reason of the BIOS limiting the CPU frequency.
Please check the condition of your power adapter and your battery. Are they functioning normally? Is the battery charging normally? Does the Laptop work O.K. on battery only?
Typically, Dell bios forces low CPU frequency when something is wrong with the power and / or it no longer recognizes the power adapter.
There is a way to by-pass the inclusion of the /sys/devices/system/cpu/cpu*/cpufreq/bios_limit, but it should only be done as a very last resort and with clear knowledge that the lowest level protection is being disabled. So let's not go there yet.
For CPU clock frequency governing 14.04 used the acpi-cpufreq driver by default and 14.10 uses intel_pstate driver by default. There are reports of issues similar what you are experiencing.
As a test, please try switching back to the acpi-cpufreq driver. Save a copy of your /etc/default/grub file, just in case:
Edit, as sudo, your /etc/default/grub file and add this parameter to the GRUB_CMDLINE_LINUX_DEFAULT line:
If there are already other parameters on that line, then add the new one. Example:
After you save the file, then update grub:
Re-boot the computer.
You could also check if you have thermald running:
And if yes, and just for a quick test, disable it (Note you should monitor temperatures when thermald is disabled):
If you then get some ability for the CPU frequency to increase under significant load, then something is likely wrong with your /etc/thermald/thermal-conf.xml file.