CPU frequency gets stuck at the lowest frequency after resume from suspend (ThinkPad T60p)

Bug #138465 reported by Ev Kontsevoy
70
This bug affects 10 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Won't Fix
Medium
Unassigned
linux-source-2.6.20 (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

Binary package hint: cpufrequtils
Ubuntu Version: 7.04 (Feisty)

I have ThinkPad T60p with Core 2 Duo 2Gz CPU.

When the laptop wakes up after sleeping in standby mode, my CPU frequency gets stuck in the lowest possible mode: 1Gz. I know that this is CPU frequency scaling module who's doing that. I tried to change many different variables: running on AC power vs battery, switching between governors (ondemand, conservative) - nothing helps. It wakes up and does not scale from 1Gz. (I know how to force CPU go up to 2Gz even with conservative governor - I run several instances of glxgears).

Below is the output from cpufreq-info, as you can see it says "frequency should be within 1000 MHz and 1000 MHz"[/I]. It correctly reports hardware max. limit of 2GHz, but cpufreq thinks that the upper allowed frequency limit is only 1Gz!!!

-----------------------------------------------------------------------
cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to <email address hidden>, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: conservative, performance
  current policy: frequency should be within 1000 MHz and 1000 MHz.
                  The governor "conservative" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0 1
  hardware limits: 1000 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 1.67 GHz, 1.33 GHz, 1000 MHz
  available cpufreq governors: conservative, performance
  current policy: frequency should be within 1000 MHz and 1000 MHz.
                  The governor "conservative" may decide which speed to use
                  within this range.
  current CPU frequency is 1000 MHz (asserted by call to hardware).
-----------------------------------------------------------------------

If I reboot everything goes back to normal. CPU scales up and the output above says "should be withtin 1000 MHz and 2 GHz".

I have been trying to fix it myself. For instance I added the following to /etc/default/acpi-support (trying to reload CPU scaling kernel modules on suspend/resume):
MODULES="cpufreq_stats cpufreq_conservative acpi-cpufreq"

It did not help.
Then I tried
sudo cpufreq-set -u 2000000
or
sudo cpufreq-set -u 2GHz
Those did not do anything either - CPU still could not get up to 2Gz.

Also I wet to /sys/devices/system/cpu and run these commands as root:

echo 2000000 > cpu0/cpufreq/scaling_max_freq
echo 2000000 > cpu1/cpufreq/scaling_max_freq

... and nothing happens. Those two files still say 1000000. Normally (after reboot) they report 2000000 and I can write other values into them. At this point I am not sure what else can I try. Obviously I should update wakeup/resume scripts with some commands to bitch-slap cpu frequency scaling module, but I cannot figure out what to do.

Here is my /etc/default/cpufrequtils

-----------------------------------------------------------------------
ENABLE="true"
GOVERNOR="conservative"
MIN_SPEED=1000000
MAX_SPEED=2000000
-----------------------------------------------------------------------

Here is my /etc/modules
-----------------------------------------------------------------------
lp

cpufreq_stats
cpufreq_ondemand
cpufreq_conservative
cpufreq_powersave
acpi-cpufreq # this is what Core 2 Duo needs.

fuse
-----------------------------------------------------------------------

This is very frustrating. I spent 5 hours last night trying to figure this out...

description: updated
description: updated
Revision history for this message
Ev Kontsevoy (biz-kontsevoy) wrote : I found a workaround

I found a workaround - I edited my /etc/modules to exclude all governors. It used to look like:

cpufreq_stats
cpufreq_ondemand
cpufreq_conservative
cpufreq_powersave
acpi-cpufreq

... and now it contains only
acpi-cpufreq

It scales up to 2Ghz again, even after suspend/resume.

Revision history for this message
Ev Kontsevoy (biz-kontsevoy) wrote :

Nope... the previous workaround does not worked. It scaled once, but after next sleep/resume cycle it got stuck at 1Gz again...

Is anyone reading this?

Revision history for this message
Albert Cardona (cardona) wrote :

On a thinkpad, the only way I found out how to have proper suspend/resume working is by to have this:

In file /etc/acpi/suspend.d/10-thinkpad-standby-led.sh append this line at the end:

/etc/init.d/powernowd stop

In file /etc/acpi/resume.d/90-thinkpad-unstandby-led.sh append this line at the end:

/etc/init.d/powernowd start

Perhaps this is relevant to you, since powernowd controls the frequency of the CPU.

Revision history for this message
GChriss (gchriss) wrote :

I can confirm the same behavior on the following Fedora 8 32bit system:

Linux host 2.6.23.1-49.fc8 #1 SMP Thu Nov 8 21:41:26 EST 2007 i686 i686 i386 GNU/Linux

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Core(TM)2 CPU T7400 @ 2.16GHz
stepping : 6
cpu MHz : 2167.000
cache size : 4096 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

However, I have no suggested solutions. Thanks, George

Revision history for this message
Carl-Eric Menzel (duesenklipper) wrote :

I'm seeing the same behavior with the following setup. Processor speed remains fixed at 1000MHz, and cpufreq-info says "current policy: frequency should be within 1000 MHz and 1000 MHz." even though 2000MHz are possible and I'm using the "performance" governor. Other governors give me the same result.

calle@yidaki:~$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 43
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping : 1
cpu MHz : 1000.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_legacy ts fid vid ttp
bogomips : 2010.55
clflush size : 64

processor : 1
vendor_id : AuthenticAMD
cpu family : 15
model : 43
model name : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping : 1
cpu MHz : 1000.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow pni lahf_lm cmp_legacy ts fid vid ttp
bogomips : 2010.55
clflush size : 64

Revision history for this message
GChriss (gchriss) wrote :

I found the following very helpful (still testing):

http://setiathome.berkeley.edu/forum_thread.php?id=43189

gconf-editor may need to installed via yum. -George

Revision history for this message
Launchpad Janitor (janitor) wrote : This bug is now reported against the 'linux' package

Beginning with the Hardy Heron 8.04 development cycle, all open Ubuntu kernel bugs need to be reported against the "linux" kernel package. We are automatically migrating this bug to the new "linux" package. However, development has already began for the upcoming Intrepid Ibex 8.10 release. It would be helpful if you could test the upcoming release and verify if this is still an issue - http://www.ubuntu.com/testing . If the issue still exists, please update this report by changing the Status of the "linux" task from "Incomplete" to "New". We appreciate your patience and understanding as we make this transition. Thanks!

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

The Ubuntu Kernel Team is planning to move to the 2.6.27 kernel for the upcoming Intrepid Ibex 8.10 release. As a result, the kernel team would appreciate it if you could please test this newer 2.6.27 Ubuntu kernel. There are one of two ways you should be able to test:

1) If you are comfortable installing packages on your own, the linux-image-2.6.27-* package is currently available for you to install and test.

