I used cpufreq, cpufreqd, and k10ctl, wrote some scripts around it and have dynamic frequency scaling from anything between 800 and 4000 MHz.
See this Youtube movie
400 MHz is not stable and anything above 3800 MHz also seems to crash when running mprime, so for now I'm running 3400 MHz max. When using k10ctl to change frequencies the trick is don't take too large steps.
I defines these 'meta P-states':
Code:
MP0 3400 3300 3200 3000 'Fast'
MP1 3000 2800 2000 1000 'Allround'
MP2 1000 1000 1000 800 'Powersave'
I configured cpufreqd to use the 'Powersave' profile for cpu utilisation < 10%, using 'Allround' for 10-80% and 'Fast' for > 80%.
When I increase the meta-P state I first lock to P0 (with cpufreq-set) then I increase the frequencies for P1-3. Then I lock to P3 and also increase the frequency for P0. After that I unlock all frequencies again.
For anyone who is interested in my scripts, just mail me. More info on http://www.ruwebit.net/article/413