Hi,
This is my first post on Phoronix. A quick introduction: I'm running a home Linux server 24/7 with openSUSE. Recently I upgraded to a 965 BE (C3 stepping) processor and I'm trying to get the most out of it. Performance wise, but also with the lease amount of power consumption as possible.
I want to start this thread to discuss cpu frequency scaling issues (in combination with under/overvolting and underclocking/overvolting with the AMD Phenom II C3 stepping (because of the C1E hardware implementation and indepedent frequency scaling of the cores).
My aim: lowest idle power consumption as possible, highest overclock when needed (without reboot).
To give it a headstart, some of my findings:
1) I see that the bogomips are not recalculated when doing a cat /proc/cpuinfo when a core is in a different powerstate - with my AMD 4850e it was... Does anybody know why?
2) With k10ctl you can change the frequency and voltage of each core independently. It also support changing the NB voltage and divider. But according to an AMD whitepaper it cannot be changed after booting, behaviour after changing it anyway is unspecified. By the way I wrote a wrapper script for k10ctl.
3) Tip: in a server you can clock the GPU speed and HT speed down to save some considerable amount of watts. All my BIOS setting (I've got an Asus M3A78 Pro) can be found here. It doesn't seem to affect harddisk throughput.
4) Tip: you can use cpufreqd (this is a daemon that uses cpufreq) to set cpufreq governors on different conditions (eg. CPU load or a specific process that is running). You can even use scripts. I used it to overclock my system - with k10ctl - when mencoder is running.
5) cpufreq speeds are not updated when overclocked or underclocked, until a core is disabled and enabled again.
6) Disabling cores (from Linux or BIOS) does not improve power consumption, does anybody know why?
Currently I'm running an underclock script for each multiplier to see what the lowest voltage is for each CPU frequency. Mail me if you want to try it yourself.
This is my first post on Phoronix. A quick introduction: I'm running a home Linux server 24/7 with openSUSE. Recently I upgraded to a 965 BE (C3 stepping) processor and I'm trying to get the most out of it. Performance wise, but also with the lease amount of power consumption as possible.
I want to start this thread to discuss cpu frequency scaling issues (in combination with under/overvolting and underclocking/overvolting with the AMD Phenom II C3 stepping (because of the C1E hardware implementation and indepedent frequency scaling of the cores).
My aim: lowest idle power consumption as possible, highest overclock when needed (without reboot).
To give it a headstart, some of my findings:
1) I see that the bogomips are not recalculated when doing a cat /proc/cpuinfo when a core is in a different powerstate - with my AMD 4850e it was... Does anybody know why?
2) With k10ctl you can change the frequency and voltage of each core independently. It also support changing the NB voltage and divider. But according to an AMD whitepaper it cannot be changed after booting, behaviour after changing it anyway is unspecified. By the way I wrote a wrapper script for k10ctl.
3) Tip: in a server you can clock the GPU speed and HT speed down to save some considerable amount of watts. All my BIOS setting (I've got an Asus M3A78 Pro) can be found here. It doesn't seem to affect harddisk throughput.
4) Tip: you can use cpufreqd (this is a daemon that uses cpufreq) to set cpufreq governors on different conditions (eg. CPU load or a specific process that is running). You can even use scripts. I used it to overclock my system - with k10ctl - when mencoder is running.
5) cpufreq speeds are not updated when overclocked or underclocked, until a core is disabled and enabled again.
6) Disabling cores (from Linux or BIOS) does not improve power consumption, does anybody know why?
Currently I'm running an underclock script for each multiplier to see what the lowest voltage is for each CPU frequency. Mail me if you want to try it yourself.
Comment