Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Re: powerd and increase in energy need

145 views
Skip to first unread message

Brandon Gooch

unread,
Mar 20, 2012, 7:49:00 PM3/20/12
to Matthias Gamsjager, freebsd...@freebsd.org
On Tue, Mar 20, 2012 at 3:41 PM, Matthias Gamsjager
<mgams...@gmail.com> wrote:
> Hi,
>
> my zfs nas has an Asus p5e motherboard (x38 chip) and an intel q9300 (quad
> core 2,5Ghz) processor with all the energy save setting enabled in the
> bios. Today I connected the power cord to a voltcraft energy meter to see
> how much energy the whole system needs in idle mode.
>
> I found out that with powerd running the cpu get clocked down to 499 mhz
> with is nice. The funny thing is that this doesn't decrease the amount of
> watts the machine need. 2,5ghz or 499mhz doen't matter at all. It gets even
> funnier. With powerd running the systems actually needs 4 watts more then
> without powerd running.
>
> Isn't the whole point of powerd to to decease the energy needs of a
> machine? or is it utterly broken with this cpu generation?

You probably want to check out the following article on the FreeBSD wiki:

http://wiki.freebsd.org/TuningPowerConsumption

The low-power states should be available to you after following the
configuration guide.

-Brandon
_______________________________________________
freebsd...@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stabl...@freebsd.org"

John

unread,
Mar 20, 2012, 8:02:02 PM3/20/12
to Matthias Gamsjager, freebsd...@freebsd.org
>my zfs nas has an Asus p5e motherboard (x38 chip) and an intel q9300 (quad
>core 2,5Ghz) processor with all the energy save setting enabled in the
>bios. Today I connected the power cord to a voltcraft energy meter to see
>how much energy the whole system needs in idle mode.
>
>I found out that with powerd running the cpu get clocked down to 499 mhz
>with is nice. The funny thing is that this doesn't decrease the amount of
>watts the machine need. 2,5ghz or 499mhz doen't matter at all. It gets even
>funnier. With powerd running the systems actually needs 4 watts more then
>without powerd running.
>
>Isn't the whole point of powerd to to decease the energy needs of a
>machine? or is it utterly broken with this cpu generation?

Powerd does decrease energy on my more modern hardware. This machine is used
for backups and is idle much of the time. It runs Freebsd 8.3-Prerelease with
the turbo-boost patch on an i5-650 in an intel DH55HC motherboard.

The following power measurements were made with a Kill-A-Watt meter.

91w while doing a compile, dev.cpu.0.freq: 3193 (turbo boost enabled)
81w compile complete, disks quiet, top reports between 99.9 and 100% idle
dev.cpu.0.freq: 3193
71w idle for several seconds, powerd running in hiadaptive mode,
dev.cpu.0.freq: 1197


sysctl dev.cpu |grep cx
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C2
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 259us

sysctl dev.cpu |grep freq ~
dev.cpu.0.freq: 1197
dev.cpu.0.freq_levels: 3193/9875 3192/9125 3059/8250 2926/7500 2793/6875 2660/6250 2527/5750 2394/5250 2261/4750 1197/2750

/etc/rc.conf
powerd_flags="-n hadp"
performance_cx_lowest="C2"
economy_cx_lowest="C2"
performance_cpu_freq="HIGH"

John Theus
TheUs Group
TheUsGroup.com

Matthias Gamsjager

unread,
Mar 21, 2012, 3:43:39 AM3/21/12
to John, freebsd...@freebsd.org
I will give these setting a try thx..

Kevin Oberman

unread,
Mar 21, 2012, 12:34:27 PM3/21/12
to Matthias Gamsjager, freebsd...@freebsd.org, John
If you are trying to reduce power consumption, why are you limiting Cx
states to C2 (which save little) and not C3 (which will save a LOT of
power when the CPU is not heavily loaded).

If it is due to the system hanging, it is almost certainly because you
have throttling enabled. Throttling, either by the use of TCC (also
called P4TCC) or the older, externally implemented throttling
mechanism, is a BAD BAD THING! I have complained for years about it
being the default. It is intended for thermal control, not power
management. The power savings will be negligible and, in combination
with deep sleep modes (Cx > 2) can and do result in the CPU going into
deep sleep and never waking up.

You can (and should) disable them in /boot/loader.conf with:
# Disable CPU throttling
hint.p4tcc.0.disabled=1
hint.acpi_throttle.0.disabled=1

