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