--or--

2) The upcoming Alpha5 for Intrepid Ibex 8.10 will contain this newer 2.6.27 Ubuntu kernel. Alpha5 is set to be released Thursday Sept 4. Please watch http://www.ubuntu.com/testing for Alpha5 to be announced. You should then be able to test via a LiveCD.

Please let us know immediately if this newer 2.6.27 kernel resolves the bug reported here or if the issue remains. More importantly, please open a new bug report for each new bug/regression introduced by the 2.6.27 kernel and tag the bug report with 'linux-2.6.27'. Also, please specifically note if the issue does or does not appear in the 2.6.26 kernel. Thanks again, we really appreicate your help and feedback.

Revision history for this message
Christian Convey (christian-convey) wrote :

I'm still getting this problem.

I'm using the current pre-release of 8.10 (as of 25 Sept. 2008), with kernel version:
   Linux socrates 2.6.27-4-generic #1 SMP Wed Sep 24 01:30:51 UTC 2008 i686 GNU/Linux

My hardware is a Dell D830, with an Intel Core2 T9500 processor.

If I sleep the laptop, it refuses to have a CPU speed other than 800 MHz until I reboot.

Changed in linux:
status: Incomplete → New
Revision history for this message
Mark Freeman (markfrman) wrote :

I get this problem on a desktop using a fresh install of Intrepid. CPU is locked at the lowest frequency since original installation. The second cpu's range is correct.
I have a Core2Duo E7200 @ 2.54Ghz and the first cpu is throttled at 1.6Ghz

cpufrequtils 002: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to <email address hidden>, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 1.60 GHz - 2.53 GHz
  available frequency steps: 2.53 GHz, 1.60 GHz
  available cpufreq governors: powersave, userspace, ondemand, conservative, performance
  current policy: frequency should be within 1.60 GHz and 1.60 GHz.
                  The governor "userspace" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz.
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 1.60 GHz - 2.53 GHz
  available frequency steps: 2.53 GHz, 1.60 GHz
  available cpufreq governors: powersave, userspace, ondemand, conservative, performance
  current policy: frequency should be within 1.60 GHz and 2.53 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 1.60 GHz.

Revision history for this message
Chris Rasmussen (novaraz) wrote :

I can confirm this problem on a Thinkpad T60 Core2 T7200 with Ubuntu 8.10 2.6.27-9-generic. At boot, the CPU scales nicely, but when I set the resolution for a second monitor in the gnome preferences, both CPU are set to scale 1000MHz to 1000MHz reported in cpufreq-info.

Changed in linux:
assignee: nobody → ubuntu-kernel-team
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
blakjesus (1liberatedmind) wrote :

