Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Mar 2009 14:54:02 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        Dominic Fandrey <kamikaze@bsdforen.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: powerd broken
Message-ID:  <49CF615A.6050304@FreeBSD.org>
In-Reply-To: <49CF49F5.6010800@bsdforen.de>
References:  <1238293386.00093672.1238281804@10.7.7.3>	<49CF0803.1070505@FreeBSD.org> <49CF2F8D.6000905@bsdforen.de> <49CF4EB9.60108@FreeBSD.org> <49CF49F5.6010800@bsdforen.de>

next in thread | previous in thread | raw e-mail | index | archive | help
Dominic Fandrey wrote:
> Alexander Motin wrote:
>> Dominic Fandrey wrote:
>>> Alexander Motin wrote:
>>>> Dominic Fandrey wrote:
>>>>> Since I updated to the 7.2 prerelease, powerd is broken.
>>>>>
>>>>>> uname -a
>>>>> FreeBSD mobileKamikaze.norad 7.2-PRERELEASE FreeBSD 7.2-PRERELEASE #0:
>>>>> Tue Mar 24 07:57:30 CET 2009   
>>>>> root@mobileKamikaze.norad:/usr/obj/HP6510b/amd64/usr/src/sys/HP6510b
>>>>> amd64
>>>>>
>>>>> It increases the CPU frequency very aggressively in adaptive mode.
>>>>> That means full speed with a system load below 1%. I have to use the
>>>>> following nonsensical powerd_flags to make it work sensibly:
>>>>> -a adaptive -b minimum -i 95 -r 99
>>>>>
>>>>> The system is a Core2 Duo, if that is of any help.
>>>> Run powerd in foreground with -v option to get it's work trace. If it
>>>> reaches full speed, there must be some reason to do it.
>>>>
>>>> Updated powerd indeed may behave a bit more aggressively (especially in
>>>> new hiadaptive mode, default for AC power). But it was made several
>>>> months ago and nobody have complained yet. I am personally using it on
>>>> 8-CURRENT on my Core2Duo laptop every day.
>>>>
>>> # grep powerd /etc/rc.conf
>>> powerd_enable="YES"
>>> #powerd_flags="-a adaptive -b minimum -i 95 -r 99"
>>> powerd_flags="-a adaptive -b minimum -v"
>>> # rcrestart powerd powerd not running?
>>> Starting powerd.
>>> powerd: using sysctl for AC line status
>>> powerd: using devd for AC line status
>>> load  77%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  74%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  78%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  79%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  65%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  72%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> load  76%, current freq 2400 MHz ( 0), wanted freq 2400 MHz
>>> ...
>>>
>>> The real load was between 3 and 7 % while these were recorded.
>>>
>>> Note that I use the normal/old adaptive mode.
>> Reason is not in algorithm. Reason is in reporting so high load
>> (65-79%). Run this test please at the same conditions to understand
>> what's going on there:
>>
>> sysctl kern.cp_times && sleep 1 && \
>> sysctl kern.cp_times && sleep 1 && \
>> sysctl kern.cp_times && sleep 1 && \
>> sysctl kern.cp_times
>>
> 
> Measurings done with cpu speed set to 800MHz with ~6% CPU load.
> 
> # while sleep 1; do sysctl kern.cp_times; done
> kern.cp_times: 27709 1 14989 900764 1019830 122302 0 34956 2705 1802746
> kern.cp_times: 27711 1 14989 900835 1019891 122308 0 34959 2705 1802871
> kern.cp_times: 27711 1 14991 900914 1019944 122316 0 34960 2705 1802996
> kern.cp_times: 27712 1 14993 900992 1019997 122328 0 34966 2705 1803112
> 
> A more convinient output:
> # oldtimes=$(sysctl -n kern.cp_times); while sleep 1; do times=$(sysctl -n kern.cp_times); for time in $times; do printf "%8s" $(($time - ${oldtimes%% *})); oldtimes=${oldtimes#* }; done; echo; oldtimes=$times; done
>        0       0       3      66      64      10       0       3       0     121
>        1       0       3      78      56       7       0       8       0     122
>        1       0       4      64      68      23       0       4       0     111
>        2       0       2      85      56       7       0      12       0     126

It means that one of your CPUs spent most of it's time in interrupt 
processing and so far from idle. What does `top -P` shows you? Where 
have you seen that ~6% CPU load?

-- 
Alexander Motin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?49CF615A.6050304>