# ACPI only throttling CPU a little bit - not enough!

## Lupin_the_3rd

I have a desktop PC, Pentium 4 2.4 Ghz, 512k, 800Mhz FSB, Hyperthreading is disabled in the Bios.

I've followed the CPU Throttling HOWTO, ( http://gentoo-wiki.com/HOWTO_CPU_Throttling ) and it seems to be working as it should.  The problem is that it is only throttling my 2.4 Ghz CPU down to 2.1 Ghz:

# cpufreq-info

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

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

analyzing CPU 0:

  driver: p4-clockmod

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

  hardware limits: 2.10 GHz - 2.40 GHz

  available frequency steps: 2.10 GHz, 2.40 GHz

  available cpufreq governors: ondemand, performance

  current policy: frequency should be within 2.10 GHz and 2.40 GHz.

                  The governor "ondemand" may decide which speed to use

                  within this range.

  current CPU frequency is 2.10 GHz (asserted by call to hardware).

This intel specifications of my processor (here, on page 75: http://download.intel.com/design/Pentium4/datashts/29864312.pdf ) indicate that the CPU speed can be throttled from 12.5% to 87.5% in increments of 12.5%.

2400 Mhz * 0.875 = 2100 Mhz so it seems I'm only getting the very minimum supported throttling level.  According to the PDF, I should be able to go as much as 2400 Mhz * 0.125 = 300Mhz.

Does anyone know why I'm only seeing the smallest increment?  Or how to increase the throttling percentage?

Thanks in advance!!

----------

## ksool

You should be able to see all your available frequencies through 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'. Did you edit /etc/cpufreqd.conf? Are you using any sort of applet or command to set the frequency manually? cpufreqd.conf is the config that lets you set the default rules (what govenor to use on battery, when playing a movie, when temperature is between whatever,...).

----------

## Lupin_the_3rd

 *krs1ars wrote:*   

> You should be able to see all your available frequencies through 'cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies'.

 

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

2100000 2400000

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

2100000

I tried cat'ing a new value (1200000) into /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq as root but it gave me an access denied, so apparently you can't tell it the min speed that way.

 *krs1ars wrote:*   

> Did you edit /etc/cpufreqd.conf? Are you using any sort of applet or command to set the frequency manually? cpufreqd.conf is the config that lets you set the default rules (what govenor to use on battery, when playing a movie, when temperature is between whatever,...).

 

I didn't touch the /etc/cpufreqd.conf file.  I'm using the "on demand" governor listed in the kernel.  Its supposed to set the CPU to the lowest available speed, and increase speed only when cpu utilization reaches 100%.  It appears to be working - keeps it at 2100 and when I start compiling something, it increases to 2400.

What I'm trying to figure out is why are 2100 and 2400 the only available speed settings when the intel PDF file I referenced says otherwise.  I'd like to reduce CPU speed to something below 1000 mhz when idle.

----------

## ksool

That seems some how related to the kernel module. Did you install it into the kernel or are you using it as a module? You might want to try one of the other kernel options (if you used p4, try the one for pentium m,...).

Also, do you have acpi working? 

As a last resort, you could try the newer release of cpufreqd (2.2.1). I think the one in portage is 2.1.1.

----------

## Lupin_the_3rd

acpid is running and I'm using the p4 kernel module.  It's compiled into the kernel, not loaded as a module.  Again, I followed all the steps in http://gentoo-wiki.com/HOWTO_CPU_Throttling and it's working fine - just not enough speed options.

----------

## frits

I just got acpi working, (3.2GHz prescott now idling at 400MHz).  In addition to the HowTo guide, I changed a bios acpi option for the duty cycle, setting it to the lowest value (12.5%).  Hope that helps.

----------

