F14 cpuspeed / ondemand broken?

Steven Haigh netwiz at crc.id.au
Fri Dec 31 10:01:34 UTC 2010


Sorry - I think I dropped the ball on this.... Comments inline...

On 27/12/2010 12:50 AM, "Jóhann B. Guðmundsson" wrote:
> On 12/24/2010 05:59 AM, Steven Haigh wrote:
>> Anyone have any ideas on this? :\
>
> BIOS/platform issueis a common cause for the problem you are describing.
>
> First is to see what scaling frequency are offered and you can do so by
> running...
>
> "cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies"

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
350000 700000 1050000 1400000 1750000 2100000 2450000 2800000

This looks good. From 350Mhz to 2.8Ghz.

> Next is to check what bios_limit the kernel sees and you can do so by
> running...
>
> "cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit".

# cat /sys/devices/system/cpu/cpu0/cpufreq/bios_limit
cat: /sys/devices/system/cpu/cpu0/cpufreq/bios_limit: No such file or 
directory

> If "bios limit" reports the highest available scaling frequency while
> running plugged in and the lowest available scaling frequency when
> unplugged as in running on battery it is not the culprit.
>
> Just run "watch -n1 "cat
> /sys/devices/system/cpu/cpu*/cpufreq/bios_limit"" and plug/unplug/plug
> on your laptop and the frequency should change from highest to lowest to
> highest again.

This is a desktop machine - I can't easily unplug it ;)

> If it does not change frequency on battery or on AC or at specific temp
> or with a specific AC adapter you need to upgraded your bios to the
> latest for your manufacturer and search for SpeedStep, CPU frequency,
> P-state or power management related options ( often there are some knobs
> there that need to be set to "performance" ) in the bios and try
> changing it.

I might take a look at this... From memory it's an ASUS mainboard from a 
system that they produce switched into a rackmount case...

> If turning all the bios knobs from "power save" or similar to
> "performance" or similar does not change the bios_limit you can override
> it by adding "processor.ignore_ppc=1" to the kernel line in grub or run
> "echo 1 > /sys/module/processor/parameters/ignore_ppc" to tweak it
> during runtime however be aware that there must be a reason why the
> vendor/OEM is limiting your frequency in the first place.

I should clarify this as I may not have explained it correctly. 
Monitoring the frequency in /proc/cpuinfo, I can see that without 
cpuspeed started, I am at 2.8Ghz. This is expected.

When I start cpuspeed, the CPU drops to 350Mhz. Again, what we expected.

The bad thing is that the CPU never comes out of running at 350Mhz under 
load. The CPU will stay at 350Mhz until the modules are removed via rmmod.

> If "bios_limit" is not the cause for this start by trying the latest
> kernel versions for .35 .36 and .37 in koji and see if it's fixed in any
> of them if not you will need to file a bug report and make sure the
> kernel is compiled with CPU_FREQ_DEBUG=y and you boot with
> "cpufreq.debug=7" or run "echo 7 >
> /sys/module/cpufreq/parameters/debug" to tweak it during runtime and then
> attach "dmesg > dmesg.txt" along with the output from "for x in
> /sys/devices/system/cpu/cpu0/cpufreq/*;do echo $x;cat $x;done && for x
> in /sys/devices/system/cpu/cpu0/cpufreq/ondemand/*;do echo $x;cat
> $x;done" to your report which should provide the maintainer with
> sufficient info to start working on your report.
>
> Also take a look at various commands that come with the cpufrequtils
> package like cpufreq-info etc..

# cpufreq-info
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to cpufreq at vger.kernel.org, please.
analyzing CPU 0:
   driver: p4-clockmod
   CPUs which run at the same hardware frequency: 0
   CPUs which need to have their frequency coordinated by software: 0
   maximum transition latency: 10.00 ms.
   hardware limits: 350 MHz - 2.80 GHz
   available frequency steps: 350 MHz, 700 MHz, 1.05 GHz, 1.40 GHz, 1.75 
GHz, 2.10 GHz, 2.45 GHz, 2.80 GHz
   available cpufreq governors: ondemand, userspace, performance
   current policy: frequency should be within 350 MHz and 350 MHz.
                   The governor "performance" may decide which speed to use
                   within this range.
   current CPU frequency is 350 MHz (asserted by call to hardware).
analyzing CPU 1:
   driver: p4-clockmod
   CPUs which run at the same hardware frequency: 1
   CPUs which need to have their frequency coordinated by software: 1
   maximum transition latency: 10.00 ms.
   hardware limits: 350 MHz - 2.80 GHz
   available frequency steps: 350 MHz, 700 MHz, 1.05 GHz, 1.40 GHz, 1.75 
GHz, 2.10 GHz, 2.45 GHz, 2.80 GHz
   available cpufreq governors: ondemand, userspace, performance
   current policy: frequency should be within 350 MHz and 350 MHz.
                   The governor "performance" may decide which speed to use
                   within this range.
   current CPU frequency is 350 MHz (asserted by call to hardware).

Note that cpufreq-info says that it is using the performance governor - 
however in /etc/sysconfig/cpuspeed, I have governor=ondemand.

Extract from /etc/sysconfig/cpuspeed:
DRIVER=p4-clockmod
GOVERNOR=ondemand
MAX_SPEED=
MIN_SPEED=
UP_THRESHOLD=
DOWN_THRESHOLD=
IGNORE_NICE=0

-- 
Steven Haigh

Email: netwiz at crc.id.au
Web: http://www.crc.id.au
Phone: (03) 9001 6090 - 0412 935 897
Fax: (03) 8338 0299


More information about the test mailing list