I am also experiencing this problem. It is becoming very annoying. Every time i come back to my computer, i have to switch my scaler back to ondemand (it goes to performance mode for some reason) and i have to use the command 'sudo cpufreq-set -d 800000 && sudo cpufreq-set -u 2534000'.

Has a fix been created yet? I searched everywhere and i cannot find anything. My kernel version is 2.6.27-7-generic.

Revision history for this message
Launchpad Janitor (janitor) wrote : Kernel team bugs

Per a decision made by the Ubuntu Kernel Team, bugs will longer be assigned to the ubuntu-kernel-team in Launchpad as part of the bug triage process. The ubuntu-kernel-team is being unassigned from this bug report. Refer to https://wiki.ubuntu.com/KernelTeamBugPolicies for more information. Thanks.

Revision history for this message
Michael A. Phillips (maphilli14) wrote :

T61 on 8.04 Hardy, seems to thrash between min and max values (2.0GHz and 800MHz), even with the policy set to Performance. This happens for both kpowersave and CPU Frequency Scaling Monitor 2.22.2

ARGH!

Revision history for this message
graysky (da-audiophile) wrote :

This sounds like the same issue described here:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/288592

Revision history for this message
Michele (mikelito) wrote :

Confirm the bug for me as well, on an updated 8.10 on a thinkpad T60.
also, this doesn't happen every time I suspend/resume, seems to show up quite randomly.

Revision history for this message
hackel (hackel) wrote :

I'm also seeing this on Jaunty (2.6.28-11-generic) on a Dell M1530. It's inconsistent. It seems like it will suddenly start working for a while, and then turn off again. Trying to change the setting has no effect.
/sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq is stuck at 800000

Revision history for this message
everflux (tklaunchpad) wrote :

I can confirm this behaviour as well with Thinkpad T43. Worked like a charm with Intrepid, and is broken since upgrade to Jaunty. I tried
- clean reinstall
- AC power connected/disconnected
- changed permissions

The settings are correctly present in sys, but they do not have an affect. (For some minutes it works, though. Manual changeing works, then it gets stuck to lowest CPU speed again. Weird.)

Revision history for this message
hackel (hackel) wrote :

This should really be a high-priority bug. Running at 800 Mhz makes my computer practically unusable for certain tasks, and forget multi-tasking! It's extremely frustrating. I'm willing to help out with any amount of debugging that I can provide, just let me know!

Revision history for this message
Michael A. Phillips (maphilli14) wrote :

I've been running Jaunty on my T60p for sometime now and it seems to be a non issue. Also be sure you keep the fan running or the CPU cool. I know if you authorize the CPU Frequency Scaling Monitor 2.26.1 you can maunally set the CPU speed or policy and it works well. Grag a copy of tpfan-admin (thinkwiki) and run it at 100% if you think the CPU's hot.
Let me know your findings. I think it's a heat related issue, not suspend, not on Jaunty at least.

Mike

Revision history for this message
everflux (tklaunchpad) wrote :

I don't know about T60p (yet, will keep an eye on it).
My issue is T43 - worked with intrepid, fails with jaunty. I already checked if it could be temperature related, since that was my first suspect. But it didn't look like that.

If it's temperature related what software is causing this, where can I configure the behavior?

Revision history for this message
atany (ye-gorshkov) wrote :

I can confirm this bug on Dell XPS M1330 using Jaunty upgraded from Intrepid (which was working perfectly).
This happens to me not only after suspend/resume but also after I disconnect AC power and then reconnect it. Frequency is then locked at 800MHz with no related messages in logs.

As it was already pointed out, directly writing max value to cpu{0,1}/cpufreq/scaling_max_freq has no effect.

# uname -a
Linux led 2.6.28-12-generic #43-Ubuntu SMP Fri May 1 19:31:32 UTC 2009 x86_64 GNU/Linux

# cpufreq-info
cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to <email address hidden>, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 800 MHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:1,38%, 2.00 GHz:0,18%, 1.60 GHz:0,18%, 1.20 GHz:0,21%, 800 MHz:98,05% (378)
analyzing CPU 1:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 800 MHz - 2.00 GHz
  available frequency steps: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 800 MHz and 800 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  cpufreq stats: 2.00 GHz:0,62%, 2.00 GHz:0,67%, 1.60 GHz:0,14%, 1.20 GHz:0,17%, 800 MHz:98,40% (535)

Revision history for this message
jrt (jrt-binarycows) wrote :

Follow on from atany:

I also have a Dell M1330 running Jaunty. In addition to atany's findings, I have found that after a suspend/resume or removal of AC power, I can change the frequencies if the power is disconnected. On reconnecting AC power the frequencies revert to 800MHz and I am unable to change them.

