powerd doesn't decrease CPU frequency in some cases

Andrey andrey.kosachenko at gmail.com
Sun Dec 23 11:48:35 PST 2007


Thank you for your opinion :o)
I've tried to follow your advice. The only thing I've managed to achieve 
is cutting range of frequency levels from the bottom. Now I've:

# sysctl dev.cpu.0.freq_levels
dev.cpu.0.freq_levels: 2001/35000 2000/35000 1600/25000 1200/16000 800/14000

But the issue itself remained. Look, I mean:
# sysctl dev.cpu.0.freq=2000
dev.cpu.0.freq: 800 -> 2001
and
# sysctl dev.cpu.0.freq
dev.cpu.0.freq: 2001
(should be 2000).

In order to assure myself completely I moved appart all my modification 
from powerd.c and recompiled it. Then I had the following picture:

# cat /etc/rc.conf | grep powerd
powerd_enable="YES"
powerd_flags="-a adaptive -b minimum -v"

# sysctl dev.cpu.0.freq=1600
dev.cpu.0.freq: 1600
# /etc/rc.d/powerd start
idle time > 90%, decreasing clock speed from 1600 MHz to 1200 MHz
idle time > 90%, decreasing clock speed from 1200 MHz to 800 MHz
....
 >> Everything was OK here.
 >> Then I loaded my laptop a bit (started compilation)
....
idle time < 65%, increasing clock speed from 800 MHz to 1600 MHz
idle time < 65%, increasing clock speed from 1600 MHz to 2001 MHz
....
 >> here I aborted compilation
....
idle time > 90%, decreasing clock speed from 2001 MHz to 2000 MHz
idle time > 90%, decreasing clock speed from 2001 MHz to 2000 MHz
idle time > 90%, decreasing clock speed from 2001 MHz to 2000 MHz
idle time > 90%, decreasing clock speed from 2001 MHz to 2000 MHz
... and here it stuck forever


So, I think the issue should be investigated/discussed further...

Rui Paulo wrote:

> I think this is all due to the fact that freq_levels mixes p4tcc, est
> and others. 
> Try adding:
> 
> hint.p4tcc.0.disabled=1
> hint.acpi_throttle.0.disabled=1
> 
> to your /boot/loader.conf
> 
> Regards.
> --
> Rui Paulo
> 
> 

--
Sincerely,
Andrey Kosachenko



More information about the freebsd-acpi mailing list