# cpufreq not setting CPU to full speed

## ChazeFroy

I have a Thinkpad T42p 2.0 GHz Centrino laptop.  cpufreq is not setting my CPU to full speed, even though the /etc/cpufreqd.conf file says to do so.  The highest it will go is 1.2 Ghz.

```
[General]

pidfile=/var/run/cpufreqd.pid

poll_interval=2

enable_plugins=programs,acpi_ac,cpu,acpi_battery,acpi_temperature

verbosity=6

[/General]

[Profile]

name=Performance High

minfreq=2000000

maxfreq=2000000

policy=userspace

[/Profile]

[Rule]

name=AC Rule

ac=on

profile=Performance High

[/Rule]

```

I have ACPI enabled in the kernel (2.6.14.2), and all of the CPU frequency scaling drivers are compiled in (performance, powersave, userspace, ondemand, conservative). My default is userspace.  I also have the following options enabled:

```
CONFIG_X86_SPEEDSTEP_CENTRINO=y

CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y
```

```
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

2000000 1800000 1600000 1400000 1200000 1000000 800000 600000
```

Attempting to manually set the CPU frequency with cpufreq-utils also fails.  It never changes away from 1.2 Ghz.  Any ideas?

----------

## dgaffuri

Please, post the output of

```
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
```

and

```
cat /proc/cpuinfo
```

Is there any cpu related error message in dmesg?

----------

## ChazeFroy

No CPU errors in dmesg output.

```
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

2000000 1800000 1600000 1400000 1200000 1000000 800000 600000
```

```
cat /proc/cpuinfo

processor       : 0

vendor_id       : GeniuineIntel

cpu family      : 6

model           : 13

model name      : Intel(R) Pentium(R) M processor 2.00 GHz

stepping        : 6

cpu MHz         : 1199.120

cache size      : 2048 KB

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 2

wp              : yes

flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe est tm2

bogomips        : 2400.73
```

----------

## dgaffuri

You've exactly my CPU and my kernel configuration (I have a Toshiba Tecra M2). I had a problem some time ago due to dynamic frequency not enabled in BIOS (in my case it was stuck at 600 MHz and I had to update BIOS with an undocumented procedure, but it was a Toshiba related problem). Have you checked your settings? I see now you had already posted available freqs, sorry that I've asked for them again.

----------

## ChazeFroy

I upgraded my BIOS to the latest release (Oct 2005) and played with settings in the BIOS.  Nothing seems to help the situation as my CPU is still stuck at a maximum of 1.2 GHz.  Any other ideas?

----------

## ChazeFroy

Also, I am just running vanilla-sources.  What sources are you using, and will that really make a difference?

----------

## dgaffuri

Don't think so, speedstep_centrino has not changed at all in last kernels. I had no problems starting with gentoo 2.6.12 to 2.6.14, currently I'm runnig vanilla 2-6-15-rc2.

----------

## mhornnt

I had a very similar problem with my dell d800, it was stuck running at 600mhz instead of 1.6ghz, and for the longest time i couldnt figure out why. Finally I discovered, at least in my case, that one of the fans around the processor wasnt running, and in response some failsafe kept the proc from runnin anythin faster to help keep it from overheating. I reconnected the fan to get it running again and the problem was taken care off. Not sure if your system may have a similar issue, but figured it might be worth a shot.

----------

## perb

I hope you solved it already but maybe others can use this information.

Try this:

echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

I have this in my local.start, and it works perfect:

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

echo 1 > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/ignore_nice

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

----------

## Henry78

Same problem here, on an 'Core Duo T2500.

I installed cpufreq according to the gentoo-guide. Tried a lot, read all i could find in the forum. But i still can't change my CPU speed to 2 GHz, because "current policy" isn't set right:

```

# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 

2000000

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 

1667000

# cpufreq-info 

cpufrequtils 001: cpufreq-info (C) Dominik Brodowski 2004-2006

Report errors and bugs to linux@brodo.de, please.

analyzing CPU 0:

  driver: centrino

  CPUs which need to switch frequency at the same time: 0

  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, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "ondemand" may decide which speed to use

                  within this range.

  current CPU frequency is 1000 MHz (asserted by call to hardware).

analyzing CPU 1:

  driver: centrino

  CPUs which need to switch frequency at the same time: 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, ondemand, powersave, userspace, performance

  current policy: frequency should be within 1000 MHz and 1.67 GHz.

                  The governor "ondemand" may decide which speed to use

                  within this range.

  current CPU frequency is 1000 MHz (asserted by call to hardware).

```

How to change that?[/code]

----------

## perb

As root try:

cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

----------

## Henry78

already tired this:

```

# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

# cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

# cat /sys/devices/system/cpu/cpu?/cpufreq/scaling_max_freq

1667000

1667000

```

----------

## quat

current Thinkpads have strange issue: if you take out the battery (so you obviously run on AC) makes the top frequencies unavailable.

hth

Kamil

ps. it was checked on Thinkpad X60s and R60e.

----------

## Henry78

It's a HP/Compaq nc8430 here. The strange issue i got with battery, is the unavailability of the keyboard, if i "cold boot" without taking battery and ac out and put it back in (cut off *all* power).

Also there's a friend of mine, who got the same laptop model. He *was* able to get the 2GHz with his Ubuntu installation. Lately i discussed my problem with him and - voila! - now he too is unable to the the 2GHz....

Anybody knows what i can do about that?

-- 

greets Henry

----------

## Henry78

It works now. I recompiled my kernel with addes smbfs support, now everything is fine. Don't know why, and i don't bother...

Thanks for the help!

----------

## Henry78

another reboot, and the problem is back again. i'm quite confused now.

----------

## amand

I had the same problem with my sony vaio : I were not able to change the frequencies as before...

The only solution I have found is to downgrade cpufreqd to the 1.2.3 version...

----------

## jmanko

What is the difference between cpufreqd and cpufrequtils?  I have both installed.

Also, echo 1700000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq worked.

Why initially sets that at boot?

----------

## roadrunner_gs

I have the same problem on my IBM X40.

I manually switched from the "performance" governor to the "ondemand" governor via 

echo ondemand > scaling_governor

But the scaling_cur_freq, scaling_min_freq, scaling_max_freq remained at just 1000000.

Then i manually set the frequencies

echo 600000 > scaling_min_freq

echo 1200000 > scaling_max_freq

echo 1200000 > scaling_cur_freq

and enjoyed the now working speedstep down to 600 MHz while terminating an emerge and the ever-running-einstein@home.

Then i cut off the wall-plug and all i have done was for the trashbin.

scaling_min_freq, scaling_cur_freq, scaling_max_freq where set back to 1000000 and the governor was reset to "performance"

A bite the plate of my table, redid all my previous steps and denied writing permissions for all scaling* where applied and now it works fine both in battery- and wall-plug-mode.

Very strange behaviour indeed.

Now the remaining problem seems to be the "emerge kde" but that should be accomplished soon.

----------

## hug0

Same problems here with a T60 - very confusing, sometimes working, sometimes not.

Any new ideas / solutions?

Cheers, Florian

EDIT

Sorry, I opened a new thread with my specific problem:

https://forums.gentoo.org/viewtopic-t-571868.html

----------

