You are not logged in.
EDIT: After a search that I should have done before I wrote this post, I found this topic: https://bbs.archlinux.org/viewtopic.php?pid=765145. Apparently this is a problem with the kernel module (p4-clockmod). Feel free to delete this topic... couldn't find a self-deletion option.
Hello all,
I'm trying to use the cpufreq daemon to automatically throttle my CPU frequency and save some power. I followed most of the directions on the wiki page for [wiki]cpufrequtils[/wiki] and believe I have everything setup correctly. My problem is that the ondemand governor absolutely will not function correctly. After double checking my settings to make sure I had the daemon and conf files setup correctly, I decided to snoop around in the kernel log, because I knew that the ondemand governor was a kernel module. I came across this troubling error message:
Jul 21 16:05:52 folly kernel: ondemand governor failed, too long transition latency of HW, fallback to performance governor
Has anyone run across this before? I'm running a couple of Intel Pentium-4 3.4 GHz processors (several years old).
Everything I did before discovering the log message:
1. Installed cpufrequtils with pacman -S cpufrequtils
2. Added my processor's cpu-frequency driver (p4-clockmod) and the module for my desired governor (ondemand) to the MODULES array in /etc/rc.conf:
MODULES=( p4-clockmod cpufreq_ondemand !snd-pcsp !snd-hda-intel )
3. Edited /etc/conf.d/cpufreq to use the ondemand governor with no explicit limits on CPU frequency:
#configuration for cpufreq control
# valid governors:
# ondemand, performance, powersave,
# conservative, userspace
governor="ondemand"
# limit frequency range (optional)
# valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq="2.25GHz"
#max_freq="3GHz"
# use freq to set up the exact cpu frequency using it with userspace governor
#freq=
4. Added the cpufreq daemon to the DAEMONS array in /etc/rc.conf:
DAEMONS=(syslog-ng !netfs @crond @hal @net-profiles @alsa @sshd @cpufreq)
5. Rebooted to run the daemon, which runs fine, it just won't switch to ondemand (not even manually using cpufreq-set -g ondemand)
Last edited by mws (2010-07-22 20:45:02)
Offline
I think the reason for this is the lack of frequency scaling support on P4 CPUs. I have one of these running in a windows box and I've never seen it clocking down. It can only slow itself down by clock modulation (idling every n-th clocktick) which is a very uneffective way powersaving and speed wise.
Offline
Interesting. I did a little bit of googling on this, and it appears you are correct.
This person (http://paulsiu.wordpress.com/2007/06/23 … e-battery/) did a little bit of ad-hoc testing and found that there were no power savings using ODCM (on demand clock modulation).
It looks like whoever patched the p4-clockmod module to bump up the latency to disable ondemand frequency scaling knew what they were doing
EDIT: Found another good article that compares and contrasts different power-saving/frequency modulation methods for Intel processors: http://ixbtlabs.com/articles2/intel-thermal-features/
Last edited by mws (2010-07-22 20:56:54)
Offline
P4-clockmod always had a high latency when doing its changes. It's just a recent change in the ondemand and conservative governors that bail out for modules that have way too high latency.
BTW: Some P4 CPUs will do speedstepping with acpi-cpufreq. I have some Supermicro servers with P4 prescott CPUs in them that do speedstepping using that module. Be aware that frequency detection can be extremely crappy, I disabled powersaving on some servers because acpi-cpufreq would only detect half the clock frequency due to broken BIOS.
Offline