Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Mar 2012 18:37:28 +0100
From:      Luigi Rizzo <rizzo@iet.unipi.it>
To:        Kevin Oberman <kob6558@gmail.com>
Cc:        Matthias Gamsjager <mgamsjager@gmail.com>, freebsd-stable@freebsd.org, John <john@theusgroup.com>
Subject:   Re: powerd and increase in energy need
Message-ID:  <20120321173728.GA41322@onelab2.iet.unipi.it>
In-Reply-To: <CAN6yY1tKYbTjgQsL1gnfrc9r68c%2BQDCb1SAb%2BM=RFA90jvLpnw@mail.gmail.com>
References:  <CA%2BD9Qhv5EmrkqvLetx9T5WD_1BRuCpUyZ=VYnRSjwRYqA7phdg@mail.gmail.com> <20120321000058.177F8256@server.theusgroup.com> <CA%2BD9QhsMMXYbLKg__jZx=7KbCHtK6LjqkfL9WSWs=pdT-t9r0w@mail.gmail.com> <CAN6yY1tKYbTjgQsL1gnfrc9r68c%2BQDCb1SAb%2BM=RFA90jvLpnw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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