Test big.LITTLE on Android 12.04

Registered by Zach Pfeffer

This is a continuation of https://blueprints.launchpad.net/linaro-android/+spec/test-biglittle

Linaro is taking the lead to bring big.LITTLE to Linux. From http://www.arm.com/products/processors/technologies/bigLITTLEprocessing.php, "big.LITTLE processing addresses one of today’s industry challenges: how to create a System on Chip (SoC) that provides both high performance as well as extreme power efficiency to extend battery life. "

The TSC card is here:

https://linaro.papyrs.com/KWG2012-big-LITTLE-Task-Migration

<email address hidden> is doing the initial implementation.
<email address hidden> is bringing up the A15 model in the LAVA lab.
<email address hidden> and <email address hidden> (tixy) may be able to help us get a simulator up and running locally and work to get Android running on it.

I imagine that we'll want to get Android running on the A15 with the big.LITTLE work from Grant running. Then runs some tests from Grant to validate that its working. We can use TINY_ANDROID to do the work.

-----

Step 1:

Write a small C program, callable from the command line that takes the following arguments

--cpu - optional to specify which CPU
--state - big, little
--frequency - a number in Hz to switch between big and little

Step 2:

Write and submit to AOSP an Android HAL that can control big little switching. Write a test that can test the HAL.

Step 3:

Write a userspace Android program allows a user to switch between big and little and specify a rate of switching. Should also provide a view into powersavings, perhaps using the same mechanism as powertutor.

From Mounir the PM:

Hangouts:
https://plus.google.com/hangouts/extras/linaro.org/118212388148355955219-7618679083?authuser=0&hl=en&eid=#

Current test Plan
https://docs.google.com/a/linaro.org/document/d/14Kta4wQ0QdKlO_iQ41EolkLm-pxw_Ggh_OW-ca6BEvM/edit

Platforms bringup - asac changes to the plan
http://pad.linaro.org/5T9dICYtbK

Blueprint
https://blueprints.launchpad.net/linux-linaro/+spec/linaro-kernel-q112-big-little-switcher

Timeline (proposed)
https://wiki.linaro.org/Internal/People/MounirBsaibes/Big.LittleWeeklyReportTemplate

__Major Milestones__

Milestones:
ARM reference Switcher 3/15/2012
Validation Ready 3/29/2012
Validate Reference Switcher 4/5/2012
Linux Integrated Switcher 4/5/2012
Validate Integrated Switcher 4/26/2012
Release Candidate 1 (RC1) 5/10/2012
General Availability (GA) 5/31/2012

__Execution Matrix__

https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdGttYkhCUGVzZ2JOS0tGaU1QUm9wOHc#gid=0

Blueprint information

Status:
Complete
Approver:
Zach Pfeffer
Priority:
High
Drafter:
Amit Pundir
Direction:
Approved
Assignee:
Amit Pundir
Definition:
Approved
Series goal:
Accepted for 2012q1
Implementation:
Implemented
Milestone target:
milestone icon 12.04
Started by
Zach Pfeffer
Completed by
Zach Pfeffer

Related branches

Sprints

Whiteboard

Notes:
[2012/3/27 pfefferz] Put notes here.
[2012/4/23 asac] seems not to be up to date? please post status updates in whiteboard more frequently.
[2012/4/23 pundiramit] most of the WIs scheduled for this cycle have been implemented. Hope to complete couple of more WIs (enable and test interactive gov) by this release cycle. Rest will be moved to 12.05.
[2012/4/27 pundiramit] TODO and INPROGRESS work items moved to https://blueprints.launchpad.net/linaro-android/+spec/test-biglittle-1205

Meta:
Roadmap id: ANDROID2012-BIG-LITTLE
Headline: ARM's big.LITTLE has been tested
Acceptance: Test big.LITTLE on the A15/A7 simulator running Android using a set of unit tests.

(?)

Work Items

Work items:
boot-a15 (3/22/2012): DONE
mem-stress-a7 (3/22/2012): DONE
mem-stress-a15 (3/22/2012): DONE
disk-io-stress-a7 (3/22/2012): DONE
disk-io-stress-a15 (3/22/2012): DONE
data-corruption-a7 (3/29/2012): DONE
data-corruption-a15 (3/29/2012): DONE
data-corruption-switching (3/29/2012): DONE
cache-coherency-a7 (3/29/2012): DONE
cache-coherency-a15 (3/29/2012): DONE
cache-coherency-switching (3/29/2012): DONE
mem-stress-switching (3/29/2012): DONE
disk-io-stress-switching (3/29/2012): DONE
Implement an agitator tool, controllable from framework code, that will continuously switch between big and little: DONE
Look at cpufreq sample's and write tests based on Req1 exported APIs, bl-agitator: DONE
Install and run the A15/A7 fastmodel (3/15/2012): DONE
Run Android on fastmodel (3/15/2012): DONE
Validate ARM reference switcher (4/5/2012): DONE
Modify test scripts to do per-CPU switching: DONE
Modify test scripts to do CPU hot-plugging: DONE
Validate Linux Integrated Switcher (4/26/2012): DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.