From owner-freebsd-stable@FreeBSD.ORG Sun Mar 29 11:54:07 2009 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 761041065675 for ; Sun, 29 Mar 2009 11:54:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from cmail.optima.ua (cmail.optima.ua [195.248.191.121]) by mx1.freebsd.org (Postfix) with ESMTP id CC0068FC1C for ; Sun, 29 Mar 2009 11:54:06 +0000 (UTC) (envelope-from mav@FreeBSD.org) X-Spam-Flag: SKIP X-Spam-Yversion: Spamooborona-2.1.0 Received: from [212.86.226.226] (account mav@alkar.net HELO mavbook.mavhome.dp.ua) by cmail.optima.ua (CommuniGate Pro SMTP 5.2.9) with ESMTPSA id 238761764; Sun, 29 Mar 2009 14:54:05 +0300 Message-ID: <49CF615A.6050304@FreeBSD.org> Date: Sun, 29 Mar 2009 14:54:02 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.19 (X11/20090118) MIME-Version: 1.0 To: Dominic Fandrey References: <1238293386.00093672.1238281804@10.7.7.3> <49CF0803.1070505@FreeBSD.org> <49CF2F8D.6000905@bsdforen.de> <49CF4EB9.60108@FreeBSD.org> <49CF49F5.6010800@bsdforen.de> In-Reply-To: <49CF49F5.6010800@bsdforen.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-stable@freebsd.org Subject: Re: powerd broken X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Mar 2009 11:54:08 -0000 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