powerd missing power transitions (sort of)

Kevin Oberman oberman at es.net
Mon Aug 6 15:02:08 PDT 2007


I have noted that, on some occasions, powerd misses AC power
transitions. I run powerd with '-a maximum', but I was seeing the CPU
moving in speed like I was on battery.

The system is a Lenovo T43 with a 2 GHz Pentium-M running current as of
last Tuesday.

I am running Gnome with the Gnome Power Manager, but I don't see any sign
that it touches the frequency,

I started it up with -v and logged the following:
# Disconnected from AC
idle time > 90%, decreasing clock speed from 2000 MHz to 1750 MHz
idle time < 65%, increasing clock speed from 1750 MHz to 2000 MHz
idle time > 90%, decreasing clock speed from 2000 MHz to 1750 MHz
# Plugged in power
now operating on AC power; changing frequency to 2000 MHz
idle time > 90%, decreasing clock speed from 2000 MHz to 1750 MHz
idle time > 90%, decreasing clock speed from 1750 MHz to 1600 MHz
idle time > 90%, decreasing clock speed from 1600 MHz to 1400 MHz
idle time > 90%, decreasing clock speed from 1400 MHz to 1333 MHz
idle time > 90%, decreasing clock speed from 1333 MHz to 1166 MHz
idle time > 90%, decreasing clock speed from 1166 MHz to 1066 MHz
idle time > 90%, decreasing clock speed from 1066 MHz to 932 MHz
idle time > 90%, decreasing clock speed from 932 MHz to 800 MHz
idle time > 90%, decreasing clock speed from 800 MHz to 700 MHz
idle time > 90%, decreasing clock speed from 700 MHz to 600 MHz
idle time > 90%, decreasing clock speed from 600 MHz to 500 MHz
idle time > 90%, decreasing clock speed from 500 MHz to 400 MHz
idle time > 90%, decreasing clock speed from 400 MHz to 300 MHz
idle time < 65%, increasing clock speed from 300 MHz to 500 MHz
idle time < 65%, increasing clock speed from 500 MHz to 700 MHz
idle time < 65%, increasing clock speed from 700 MHz to 932 MHz
idle time < 65%, increasing clock speed from 932 MHz to 1166 MHz
idle time > 90%, decreasing clock speed from 1166 MHz to 1066 MHz
# Unplugged power
idle time > 90%, decreasing clock speed from 1066 MHz to 932 MHz
idle time > 90%, decreasing clock speed from 932 MHz to 800 MHz
idle time > 90%, decreasing clock speed from 800 MHz to 700 MHz
idle time > 90%, decreasing clock speed from 700 MHz to 600 MHz
idle time > 90%, decreasing clock speed from 600 MHz to 500 MHz
idle time > 90%, decreasing clock speed from 500 MHz to 400 MHz
idle time < 65%, increasing clock speed from 400 MHz to 600 MHz
idle time > 90%, decreasing clock speed from 600 MHz to 500 MHz
# Plugged in power
now operating on AC power; changing frequency to 2000 MHz
# After some minutes, unplugged again
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
idle time > 90%, decreasing clock speed from 2000 MHz to 13800 MHz
powerd: error setting CPU frequency 13800: Invalid argument
# Plugged power back in
now operating on AC power; changing frequency to 800 MHz
# Restarted powerd
powerd: using sysctl for AC line status
powerd: using devd for AC line status
now operating on AC power; changing frequency to 2000 MHz

On the first battery to AC transition, it reported the change, but
continued adjusting the system frequency, On the second, it worked
properly and the power stayed at 2000 MHz.

When my system switches to battery, the highest available freq_level
drops from 2000 MHz to 800 MHz. I only see this when powerd is
running. Powerd then got into  a broken mode where it kept trying to
set the CPU to 13800 MHz. This is a bit too fast and it reported an
invalid argument on every attempt to adjust the CPU. 13800 is reported
as the energy used at 800 MHz. It is somehow being picked up incorrectly
as an available CPU frequency,

After this, plugging in the AC raised the CPU speed to maximum of 800
MHz. I had to restart powerd to get back to 2000 MHz.

Any idea what might be going on? A quick look at the code does not offer
me any insights, but it looks like powerd is getting confused by the
changes in max frequency.

It's not exactly a show-stopper, but it would be nice of it worked right
when V7 comes out.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 224 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20070806/f9b9f28a/attachment.pgp


More information about the freebsd-current mailing list