See attached transcript of testing (sorry it's a bit long but it is annotated).

J.

Revision history for this message
everflux (tklaunchpad) wrote :

Tested with current karmic dev version, happens there, too.

Revision history for this message
heheman3000 (mizzao) wrote :

I have this problem with just one out of four cores.

cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to <email address hidden>, please.
analyzing CPU 0:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 800 MHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 2.50 GHz, 2.10 GHz, 800 MHz
  available cpufreq governors: userspace, ondemand, performance
  current policy: frequency should be within 800 MHz and 800 MHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
analyzing CPU 1:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 1
  hardware limits: 800 MHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 2.50 GHz, 2.10 GHz, 800 MHz
  available cpufreq governors: userspace, ondemand, performance
  current policy: frequency should be within 800 MHz and 3.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
analyzing CPU 2:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 2
  hardware limits: 800 MHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 2.50 GHz, 2.10 GHz, 800 MHz
  available cpufreq governors: userspace, ondemand, performance
  current policy: frequency should be within 800 MHz and 3.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.
analyzing CPU 3:
  driver: powernow-k8
  CPUs which need to switch frequency at the same time: 3
  hardware limits: 800 MHz - 3.20 GHz
  available frequency steps: 3.20 GHz, 2.50 GHz, 2.10 GHz, 800 MHz
  available cpufreq governors: userspace, ondemand, performance
  current policy: frequency should be within 800 MHz and 3.20 GHz.
                  The governor "ondemand" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz.

Revision history for this message
everflux (tklaunchpad) wrote :

Issue solved with thinkpad T43: BIOS settings reset/bios upgrade. everything fine now.

Revision history for this message
Matthew Lange (matthewlange) wrote :

I had the same problem with mine, where it was pegged at 2800Mhz. ("current policy: frequency should be within 2.80 GHz and 2.80 GHz.")

Try the following: For each of your processor cores:

Core 0:
sudo cpufreq-set -c 0 -d 800Mhz -u 2800Mhz
Core 1:
sudo cpufreq-set -c 1 -d 800Mhz -u 2800Mhz
etc., where 800Mhz is the lowest your CPU can go, and 2800Mhz is the highest, as reported by cpufreq-info.

In this example, this should make cpufreq-info display the following: "...current policy: frequency should be within 800 MHz and 2.80 GHz..."

Revision history for this message
ErikBerglund (a-launchpad-snap-345-blog-no) wrote :

This is also found on a Dell D800 laptop running Ubuntu Server 9.10.

Frequency is always stuck on the lowest (600 MHz).
The only way to disable it is to boot with acpi=off, but that induces other problems, most notably the 'sensors' command no longer works.

Output of uname -a:
Linux walle 2.6.31-19-generic #56-Ubuntu SMP Thu Jan 28 01:26:53 UTC 2010 i686 GNU/Linux

Output of cpufreq-info:
cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Report errors and bugs to <email address hidden>, please.
analyzing CPU 0:
  driver: acpi-cpufreq
  CPUs which need to switch frequency at the same time: 0
  hardware limits: 600 MHz - 1.70 GHz
  available frequency steps: 1.70 GHz, 1.40 GHz, 1.20 GHz, 1000 MHz, 800 MHz, 600 MHz
  available cpufreq governors: conservative, ondemand, userspace, powersave, performance
  current policy: frequency should be within 600 MHz and 600 MHz.
                  The governor "userspace" may decide which speed to use
                  within this range.
  current CPU frequency is 600 MHz (asserted by call to hardware).
  cpufreq stats: 1.70 GHz:0.00%, 1.40 GHz:0.00%, 1.20 GHz:0.00%, 1000 MHz:0.00%, 800 MHz:0.00%, 600 MHz:0.00% (1)

Revision history for this message
ErikBerglund (a-launchpad-snap-345-blog-no) wrote :

Update on my sitation:

I've removed the system fans and replaced them with oversized passive heatsinks.
When the bios doesn't detect the system fans, it disables SpeedStep and locks the CPU frequency at its lowest value.
Re-connecting the fans does not help unless the computer is turned off and a full POST (not the quick-POST) is performed.

In short, this is a hardware/bios problem, not a Linux bug.

Sorry about the confusion.

Revision history for this message
Benn Snyder (benn.snyder) wrote :

This affects me on a System76 PanP5 (Clevo M762TUN) on both Ubuntu and Gentoo, both using 2.6.34 from the Ubuntu kernel PPA and the Gentoo kernel sources, respectively.

Revision history for this message
Brad Figg (brad-figg) wrote : Unsupported series, setting status to "Won't Fix".

This bug was filed against a series that is no longer supported and so is being marked as Won't Fix. If this issue still exists in a supported series, please file a new bug.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.