this is obsolete doc -- see http://doc.nethence.com/ instead

Enabling AMD Cool'n'Quiet 

 

Changing the CPU frequency with XEN or Linux 

Make sure the system is running on an AMD CPU, 

grep name /proc/cpuinfo
#lshw -C cpu
#dmidecode -t processor

 

Make sure you’re running a v2.6.7+ kernel, and make sure powernow-k8 is enabled, 

uname -r
#modprobe powernow-k8
dmesg | grep powernow

 

For Linux based Cool’n’Quiet you need /sys/ to be mounted, 

cd /sys/devices/system/cpu/cpu0/cpufreq/
cat scaling_available_frequencies
#echo '800000' > scaling_setspeed

 

For XEN based Cool’n’Quiet make sure the CPU family is =>10 and !=15, 

grep family /proc/cpuinfo

see current CPU cores' frequencies, 

xenpm get-cpufreq-para | grep ^cpuinfo
watch "xenpm get-cpufreq-para | grep ^cpuinfo"

Note. there's also, 

xenpm get-cpuidle-states
xenpm get-cpufreq-states
xenpm get-cpu-topology 

 

Enable Cool’n’Quiet at boot time (XEN or Linux based), 

cd /etc/
ls -l rc.local
cat >> rc.local <<EOF9

 

modprobe powernow-k8
echo -n enabling AMD Cool\'n\'Quiet...
if [[ -f /sys/hypervisor/version/major ]]; then
        xenpm set-scaling-governor ondemand && echo done
        #xenpm set-scaling-governor powersave && echo done
else
        for cpu in \`grep ^processor /proc/cpuinfo | awk '{print \$NF}'\`; do
                cpufreq-set --cpu \$cpu --governor ondemand
        done && echo done
        unset cpu
fi
EOF9

Note. Shell variables and the ` execute marks are escaped. 

Note. Passing through to the dom0 with cpufreq=dom0-kernel doesn't work here. Hence the need for XEN based Cool’n’Quiet if running XEN. 

Note. xenpm's ondemand doesn't work as well as cpufreq's one, depending how you see it: it scales up much faster. 

 

Screen configuration 

cd ~/
# Note. Change the window number accordingly.
# Note. watched command inside (single) quotes because there's a pipe in it.
cat >> .screenrc <<EOF9
screen -t "freqs" 1 watch cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_f
req
screen -t "freqsxen" 2 watch 'xenpm get-cpufreq-para | grep ^cpuinfo'
EOF9

 

References 

http://wiki.ubuntu-fr.org/cpu-frequtils 

http://wiki.xensource.com/xenwiki/xenpm 

http://h2np.net/cpudcc/ 

http://www.deater.net/john/powernowd.html