On 1 Apr 2014, at 08:11, Jordan Hubbard <j...@mail.turbofuzz.com> wrote:

> 1. Power.  As you point out, being truly power efficient is a complete 
> top-to-bottom engineering effort and it takes a lot more than just trying to 
> idle the processor whenever possible to achieve that.  You need to optimize 
> all of the hot-spot routines in the system for power efficiency (which 
> actually involves a fair amount of micro architecture knowledge), you need a 
> kernel scheduler that is power management aware, you need a process 
> management system that runs as few things as possible and knows how to 
> schedule things during package wake-up intervals, you need timers to be 
> coalesced at the level where applications consume them, the list just goes on 
> and on.  It’s a lot of engineering work, and to drive that work you also need 
> a lot of telemetry data and people with big sticks running around hitting 
> people who write power-inefficient code. FreeBSD has neither.

Just a small note here: Improving power management is something that the Core 
Team and the Foundation have jointly identified as an important goal, in 
particular for mobile / embedded scenarios.  We're currently coordinating 
potential sponsors for the work and soliciting proposals from people interested 
in doing the work.  If you know of anyone in either category then please drop 
either me, core, or the Foundation an email.

Some things have already seen progress, for example Davide's calloutng work 
includes timer coalescing, but there are still a lot of, uh, opportunities for 
improvement.   The Symbian EKA2 book has some very interesting detail on their 
power management infrastructure, which would be worth looking at for anyone 
interested in working on this, and I believe your former employer had some 
expertise in this area.

Of course, no matter how good the base system becomes at power management, we 
still can't prevent stuff in ports running idle spinloops.  We can, however, 
provide tools that encourage power-efficient design.  For example, currently 
hald wakes up every 30 seconds and polls the optical drive if you have one.  
Why?  Because there's no devd event when a CD is inserted, so the only way for 
it to get these notifications is polling.  If you have a laptop with an optical 
drive, this is really bad for power usage.  


freebsd-current@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"

Reply via email to