On Tue, Dec 2, 2014 at 5:33 PM, Owen Taylor <otaylor(a)redhat.com> wrote:
Hi John,
Power consumption is definitely an area that Fedora can improve, and an
area where we've begun to do some investigation.
Measuring battery life is hard, because when power saving is working,
battery life depends so much on what the user is doing. Many
manufacturers don't even provide battery life in their specifications
or at most, provide a rough figure like "battery lasts up to 10 hours".
Doing what?
I've begun writing a test suite that will simulate events of "typical
user activity" (web browsing, word processing), so that we can at least
know machine-to-machine or Fedora-version to Fedora-version how well we
are doing with battery life. Comparing with a different operating system
is hard, since we typically have no idea how claimed numbers are
measured.
The second part of trying to improve power management is getting an
understanding of what actually uses power. powertop is impressive, but
can't always be taken at face value. I have some idea that we could
build up a database (or at least a wiki page or two) with detailed
information on power usage for a few representative models so that we
can get an idea about how we need to modify the system software.
On my laptop (ASUS ux301la), various things surprised me:
* The backlight eats a ton of battery - 4W for the display backlight
and 1W for the keyboard backlight. If you are getting poor battery life,
turn off the keyboard backlight and turn the screen down. But how do we
fix this for all users? We used to be much more aggressive about screen
dimming in GNOME, and it was really annoying. Can we find some happy
medium?
* Although most of the "tunables" in powertop did little that could be
measured, the "Enable SATA link power management" tunable saves 2W(!) We
need to consider whether this should be enabled by default, at least on
battery.
This is like with most of those options a tradeoff between power
consumption and performance. Last time I tested it caused a large hit
on disk throughput but I didn't measure real world workloads. We
should do that for each of those options and decide between:
1) Performance impact is almost non existent -> always enable
2) Impact small but affects some workloads -> only battery
3) Like 2 but affects more workload or a bit more -> only enable when
battery is beyond a threshold like android does with the "power saving
mode" in lollipop
4) It hurts to much its not worth bothering
So we need both performance and power usage measurements and draw and
pick one of the above options for each.