PM utils power saving improvements - call for testing

Colin Ian King colin.king at canonical.com
Wed Dec 14 15:58:53 UTC 2011


On 14/12/11 14:38, Eric Miao wrote:
> On Tue, Dec 13, 2011 at 11:15 PM, Colin Ian King
> <colin.king at canonical.com>  wrote:
>> Hi there,
>>
>> == Call for testing: pm-utils power saving improvements ==
>>
>> PM utils power.d scripts control power management settings when a laptop is
>> on mains or battery power. The power.d scripts currently attempt to optimize
>> power savings when on battery power by adjusting settings such as audio and
>> wireless power management, readahead and journal commit settings to name
>> just a few.
>>
>> The kernel provides mechanisms to put specific USB and PCI devices into
>> lower power consuming states and with careful choice of the specific devices
>> we can reduce the overall system power consumption by a few Watts depending
>> on the types of devices installed on a laptop or netbook.
>>
>> Initial analysis on a range of hardware has identified a set of devices
>> (Bluetooth, Wireless, Ethernet, SD card readers) that can be put into a low
>> power state and we are looking for volunteers to test some updated pm-utils
>> power.d scripts. We are interested in two types of test:
>>
>> 1) Do these pm-util scripts save any power across a range of machines?
>>
>> 2) Does enabling these savings affect any device behavior?
>>
>> A crowd-sourcing testing Wiki page has been created that describes how to
>> test these updated pm-utils scripts and can be found at:
>>
>> https://wiki.ubuntu.com/Kernel/PowerManagementPMUtils
> Great work, Colin!
>
> I've updated the page with test on my HP Pavilion dm1, an AMD E-350
> netbook. It did improve, the result of 1st trial, however, seems not
> very consistent which I don't know why.
>
> 1st trial:
>
> BIOS  :  F.12
> Kernel:  Linux pavilion-dm1 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2
> 13:25:36 UTC 2011 i686 athlon i386 GNU/Linux
> Power consumption BEFORE using new pm-utils power.d scripts:
>    5.87 Watts on Average with Standard Deviation 0.25
>
> Power consumption AFTER using new pm-utils power.d scripts:
>    5.86 Watts on Average with Standard Deviation 0.27
>
> 2nd trial:
>
> BIOS  :  F.12
> Kernel:  Linux pavilion-dm1 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2
> 13:25:36 UTC 2011 i686 athlon i386 GNU/Linux
> Power consumption BEFORE using new pm-utils power.d scripts:
>    7.85 Watts on Average with Standard Deviation 0.74
>
> Power consumption AFTER using new pm-utils power.d scripts:
>    7.76 Watts on Average with Standard Deviation 0.76
>
> 3rd trial:
>
> BIOS  :  F.12
> Kernel:  Linux pavilion-dm1 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2
> 13:25:36 UTC 2011 i686 athlon i386 GNU/Linux
> Power consumption BEFORE using new pm-utils power.d scripts:
>    7.82 Watts on Average with Standard Deviation 0.44
>
> Power consumption AFTER using new pm-utils power.d scripts:
>    7.74 Watts on Average with Standard Deviation 0.12
Hrm.  Some well behaved batteries provide a power rate directly, which 
is normally quite accurate. However other batteries don't have this 
feature and one has to calculate the power consumption by monitoring the 
battery capacity. However, I have observed that some batteries (like the 
HPMini 10) seem to sometimes randomly re-calibrate their notion of total 
capacity which can perturb the final calculation, so maybe your battery 
is doing this.

The script that does the testing uses powerstat, which is a tool I 
hacked up to do the battery measurement.  You can run it using:

sudo powerstat

But if you want to make it re-sample if it detects a busy system you can 
use:

sudo powerstat -r

..maybe that will provide more stable results for you.  However, I 
didn't use that on this pm-utils tests as I have not yet fully 
calibrated that and sanity checked it on all my boxes.

And finally, powerstat has a -s option that dumps out a summary of task 
fork/exec/exit activity it found while gathering the data. It may be 
worth seeing how busy your system. However, you shouldn't plug that into 
the script I used for testing pm-utils as it spews out lots of extra 
output that I don't parse.

Colin




More information about the kernel-team mailing list