Power Management improvements for Fedora 12

Summary

Our goal is the improvement of power management especially in regard to userland. This project is based on measurement and statistic of power consumption mainly on laptops. We are trying to locate the main power greedy applications by measuring with new tools, which have been introduced in our project. For Fedora 12 the plan is to improve and extend the functionality of tuned, merge it with ktune from RHEL 5 and introduce a new and easy way to switch between various predefined and extendible tuning settings for your system.

Current status

Detailed Description

With Fedora 11 we introduce a new daemon called tuned. The goal now is to extend it's functionality and merge it with a tool we developed for Red Hat Enterprise Linux 5 called ktune as well as introduce a new and easy way to switch between various predefined and extendible tuning settings for your system.

Of course auditing wakeups and disk/network IO is still ongoing for Fedora 12 as well.

Benefit to Fedora

Simple: On average use less power for turned on machines while not affecting user experience (a lot ;)).

Scope

Review and fix behaviour of typical applications in a full installed Fedora in regard to: [IN PROGRESS]

Test Plan

cpu, disk and net devices should adapt to usage (monitor using strace e.g.)**

If ktune is enabled check if the system settings for the current profile are being applied and restored when stopping the service

For "System tuning configuration and profiles"

Run the new system tuning tool and list the different available profiles using:

tuned-adm list

Run the new system tuning tool and select one of the profiles. Restart the machine afterwards and make sure the profile is being used at startup

tuned-adm modes laptop-battery-powersave

tuned-adm modes default

tuned-adm modes throughput-performance

For "New tool to measure improvements to system configuration changes or application changes"

yum install tuned-utils

run scomes

change system settings

run scomes again

compare restults

User Experience

As power saving is not really visible without a measuring it the effects will not be directly visible. So in order to really see the effect you'll either need a laptop and run that on battery power or a wattmeter that is hooked between your system and the power line.

Dependencies

tuned base package now requires kobo for the tuned-adm tool.

Contingency Plan

Need to make sure to test the more aggressive power saving features if they break on common hardware and back it out in case they do or make some form of black/whitelist for know cases.

Documentation

Tuned-adm

This new tool allows an administrator to easily switch between different systemwide settings for power (and performance) tuning for his system. Settings can be added, edited or deleted depending on the specific needs or circumstances of the system or administrator.

The following settings are included by default in the current version of tuned:

default

Default settings with which tuned and ktune come initially

desktop-powersave

Very light powersaving profile directed at desktop systems.

server-powersave

Very light powersaving profile directed at server systems.

laptop-ac-powersave

Medium powersaving profile directed at laptops running on AC.

laptop-battery-powersave

Strong powersaving profile directed at laptops running on battery. This profile will affect the overall performance of the system as a tradeoff for typically longer running time on battery power.

throughput-performance

Sever profile for typical througput performance tuning.

latency-performance

Sever profile for typical latency performance tuning.

scomes

Scomes is a new systemtap script that can be used to measure the effectiveness of system configuration changes and/or code changes to applications.

The goal was to:

Measure amount of system resources consumed by the program.

Compare different programming techniques in view of system resources.

Create programming tips based on these results.

More info on how it works and how to use it and some examples can be found here: