Under construction

Power saving tests

Idle

The Idle use case includes all the default background activities of a system which has not entered suspend state but without any user activity (screen is power down, no mp3 playback, ...):

  • Boot your development platform
  • For Android: prevent system from entering suspend by writing something into /sys/power/wake_lock
  • Let system enter idle state
  • Measure power on ARM (MPU) rail

MP3 playback

When testing power savings policies one of the most interesting workloads is MP3 playback. This is due to the tasks relatively periodic nature, coupled with it's low demand for ARM cycles. To test power savings in this mode the following configuration is recommended:

  • Boot Android on your development platform
  • Start playback of an MP3 via the built-in Android music player
    • MP3 should be stored locally on MMC/SD
    • Volume should be lowest possible setting
    • MP3 playback time should exceed time spent measuring power
  • Measure power at appropriate rail (vbatt/ibatt, or at the ARM rail if possible)
  • Results should be total energy consumption, normalized by time

This test can be used to compare real power savings in a meaningful way across a variety of idle power savings mechanisms: CPU hotplug, CPUidle, cpusets, etc.

UI navigation

This test simulates the activity of a user on an android platform thanks to monkeyrunner tool. The UI navigation mainly made of burst

  • Boot your development platform
  • Connect your phone to a host with a USB cable
  • Call Monkey runner to simulate a user which navigates in the UI. The script is available here

  • Measure power of ARM (MPU) rail

New use case

Add a new interesting use case

Results

The results have been normalized versus the default configuration (all cpus are plugged, default scheduler configuration, no cgroup).

SoC

Idle

MP3

UI

Comments

hotplug

cpuset

sched_mc

hotplug

cpuset

sched_mc

hotplug

cpuset

sched_mc

ST-E

1

0.92

1

Only the Arm rail has been measured

Panda

Samsung

Freescale

Performance tests

This list tests the performance decrease that can be introduced by different solution.

sysbench

We use sysbench for testing scheduler performance with different configurations. We test the feature with a light cpu load configuration and a heavy cpu load configuration:

  • cpu test
    • sysbench --test=cpu --num-threads=12 --max-time=20 run
    • sysbench --test=cpu --num-threads=3 --max-time=20 run
  • thread test
    • sysbench --test=threads --thread-locks=9 --num-threads=12 --max-time=20 run
    • sysbench --test=threads --thread-locks=2 --num-threads=3 --max-time=20 run

cyclictest

we use 2 configurations for cyclictest. The 1st one is a light load configuration with one thread per cpu :

  • cyclictest -q -t -D 20

The other one creates a large number of thread and check the latency

  • cyclictest -q -t 12 -D 20

Results

The results have been normalized versus the default configuration (all cpus are plugged, default scheduler configuration, no cgroup).

SoC

sysbench cpu

sysbench thread

cyclictest light

cyclictest heavy

hotplug

cpuset

sched_mc

hotplug

cpuset

sched_mc

hotplug

cpuset

sched_mc

hotplug

cpuset

sched_mc

ST-E

Panda

Samsung

Freescale

Miscellaneous

Availability of Vbat and Ibat in PMIC:

SoC

Vbat

Ibat

driver

ST-Ericsson

yes

yes

not upstream

Samsung

Panda

Freescale

WorkingGroups/PowerManagement/Archives/EnergyBenchmarking (last modified 2013-09-12 06:56:19)