This should greatly reduce the large number of "frequencies"
available, but they will be the ones provided by EST.which really do
reduce power consumption. (I put frequencies in quotation marks
because throttling does not really change the clock speed. It simply
skips 'N' of every 8 clock cycles. Still, compared to C3 and higher,
EST is a minor power savings.

Just following the recommendations on the power management web page is
the way to go.
--
R. Kevin Oberman, Network Engineer
E-mail: kob...@gmail.com

Olivier Smedts

unread,
Mar 21, 2012, 12:57:14 PM3/21/12
to Kevin Oberman, Matthias Gamsjager, freebsd...@freebsd.org, John
2012/3/21 Kevin Oberman <kob...@gmail.com>:
> If you are trying to reduce power consumption, why are you limiting Cx
> states to C2 (which save little) and not C3 (which will save a LOT of
> power when the CPU is not heavily loaded).

Jumping up on this but I don't know if that's related to his reasons
to not use C3. Mine are simple :
# sysctl dev.cpu | grep temperature
dev.cpu.0.temperature: 39,0C
dev.cpu.1.temperature: 40,0C
dev.cpu.2.temperature: 36,0C
dev.cpu.3.temperature: 36,0C
dev.cpu.4.temperature: 41,0C
dev.cpu.5.temperature: 41,0C
dev.cpu.6.temperature: 36,0C
dev.cpu.7.temperature: 36,0C
# sysctl hw.acpi.cpu.cx_lowest=C3
hw.acpi.cpu.cx_lowest: C2 -> C3
# sysctl dev.cpu | grep temperature
dev.cpu.0.temperature: 44,0C
dev.cpu.1.temperature: 44,0C
dev.cpu.2.temperature: 40,0C
dev.cpu.3.temperature: 40,0C
dev.cpu.4.temperature: 46,0C
dev.cpu.5.temperature: 46,0C
dev.cpu.6.temperature: 41,0C
dev.cpu.7.temperature: 41,0C
# sysctl hw.acpi.cpu.cx_lowest=C2
hw.acpi.cpu.cx_lowest: C3 -> C2
# sysctl dev.cpu | grep temperature
dev.cpu.0.temperature: 40,0C
dev.cpu.1.temperature: 40,0C
dev.cpu.2.temperature: 36,0C
dev.cpu.3.temperature: 36,0C
dev.cpu.4.temperature: 42,0C
dev.cpu.5.temperature: 42,0C
dev.cpu.6.temperature: 36,0C
dev.cpu.7.temperature: 36,0C

Only 1-2 seconds between each command, no current load. As you can
see, when I engage C3 states, the CPU temperature increases by 4-5°C.
I expected it to drop.

This is with :
# sysctl dev.cpu | grep freq
dev.cpu.0.freq: 2933
dev.cpu.0.freq_levels: 2933/95 2799/95 2266/75 1733/56 1199/39
# grep perf /etc/rc.conf
performance_cx_lowest="C2"
performance_cpu_freq="HIGH"
# grep hint /boot/loader.conf
hint.p4tcc.0.disabled=1
hint.acpi_throttle.0.disabled=1
# dmesg | head -n 13 | tail -n 9
FreeBSD 9.0-STABLE #0 r233000M: Thu Mar 15 12:30:27 CET 2012
ro...@zozo.afpicl.lan:/usr/obj/usr/src/sys/CORE amd64
CPU: Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz (2793.04-MHz K8-class CPU)
Origin = "GenuineIntel" Id = 0x106e5 Family = 6 Model = 1e Stepping = 5
Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
Features2=0x98e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,POPCNT>
AMD Features=0x28100800<SYSCALL,NX,RDTSCP,LM>
AMD Features2=0x1<LAHF>
TSC: P-state invariant, performance statistics

I tried with and without powerd and there's no noticeable difference,
so I don't use it. I also tried with and without
performance_cpu_freq="HIGH" in /etc/rc.conf (without, dev.cpu.0.freq
is 2799 so I don't think TurboBoost is enabled in this case).
--
Olivier Smedts                                                 _
                                        ASCII ribbon campaign ( )
e-mail: oli...@gid0.org        - against HTML email & vCards  X
www: http://www.gid0.org    - against proprietary attachments / \

  "Il y a seulement 10 sortes de gens dans le monde :
  ceux qui comprennent le binaire,
  et ceux qui ne le comprennent pas."

Luigi Rizzo

unread,
Mar 21, 2012, 1:20:11 PM3/21/12
to Kevin Oberman, Matthias Gamsjager, freebsd...@freebsd.org, John
On Wed, Mar 21, 2012 at 09:32:47AM -0700, Kevin Oberman wrote:
..
> If you are trying to reduce power consumption, why are you limiting Cx
> states to C2 (which save little) and not C3 (which will save a LOT of
> power when the CPU is not heavily loaded).
>
> If it is due to the system hanging, it is almost certainly because you
> have throttling enabled. Throttling, either by the use of TCC (also
> called P4TCC) or the older, externally implemented throttling
> mechanism, is a BAD BAD THING! I have complained for years about it
> being the default. It is intended for thermal control, not power
> management. The power savings will be negligible and, in combination
> with deep sleep modes (Cx > 2) can and do result in the CPU going into
> deep sleep and never waking up.
>
> You can (and should) disable them in /boot/loader.conf with:
> # Disable CPU throttling
> hint.p4tcc.0.disabled=1
> hint.acpi_throttle.0.disabled=1
>
> This should greatly reduce the large number of "frequencies"
> available, but they will be the ones provided by EST.which really do
> reduce power consumption. (I put frequencies in quotation marks
> because throttling does not really change the clock speed. It simply
> skips 'N' of every 8 clock cycles. Still, compared to C3 and higher,
> EST is a minor power savings.

interesting. Can you elaborate on that ?

This is one of my new machines,

hw.model: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz
dev.cpu.0.%desc: ACPI CPU
dev.cpu.0.%driver: cpu
dev.cpu.0.%location: handle=\_PR_.P000
dev.cpu.0.%pnpinfo: _HID=none _UID=0
dev.cpu.0.%parent: acpi0
dev.cpu.0.freq: 600
dev.cpu.0.freq_levels: 3401/255000 3300/245000 3200/236000 3100/227000 3000/218000 2900/209000 2800/200000 2700/192000 2600/183000 2500/175000 2400/167000 2300/159000 2200/151000 2100/143000 1837/125125 1600/87000 1400/76125 1200/65250 1000/54375 800/43500 600/32625 400/21750 200/10875
dev.cpu.0.cx_supported: C1/1 C2/80 C3/104
dev.cpu.0.cx_lowest: C1
dev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 210us

Here using C1 or C3 does not seem to make any difference at all in
terms of power (measured with a Kill-a-watt style wattmeter), and
irrespective of the frequency setting the idle power does not change
much (48..56W across the entire range).
This is on FreeBSD 9 with HZ=1000, maybe some marginal savings can
be achieved setting HZ=100 (at some point i will give it a try).

Under heavy load (16 threads running infinite loops across the 4
cores) the power goes up as expected (up to 118W for 4 cores, 76W
using just 1 core), and powerd seems to do a decent job in keeping
the idle power low.

I guess that the credit for power saving goes mostly to the CPU
architects. Powerd only gives second-order savings, and C1 vs. C3
is ineffective, at least for HZ=1000

CPU Power (watts)
freq idle 16 threads
-----------------------
200 48 51
2200 52 83
3200 54 115
3401 56 118

powerd 48 118

cheers
luigi

John

unread,
Mar 22, 2012, 3:25:25 AM3/22/12
to Kevin Oberman, Matthias Gamsjager, freebsd...@freebsd.org
>
>If you are trying to reduce power consumption, why are you limiting Cx
>states to C2 (which save little) and not C3 (which will save a LOT of
>power when the CPU is not heavily loaded).

With my hardware, i5-650, using C3 does not result in lower power consumption
versus C2. Both states draw exactly the same power.

hw.acpi.cpu.cx_lowest: C3
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C3
dev.cpu.1.cx_supported: C1/3 C2/205 C3/245
dev.cpu.1.cx_lowest: C3
dev.cpu.2.cx_supported: C1/3 C2/205 C3/245
dev.cpu.2.cx_lowest: C3
dev.cpu.3.cx_supported: C1/3 C2/205 C3/245
dev.cpu.3.cx_lowest: C3
71w idle power

hw.acpi.cpu.cx_lowest: C2
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C2
dev.cpu.1.cx_supported: C1/3 C2/205 C3/245
dev.cpu.1.cx_lowest: C2
dev.cpu.2.cx_supported: C1/3 C2/205 C3/245
dev.cpu.2.cx_lowest: C2
dev.cpu.3.cx_supported: C1/3 C2/205 C3/245
dev.cpu.3.cx_lowest: C2
71w idle power

John Theus
TheUs Group
TheUsGroup.com

per...@pluto.rain.com

unread,
Mar 22, 2012, 3:38:54 AM3/22/12
to kob...@gmail.com, mgams...@gmail.com, freebsd...@freebsd.org, jo...@theusgroup.com
Kevin Oberman <kob...@gmail.com> wrote:

> Throttling ... is intended for thermal control, not power
> management. The power savings will be negligible ...

How can it possibly provide any thermal benefit, if it does not
reduce power consumption? Is there some significant heat source,
other than power consumed, that throttling reduces?

John

unread,
Mar 22, 2012, 3:58:17 AM3/22/12
to Kevin Oberman, Matthias Gamsjager, freebsd...@freebsd.org
>
>If you are trying to reduce power consumption, why are you limiting Cx
>states to C2 (which save little) and not C3 (which will save a LOT of
>power when the CPU is not heavily loaded).

On my previous post I forgot to set kern.hz=100. This change does lower idle
power from 71w to 62w.

With my hardware, i5-650, using C3 does not result in lower power consumption
versus C2. Both states draw exactly the same power.

hw.acpi.cpu.cx_lowest: C3
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C3
dev.cpu.1.cx_supported: C1/3 C2/205 C3/245
dev.cpu.1.cx_lowest: C3
dev.cpu.2.cx_supported: C1/3 C2/205 C3/245
dev.cpu.2.cx_lowest: C3
dev.cpu.3.cx_supported: C1/3 C2/205 C3/245
dev.cpu.3.cx_lowest: C3
62w idle power

hw.acpi.cpu.cx_lowest: C2
dev.cpu.0.cx_supported: C1/3 C2/205 C3/245
dev.cpu.0.cx_lowest: C2
dev.cpu.1.cx_supported: C1/3 C2/205 C3/245
dev.cpu.1.cx_lowest: C2
dev.cpu.2.cx_supported: C1/3 C2/205 C3/245
dev.cpu.2.cx_lowest: C2
dev.cpu.3.cx_supported: C1/3 C2/205 C3/245
dev.cpu.3.cx_lowest: C2
62w idle power

John Theus
TheUs Group
TheUsGroup.com

Alexander Leidinger

unread,
Mar 22, 2012, 5:52:37 AM3/22/12
to Luigi Rizzo, Matthias Gamsjager, freebsd...@freebsd.org, John
Quoting Luigi Rizzo <ri...@iet.unipi.it> (from Wed, 21 Mar 2012
18:37:28 +0100):

> I guess that the credit for power saving goes mostly to the CPU
> architects. Powerd only gives second-order savings, and C1 vs. C3
> is ineffective, at least for HZ=1000
>
> CPU Power (watts)
> freq idle 16 threads
> -----------------------
> 200 48 51
> 2200 52 83
> 3200 54 115
> 3401 56 118
>
> powerd 48 118

I hope you all don't use a cheap PSU, but a _good_ high efficient one,
which really draws less power when idle instead of generating heat.
Some PSUs are only efficient in a sweet spot, instead of being
efficient over a broad range, even when being idle. See
http://en.wikipedia.org/wiki/80_PLUS for a quick and not so in-deep
overview (and the reality may differ from manufacturer to manufacturer).

Bye,
Alexander.

--
That does not compute.

http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137

Luigi Rizzo

unread,
Mar 22, 2012, 10:01:50 AM3/22/12
to Alexander Leidinger, Matthias Gamsjager, freebsd...@freebsd.org, John
On Thu, Mar 22, 2012 at 10:51 AM, Alexander Leidinger <
Alex...@leidinger.net> wrote:

> Quoting Luigi Rizzo <ri...@iet.unipi.it> (from Wed, 21 Mar 2012 18:37:28
> +0100):
>
> I guess that the credit for power saving goes mostly to the CPU
>> architects. Powerd only gives second-order savings, and C1 vs. C3
>> is ineffective, at least for HZ=1000
>>
>> CPU Power (watts)
>> freq idle 16 threads
>> -----------------------
>> 200 48 51
>> 2200 52 83
>> 3200 54 115
>> 3401 56 118
>>
>> powerd 48 118
>>
>
> I hope you all don't use a cheap PSU, but a _good_ high efficient one,
> which really draws less power when idle instead of generating heat. Some
> PSUs are only efficient in a sweet spot, instead of being efficient over a
> broad range, even when being idle. See http://en.wikipedia.org/wiki/**
> 80_PLUS <http://en.wikipedia.org/wiki/80_PLUS> for a quick and not so
> in-deep overview (and the reality may differ from manufacturer to
> manufacturer).
>

it isn't such a big deal in my opinion. The %efficiency at low
levels is misleading if you don't factor out the 5-10W plateau for keeping
the
PSU alive (fan, ballast, etc.). See for instance

http://www.techpowerup.com/reviews/Antec/HCG-520/5.html

the table at the end of the page reports 6.73W of idle power. At 40W
this PSU consumes 52.9W, so the apparent efficiency is 75%, but
factoring out the idle power you go way up.

cheers
luigi

--
> That does not compute.
>
> http://www.Leidinger.net Alexander @ Leidinger.net: PGP ID = B0063FE7
> http://www.FreeBSD.org netchild @ FreeBSD.org : PGP ID = 72077137
>
>


--
-----------------------------------------+-------------------------------
Prof. Luigi RIZZO, ri...@iet.unipi.it . Dip. di Ing. dell'Informazione
http://www.iet.unipi.it/~luigi/ . Universita` di Pisa
TEL +39-050-2211611 . via Diotisalvi 2
Mobile +39-338-6809875 . 56122 PISA (Italy)
-----------------------------------------+-------------------------------

Alexander Leidinger

unread,
Mar 22, 2012, 11:05:04 AM3/22/12
to Luigi Rizzo, Matthias Gamsjager, freebsd...@freebsd.org, John
Quoting Luigi Rizzo <ri...@iet.unipi.it> (from Thu, 22 Mar 2012 14:59:46
+0100):
> it isn't such a big deal in my opinion. The %efficiency at low
> levels is misleading if you don't factor out the 5-10W plateau for
> keeping the
> PSU alive (fan, ballast, etc.). See for instance
>
>
My point is: if you (plural) don't see the expected difference between the
states or frequency levels, you first have to make sure your PSU is
working in a way which allows to see a difference before you can tell that
a C-state or a frequency change do not do what you want them to do.

Bye,
Alexander.

--
Murray's Rule: Any country with "democratic" in the title isn't.
http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID = B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID = 72077137

Kevin Oberman

unread,
Mar 23, 2012, 2:44:39 AM3/23/12
to per...@pluto.rain.com, mgams...@gmail.com, freebsd...@freebsd.org, jo...@theusgroup.com
On Thu, Mar 22, 2012 at 7:26 AM, <per...@pluto.rain.com> wrote:
> Kevin Oberman <kob...@gmail.com> wrote:
>
>> Throttling ... is intended for thermal control, not power
>> management. The power savings will be negligible ...
>
> How can it possibly provide any thermal benefit, if it does not
> reduce power consumption?  Is there some significant heat source,
> other than power consumed, that throttling reduces?

It does not provide reduced power because it was designed to control
overheating. If hte CPU does not exceed the PSV temperature, it should
not have any effect at all. That is its only purpose.

If the system is idle, it makes no difference. If the CPU is loaded,
it significantly lowers power consumption, but the operation takes
longer to complete, so the total power consumed is often greater than
it would have been with no throttling. Again, TCC is for thermal
management, not power reduction.

As to report I have seen that Cx states make things worse, I simply am
baffled. I wonder if the power readings are really accurate.
Theoretically the worst possible case is that there is no advantage to
enabling Cx states. There should be no possible way to have it use
more power. This is a real possibility, too, as it is very possible to
have a system that simply would not use deeper sleep states. USB used
to do exactly that, but it's been fixed with the new USB stack in 8.
Other things like various forms of polling can also have this effect.

You can check on whether your system is ever using deeper sleep by
looking at dev.cpu.%d.cx_usage.

Finally, all studies of power consumption agree that the lowest power
usage is when CPU intensive code run as fast as possible when it is
computing and then let deeper sleep modes sharply reduce power
consumption when CPU is not needed.
--
R. Kevin Oberman, Network Engineer
E-mail: kob...@gmail.com
0 new messages