Re: Fighting for the power.

"Alexandre \"Sunny\" Kovalenko" <[email protected]>
Newsgroups gmane.os.freebsd.devel.mobile,gmane.os.freebsd.devel.acpi,gmane.os.freebsd.current
Message-ID <1241438990.1280.6.camel@RabbitsDen>
On Mon, 2009-05-04 at 01:18 +0300, Alexander Motin wrote:
> I would like to summarize some of my knowledge on reducing FreeBSD power
> consumption and describe some new things I have recently implemented in
> 8-CURRENT. The main character of this story is my 12" Acer TravelMate
> 6292 laptop with C2D T7700 2.4GHz CPU, 965GM chipset and SATA HDD, under
> amd64 8-CURRENT.
> 
> Modern systems, especially laptops, are implementing big number of 
> power-saving technologies. Some of them are working automatically, other 
> have significant requirements and need special system tuning or 
> trade-offs to be effectively used.
> 
> So here is the steps:
> 
> 1. CPU
> CPU is the most consuming part of the system. Under the full load it
> alone may consume more then 40W of power, but for real laptop usage the
> most important is idle consumption.
> Core2Duo T7700 CPU has 2 cores, runs on 2.4GHz frequency, supports EIST
> technology with P-states at 2400, 2000, 1600, 1200 and 800MHz levels,
> supports C1, C2 and C3 idle C-states, plus throttling. So how can we use it:
>   P-states and throttling
> Enabling powerd allows to effectively control CPU frequency/voltage
> depending on CPU load. powerd on recent system can handle it quite
> transparently. By default, frequency controlled via mix of EIST and
> throttling technologies. First one controls both core frequency and
> voltage, second - only core frequency. Both technologies give positive
> power-saving effect. But effect of throttling is small and can be
> completely hidden by using C2 state, that's why I recommend to disable
> throttling control by adding to /boot/loader.conf:
> hint.p4tcc.0.disabled=1
> hint.acpi_throttle.0.disabled=1
> In my case frequency/voltage control saves about 5W of idle power.
>   C-states
>   - C1 stops clock on some parts of CPU core during inactivity. It is
> safe, cheap and supported by CPUs for ages. System uses C1 state by default.
>   - C2 state allows CPU to turn off all core clocks on idle. It is also
> cheap, but requires correct ACPI-chipset-CPU interoperation to be used.
> Use of C2 state can be enabled by adding to /etc/rc.conf:
> performance_cx_lowest="C2"
> economy_cx_lowest="C2"
> Effect from this state is not so big when powerd is used, but still
> noticeable,
>   - C3 state allows CPU completely stop all internal clocks, reduce
> voltage and disconnect from system bus. This state gives additional
> power saving effect, but it is not cheap and require trade-offs.
> As soon as CPU is completely stopped in C3 state, local APIC timers in
> each CPU core, used by FreeBSD as event sources on SMP, are not
> functioning. It stops system time, breaks scheduling that makes system
> close to dead. 
Did you try to see whether putting one of the cores in C3 state by doing
something like

dev.cpu.1.cx_lowest=C3

makes any difference?

# sysctl dev.cpu | grep cx_usage
dev.cpu.0.cx_usage: 0.00% 100.00% 0.00%
dev.cpu.1.cx_usage: 0.00% 5.18% 94.81%
 

-- 
Alexandre Kovalenko (Олександр Коваленко)


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.