Difference between revisions of "How to make use of Dynamic Frequency Scaling"

From ThinkWiki
Jump to: navigation, search
(joined notes regarding userspace governor)
(2.6 kernels)
Line 18: Line 18:
 
  set "CONFIG_CPU_FREQ_GOV_POWERSAVE=y"
 
  set "CONFIG_CPU_FREQ_GOV_POWERSAVE=y"
 
  set "CONFIG_CPU_FREQ_GOV_USERSPACE=y" or load module "cpufreq_userspace"
 
  set "CONFIG_CPU_FREQ_GOV_USERSPACE=y" or load module "cpufreq_userspace"
 +
set "CONFIG_CPU_FREQ_GOV_ONDEMAND=y"
 +
 +
since 2.6.10 there is the ondemand governor that does cpu frequency scaling in kernel so
 +
you dont need userspace programs like powernowd etc.
  
since 2.6.10 there is the ondemand governor in the kernel
 
  
 
In Debian kernels it should all be available as modules.  
 
In Debian kernels it should all be available as modules.  

Revision as of 20:25, 5 April 2005

general

Linux supports Dynamic Frequency Scaling for ThinkPads with mobile Pentium III, Pentium 4 and Pentium M processors.

configuring the kernel

2.4 kernels

Todo...

2.6 kernels

You need to enable the cpu frequency scaling for your kernel:

CONFIG_CPU_FREQ=y

The 2.6.x Debian kernel packages have this enabled already.

You need to load a governor:

set "CONFIG_CPU_FREQ_GOV_PERFORMANCE=y"
set "CONFIG_CPU_FREQ_GOV_POWERSAVE=y"
set "CONFIG_CPU_FREQ_GOV_USERSPACE=y" or load module "cpufreq_userspace"
set "CONFIG_CPU_FREQ_GOV_ONDEMAND=y" 

since 2.6.10 there is the ondemand governor that does cpu frequency scaling in kernel so you dont need userspace programs like powernowd etc.


In Debian kernels it should all be available as modules.

  • If you have a Coppermine-piix-smi based Thinkpads like from the A2x, X2x and T2x series you need to enable the speedstep-ich driver in the kernel and load it if it's built as module. You might want to look at this page.
  • If you have a p4-class celeron based Thinkpad like the R40e you might want to look at this page

configuring SpeedStep daemons

Don't forget to enable the userspace governor to have a userspace daemon do the frequency scaling. If it is built as module, load it as cpufreq-userspace. Note that since 2.6.10, there is also the ondemand governor in the kernel, which replaces any userspace daemon for cpu scaling and works very well.

There are plenty of userspace frequency scaling daemons available: