Add tracing tests for big.little

Registered by Paul Larson

big.little system now contains tracing support for some time now. We should test that these events are usable by actually using them to measure switching latency. One suggested test would be to turn on tracing, switch back and forth 100 times, and report the min/max/avg time for switching. This would also be interesting to test under some sort of cpu load.

Blueprint information

Status:
Complete
Approver:
Alexander Sack
Priority:
High
Drafter:
Soumya Basak
Direction:
Approved
Assignee:
Soumya Basak
Definition:
New
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
milestone icon 2013.06
Started by
Naresh Kamboju
Completed by
Naresh Kamboju

Related branches

Sprints

Whiteboard

[nkambo Sep 13, 2012] it is better to explore perf tool, ftrace and trace-cmd.
[nkambo Oct 19 2012] we need to add below three test case.
under each test case Validation involves
Log the [TBD] average switching time and variance.
To get the switching time we need to use ftrace/trace tool.

Current Kernel is not having # CONFIG_FUNCTION_TRACER is not set.
Due to this reason we can not enable function trace, below steps are failed.
echo function >current_tracer
echo bL_switch_request >set_ftrace_filter

switching-perf
--------------------
Steps
Boot the system with A15 as the active cluster (this should be the default)
Activate switching daemon to switch as often as possible for the 10 minutes
Deactivate switching daemon
Validation
Log the [TBD] average switching time and variance
Log the detailed report of switching times

mem-stress-switching-perf
---------------------------------------
Steps
Boot the system with A15 as the active cluster (this should be the default)
For reference switcher: Activate switching daemon to switch as often as possible for the duration of the test
For integrated switcher: set random switching with max interval of 1000 ms (bl-agitator -r -l1000 -n)
Run as root: memtester 1M 1
Deactivate switching daemon
Validation
All memtester tests should pass
Log the [TBD] average switching time and variance
Log the detailed report of switching times

disk-io-stress-switching-perf
-----------------------------------------
Steps
Boot the system with A15 as the active cluster (this should be the default)
Activate switching daemon to switch as often as possible for the duration of the test
Run iozone with ‘iozone -a -i 0 -i 2 -s 16m -V teststring’
Deactivate switching daemon
Validation
All iozone tests should pass
Log the [TBD] average switching time and variance
Log the detailed report of switching times

[nkambo Oct 22 2012]
Following step is failed while enabling tracing
#cd /sys/kernel/debug/tracing/
# echo function >current_tracer
#echo $?
1

To enable trace we need to have following kernel config
CONFIG_FUNCTION_TRACER=y

[nkambo Oct 22 2012]
"trace-cmd" needs to be added to Android and Ubuntu builds.

[nkambo June 25 2013]
All the work items defined here are already addressed on other blueprint which is delivered.
https://blueprints.launchpad.net/linaro-qa/+spec/count-cluster-events-vs-switcher

Meta:
Roadmap id: BIG_LITTLE_SYSTEM
Headline: Tracing tests for big.little system have been added
Acceptance: Tracing tests are documented in the big.little system test plan and are added to the git repository

Deliverable:
-new 6 perf test cases have been added to bL IKS core test suite.
-perf test case results against bL IKS 13.02 release are available in bL IKS core test results spreadsheet https://docs.google.com/a/linaro.org/spreadsheet/ccc?key=0AroPySpr4FnEdGttYkhCUGVzZ2JOS0tGaU1QUm9wOHc#gid=10

(?)

Work Items

Work items:
investigate potential tests based on tracing support: DONE
propose cpu loads to run during switching with the switcher team: DONE
enable CONFIG_FUNCTION_TRACER=y in BL switcher kernel [dmart]: DONE
update blueprint to reflect the cpu loads that were decided: DONE
Add new test case switching-perf : POSTPONED
Add new test case mem-stress-switching-perf : DONE
Add new test case disk-io-stress-switching-perf : DONE
write basic framework for looking at a trace log and determining the timing from start/stop events: DONE
Add scripting to wrapper this around workloads: DONE
Test to ensure the approach works on both android and ubuntu: DONE
Add tests to testplan and git repo: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.