Git Product home page Git Product logo

workload-automation's Introduction

Workload Automation

Workload Automation (WA) is a framework for executing workloads and collecting measurements on Android and Linux devices. WA includes automation for nearly 40 workloads and supports some common instrumentation (ftrace, hwmon) along with a number of output formats.

WA is designed primarily as a developer tool/framework to facilitate data driven development by providing a method of collecting measurements from a device in a repeatable way.

WA is highly extensible. Most of the concrete functionality is implemented via plug-ins, and it is easy to write new plug-ins to support new device types, workloads, instruments or output processing.

Requirements

  • Python 3.5+
  • Linux (should work on other Unixes, but untested)
  • Latest Android SDK (ANDROID_HOME must be set) for Android devices, or
  • SSH for Linux devices

Installation

To install:

git clone [email protected]:ARM-software/workload-automation.git workload-automation
sudo -H python setup [install|develop]

Note: A requirements.txt is included however this is designed to be used as a reference for known working versions rather than as part of a standard installation.

Please refer to the installation section in the documentation for more details.

Basic Usage

Please see the Quickstart section of the documentation.

Documentation

You can view pre-built HTML documentation here.

Documentation in reStructuredText format may be found under doc/source. To compile it into cross-linked HTML, make sure you have Sphinx installed, and then :

cd doc
make html

License

Workload Automation is distributed under Apache v2.0 License. Workload automation includes binaries distributed under different licenses (see LICENSE files in specific directories).

Feedback, Contributions and Support

  • Please use the GitHub Issue Tracker associated with this repository for feedback.
  • ARM licensees may contact ARM directly via their partner managers.
  • We welcome code contributions via GitHub Pull requests. Please see "Contributing Code" section of the documentation for details.

workload-automation's People

Contributors

anthonybarbier avatar bathepawan avatar benjaminmordaunt avatar bobbyb-arm avatar chase-qi avatar credp avatar dependabot[bot] avatar derkling avatar douglas-raillard-arm avatar eliftopuz avatar ep1cman avatar joesavage avatar marcbonnici avatar metin-arm avatar mrkajetanp avatar ola1olssonarm avatar pawanbathe avatar pcc avatar pietos01-arm avatar robf8 avatar rockyzhang avatar scojac01 avatar sdpenguin avatar setrofim avatar stephenkyle-arm avatar stevebannister avatar sticklyman1936 avatar syl-taylor avatar thoelken18 avatar vingu-linaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

workload-automation's Issues

Question: timeout for geekbench

Hi there,

When run geekbench, it quite often to report timeout issue after geekbench run for about 3 minutes. So I can see the geekbench is still running but WA will report time out like below. I tried to manually to change timeout value in the file workloads/geekbench/init.py and wlauto/instrumentation/trace_cmd/init.py for big timeout value (300s) but this issue still will happen.

ERROR Error while running workload:
ERROR INSTRUMENTATION_STATUS: numtests=1
ERROR INSTRUMENTATION_STATUS: stream=
ERROR com.arm.wlauto.uiauto.geekbench.UiAutomation:
ERROR INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
ERROR INSTRUMENTATION_STATUS: test=runUiAutomation
ERROR INSTRUMENTATION_STATUS: class=com.arm.wlauto.uiauto.geekbench.UiAutomation
ERROR INSTRUMENTATION_STATUS: current=1
ERROR INSTRUMENTATION_STATUS_CODE: 1
ERROR INSTRUMENTATION_STATUS: numtests=1
ERROR INSTRUMENTATION_STATUS: stream=
ERROR Error in runUiAutomation:
ERROR com.android.uiautomator.core.UiObjectNotFoundException: Did not get to Geekbench results screen.
ERROR at com.arm.wlauto.uiauto.geekbench.UiAutomation.waitForResultsv3(UiAutomation.java:96)
ERROR at com.arm.wlauto.uiauto.geekbench.UiAutomation.runUiAutomation(UiAutomation.java:57)
ERROR at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160)
ERROR at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96)
ERROR at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91)
ERROR at com.android.commands.uiautomator.Launcher.main(Launcher.java:83)
ERROR at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
ERROR at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
ERROR
ERROR INSTRUMENTATION_STATUS: id=UiAutomatorTestRunner
ERROR INSTRUMENTATION_STATUS: test=runUiAutomation
ERROR INSTRUMENTATION_STATUS: class=com.arm.wlauto.uiauto.geekbench.UiAutomation
ERROR INSTRUMENTATION_STATUS: stack=com.android.uiautomator.core.UiObjectNotFoundException: Did not get to Geekbench results screen.
ERROR at com.arm.wlauto.uiauto.geekbench.UiAutomation.waitForResultsv3(UiAutomation.java:96)
ERROR at com.arm.wlauto.uiauto.geekbench.UiAutomation.runUiAutomation(UiAutomation.java:57)
ERROR at com.android.uiautomator.testrunner.UiAutomatorTestRunner.start(UiAutomatorTestRunner.java:160)
ERROR at com.android.uiautomator.testrunner.UiAutomatorTestRunner.run(UiAutomatorTestRunner.java:96)
ERROR at com.android.commands.uiautomator.RunTestCommand.run(RunTestCommand.java:91)
ERROR at com.android.commands.uiautomator.Launcher.main(Launcher.java:83)
ERROR at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
ERROR at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:251)
ERROR
ERROR INSTRUMENTATION_STATUS: current=1
ERROR INSTRUMENTATION_STATUS_CODE: -1
ERROR INSTRUMENTATION_STATUS: stream=
ERROR Test results for WatcherResultPrinter=.E
ERROR Time: 204.376
ERROR
ERROR FAILURES!!!
ERROR Tests run: 1, Failures: 0, Errors: 1
ERROR
ERROR
ERROR INSTRUMENTATION_STATUS_CODE: -1
ERROR

[Android] Update package name for camera-related workloads

In Android M and newer version the package name for camera activities has been changed:

  • Old package: com.android.gallery3d
  • New package: com.android.GoogleCamera

Also, the button to switch between video and photo mode has been removed and the switch happens by swiping (to the left for video, to the right for taking pictures).

Could you please update this accordingly?

Warning when trace-cmd instrument is used and ftrace:"false" is in present in rt-app's json file

I have a warning if i enable trace-cmd instrument but ftrace:"false" is present if the json file that is run by rt-app:
"trace-cmd instrument cannot be enabled at the same time as ftrace rt-app setting. Please disable trace-cmd instrument in your WA config file or set ftrace to false in the JSON file."

Firstly, ftrace is already set to false in the json file but the value of "ftrace" key is not checked in rt-app config, only the presence is checked
Then, I don't understand why we can't have both trace-cmd instrument and ftrace enabled in json file ? If I want to record some traces with trace-cmd and if i also want that rt-app add it's own trace in the ftrace flow, i have to set ftrace:"true" and to enable trace-cmd

Add support for installing multiple apks when executing a single workload

At the moment the wa framework only supports single apk workloads. Attempts to add additional apks to the dependencies folder results in a 'CRITICAL' error.

CRITICAL More than one .apk found in workload_automation/dependencies/<workload_name> for <workload_name>

As part of our UX Performance work we would like to test how responsive devices are when you context switch between application tasks. This would involve installing and launching multiple apks during a single wa run.

Proposal

Add additional functionality to the framework to allow multiple apks to be installed to the device. It might also be nice to optionally launch these apks automatically as in the single apk case.

Discussion

Perhaps this can be accomplished by adding a new MultiApkWorkload class that can be inherited and extended with modified init_resources() and resource getters methods.

In juno board How to connect the COM/serial ports in WA running env.

Hello, JaviMerino

Presently because the juno board supports only the serial port /COM,
But unfortunately the .py config default is usb port by adb devices.
So how can we config the .py file or handle them for the connection issue.
./dist/wlauto-2.4.0/wlauto/utils/serial_port.py

"INFO Initializing
INFO Running workloads
INFO Connecting to device "

Thanks .

Unable to reboot Juno board when using uboot

This has been a persistent issue for me recently, but mostly I have been able to fix it by forcing pexpect==3.3 after installing a WA update. However, on my new desktop this doesn't help things.

I have temporarily hacked out all the driver parts which send empty lines, as they were dropping into the board firmware and the uboot command doesn't come up.

It's not ideal - I need to reboot manually just after starting WA to be sure to see the android login come up.

Is there anything I can do to find out what is so different on my setup?

wa fails to start when iPython version not recognised

The following log shows what happens when running wa with Jupyter 4.1.0rc2 installed. Even without using the ipython exporter wa fails to start up.

Is this expected behaviour?


$ wa
CRITICAL:root: File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/core/entry_point.py", line 54, in main
load_commands(parser.add_subparsers(dest='command')) # each command will add its own subparser
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/core/entry_point.py", line 39, in load_commands
ext_loader = ExtensionLoader(paths=settings.extension_paths)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/core/extension_loader.py", line 162, in init
self._load_from_packages(self.packages)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/core/extension_loader.py", line 304, in _load_from_packages
for module in walk_modules(package):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/utils/misc.py", line 138, in walk_modules
mods.extend(walk_modules(submod_path))
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/utils/misc.py", line 133, in walk_modules
root_mod = import(path, {}, {}, [''])
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/result_processors/ipynb_exporter/init.py", line 30, in
import wlauto.utils.ipython as ipython
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wlauto/utils/ipython.py", line 39, in
if StrictVersion('5.0.0') > StrictVersion(IPython.version) >= StrictVersion('4.0.0'):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/version.py", line 40, in init
self.parse(vstring)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/version.py", line 107, in parse
raise ValueError, "invalid version number '%s'" % vstring

CRITICAL:root:ValueError(invalid version number '4.1.0rc2')

Skype: New Update Popup breaks uiautomator

Recently, Skype servers send a signal prompting the app to popup a dialogue asking the user to update the app to the latest version.
This hadnt been witnessed before so the Skype workload does not handle this and gets stuck unable to pass the popup screen and thus fails.

Skype workload should look out for this popup and if detected, dismiss it before continuing.

cpufreq instrument stopped working

hello again :)

I just noticed that I'm not getting any data in my runs from /sys etc. These are the messages I get:

android: adb -s 10.1.207.30:5555 logcat -d > eas_traced_2/andebench_mp_eas_interactive_b01_1/logcat.log
2016-05-06 11:20:52,168 DEBUG    android: adb -s 10.1.207.30:5555 shell "echo '/data/local/tmp/busybox tar cf /sdcard/wa-working/cpufreq.tar.gz -C /sdcard/wa-working/temp-fs-cpufreq .' | su"
2016-05-06 11:20:52,569 DEBUG    android: adb -s 10.1.207.30:5555 shell "echo 'chmod 0777 /sdcard/wa-working/cpufreq.tar.gz' | su"
2016-05-06 11:20:52,642 DEBUG    android: adb -s 10.1.207.30:5555 shell "/data/local/tmp/busybox gzip /sdcard/wa-working/cpufreq.tar.gz"
2016-05-06 11:20:52,676 DEBUG    android: adb -s 10.1.207.30:5555 pull '/sdcard/wa-working/cpufreq.tar.gz.gz' 'eas_traced_2/andebench_mp_eas_interactive_b01_1/cpufreq.tar.gz.gz'
2016-05-06 11:20:52,690 ERROR    instrumentation: Error in insturment cpufreq
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/local/lib/python2.7/dist-packages/wlauto/core/instrumentation.py", line 240, in __call__
2016-05-06 11:20:52,692 ERROR    instrumentation:     self.callback(context)
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/misc/__init__.py", line 163, in update_result
2016-05-06 11:20:52,692 ERROR    instrumentation:     with tarfile.open(on_host_tarball, 'r:gz') as tf:
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/lib/python2.7/tarfile.py", line 1678, in open
2016-05-06 11:20:52,692 ERROR    instrumentation:     return func(name, filemode, fileobj, **kwargs)
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/lib/python2.7/tarfile.py", line 1727, in gzopen
2016-05-06 11:20:52,692 ERROR    instrumentation:     **kwargs)
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/lib/python2.7/tarfile.py", line 1705, in taropen
2016-05-06 11:20:52,692 ERROR    instrumentation:     return cls(name, mode, fileobj, **kwargs)
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/lib/python2.7/tarfile.py", line 1574, in __init__
2016-05-06 11:20:52,692 ERROR    instrumentation:     self.firstmember = self.next()
2016-05-06 11:20:52,692 ERROR    instrumentation:   File "/usr/lib/python2.7/tarfile.py", line 2338, in next
2016-05-06 11:20:52,692 ERROR    instrumentation:     raise ReadError("empty file")
2016-05-06 11:20:52,692 ERROR    instrumentation: 
2016-05-06 11:20:52,693 ERROR    instrumentation: ReadError(empty file)
2016-05-06 11:20:52,693 DEBUG    instrumentation: Disabling instrument cpufreq

I see in 724f6e5 that the logic naming this file changed - am I missing a corresponding change to tarname ?

Can't run android workload

Dear experts,

I want to run a android program, but failed:

wa run -f angrybirds

INFO Creating output directory.
INFO Initializing
CRITICAL <'s apk> could not be found

Could you help me? What should I prepare for running a android apk program?

trace-cmd don't work .

Hello,
use the trace-cmd tools instruments in the same UT phone,

  1. it is always error in Antutu case.
    ERROR Error in insturment trace-cmd
    ERROR trace-cmd returned non-zero exit code 255
    (to remove more events in ftrace event disabled, but yet fails . )

  2. But run Ok in dhrystone case.

    Why?

thanks.

Problem on executing as quickstart manaual

INFO     Creating output directory.
INFO     Initializing
INFO     Running workloads
INFO     Connecting to device
INFO     Initializing device
INFO     Initializing workloads
INFO     Running workload 1 dhrystone (iteration 1)
INFO        Setting up
INFO        Skipping the rest of the iterations for this spec.
ERROR    Error while running dhrystone
ERROR    ValueError("invalid literal for int() with base 10: 'fault'")
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 736, in _handle_errors
ERROR        yield
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 615, in _run_job
ERROR        self._run_workload_iteration(spec.workload)
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 670, in _run_workload_iteration
ERROR        workload.setup(self.context)
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/workloads/dhrystone/__init__.py", line 82, in setup
ERROR        self.device.killall('dhrystone')
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/common/linux/device.py", line 404, in killall
ERROR        for pid in self.get_pids_of(process_name):
ERROR      File "/usr/local/lib/python2.7/dist-packages/wlauto/common/android/device.py", line 471, in get_pids_of
ERROR        return [int(x.split()[1]) for x in result.split('\n')]
ERROR    
INFO     Job status was FAILED. Retrying...
INFO     Skipping workload 1 dhrystone (iteration 2)
INFO     Finalizing workloads
INFO     Finalizing.
INFO     Processing overall results
INFO     Status available in wa_output/status.txt
INFO     Done.
INFO     Run duration: 14 seconds
INFO     Ran a total of 2 iterations: 1 FAILED, 1 SKIPPED
INFO     Results can be found in wa_output
WARNING  There were errors during execution.
WARNING  Please see wa_output/run.log

Hi, i am new to android emulator.
I want to execute wlauto as quickstart manaul.
But it doesn't work.
Can you guide me?

WA hits python error under 32-bit ubuntu OS with python2.7

2016-06-20 15:16:09,738 DEBUG android: adb -s 10.164.4.23:5555 pull '/sdcard/wa-working/cpufreq.tar.gz' 'wa_output/idle_big_big_idle_state0_1_1/cpufreq.tar.gz'
2016-06-20 15:16:10,042 ERROR instrumentation: Error in insturment cpufreq
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/local/lib/python2.7/dist-packages/wlauto/core/instrumentation.py", line 240, in call
2016-06-20 15:16:10,044 ERROR instrumentation: self.callback(context)
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/misc/init.py", line 166, in update_result
2016-06-20 15:16:10,044 ERROR instrumentation: tf.extractall(context.output_directory)
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/lib/python2.7/tarfile.py", line 2079, in extractall
2016-06-20 15:16:10,044 ERROR instrumentation: self.extract(tarinfo, path)
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/lib/python2.7/tarfile.py", line 2116, in extract
2016-06-20 15:16:10,044 ERROR instrumentation: self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/lib/python2.7/tarfile.py", line 2209, in _extract_member
2016-06-20 15:16:10,044 ERROR instrumentation: self.utime(tarinfo, targetpath)
2016-06-20 15:16:10,044 ERROR instrumentation: File "/usr/lib/python2.7/tarfile.py", line 2330, in utime
2016-06-20 15:16:10,044 ERROR instrumentation: os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime))
2016-06-20 15:16:10,044 ERROR instrumentation:
2016-06-20 15:16:10,044 ERROR instrumentation: OverflowError(Python int too large to convert to C long)
2016-06-20 15:16:10,044 DEBUG instrumentation: Disabling instrument cpufreq

Even if we write standalone demo python script under the same environment ( copy cpufreq.tar.gz to local folder), there will be the same error.

Traceback (most recent call last):
File "test.py", line 25, in
main()
File "test.py", line 20, in main
tf.extractall("./")
File "/usr/lib/python2.7/tarfile.py", line 2079, in extractall
self.extract(tarinfo, path)
File "/usr/lib/python2.7/tarfile.py", line 2116, in extract
self._extract_member(tarinfo, os.path.join(path, tarinfo.name))
File "/usr/lib/python2.7/tarfile.py", line 2209, in _extract_member
self.utime(tarinfo, targetpath)
File "/usr/lib/python2.7/tarfile.py", line 2330, in utime
os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime))
OverflowError: Python int too large to convert to C long

WA๏ผˆ workload automatic๏ผ‰running issue

Hello, Leo
I downloaded patch from :
https://github.com/ARM-software/workload-automation
and installed on my untun--linux PC according to your installation.rst .
and config the android SDK well, ...
after setup Dhrystone2i.apk on my phone, and
sudo wa run -f dhrystone

but failed , info displayed as followings,
SPREADTRUM\zhengkun.zuo@zkzubtpc:/usr$ sudo wa run -f dhrystone

INFO Removing existing output directory.
INFO Creating output directory.
INFO Initializing
INFO Running workloads
INFO Connecting to device
INFO Initializing device
INFO Initializing workloads
INFO Running workload 1 dhrystone (iteration 1)
INFO Setting up
INFO Skipping the rest of the iterations for this spec.
ERROR Error while running dhrystone:
ERROR <'s arm64 dhrystone> could not be found
INFO Job status was FAILED. Retrying...
INFO Skipping workload 1 dhrystone (iteration 2)
INFO Finalizing workloads
INFO Finalizing.
INFO Processing overall results
INFO Status available in wa_output/status.txt
INFO Done.
INFO Run duration: 6 seconds
INFO Ran a total of 2 iterations: 1 FAILED, 1 SKIPPED
INFO Results can be found in wa_output
WARNING There were errors during execution.

WARNING Please see wa_output/run.log

and also checked installation.rst APK Files sections

================ ============================================ ========================= ============ ============
workload package name version code version name
================ ============================================ ========================= ============ ============
andebench com.eembc.coremark AndEBench v1383a 1383
angrybirds com.rovio.angrybirds Angry Birds 2.1.1 2110
angrybirds_rio com.rovio.angrybirdsrio Angry Birds 1.3.2 1320

maybe the install SW dhrystone apk or temple-run is Not correct ?
it Need check them.

Thanks .

wlauto fails to find Antutu APK

Hello,
I'm not sure what i'm doing wrong but i am unable to run the Antutu workload.
I have tried workload automation (wa) versions 2.5.0 and 2.4.0
I've tried Antutu APK versions 5.3.0 and 6.0.1 since
/usr/local/lib/python2.7/dist-packages/wlauto/workloads/antutu/init.py
indicated that both of these are supported (ie. valid_versions = ['3.3.2', '4.0.3', '5.3.0', '6.0.1'])
I've renamed the APK files to com.antutu.ABenchMark.apk since
/usr/local/lib/python2.7/dist-packages/wlauto/workloads/antutu/init.py indicated that package name is package = "com.antutu.ABenchMark"

I successfully loaded and ran both the 6.0.1 and 5.3.0 versions of the antutu APK file on my android

  • via the command: adb install com.antutu.ABenchMark.apk
  • verified that the version was in deed 6.0.1 from the device's app manager

I placed the apk in both directories:
/usr/local/lib/python2.7/dist-packages/wlauto/workloads/antutu/
and
~/.workload_automation/dependencies/antutu

I do not use an agenda. i tried to run the benchmark in the following way:
wa run -f antutu

When i tried wa 2.5.0 i get the following error:
CRITICAL <'s apk> (version:6.0.1) could not be found

when i switched to wa 2.4.0 version i get:
CRITICAL <'s apk> could not be found

Really not sure what i'm doing wrong so would appreciate any guidance.
Thank you for your time,
Heather

Feature request: Add command-line options to enable/disable instrumentation

Currently, WA users can enable or disable certain instruments (e.g. cpufreq, interrupts, perf, etc.) by modifying agendas and/or config files. However, it would be nice to add a feature where users can disable an instrument temporarily via command-line for a single run, so they can type a command similar to this:

wa run --disable interrupts dhrystone

if it existed. It'd save time from changing files multiple times and be more convenient.

Temporal temperature, frequency measurements

WA - Feature Request:

We need below measurements over time (with configurable sampling interval) from Android devices.

  1. Each cluster frequency.
  2. SoC Temperature.
    Both above parameters sampled in the same time scale - so that they can be plotted (frequency vs Temperature) together.

Formalizing revent recording format.

We keep making modifications to revent, as well as widening its use. Some of the modifications affect the binary format of the recording. Currently, this is being done in ad-hock manner; going forward, we should formalize and properly version the binary format. That will allow detecting incompatible recordings and giving meaningful error messages, rather than segfaulting, and development of additional tooling that works with the format.

proposed additions
  • Add a "magic number" to the beginning of a recording to make easy to identify as such.
  • Add a version number to the header of the recording. This will allow revent (and other tools) to detect incompatible recordings.
  • The format should be described in WA documentation.

Cannot launch trace-cmd 'record' as background mode

Hi there,

I configured agenda file as below:

config:
         instrumentation: [~cpufreq, trace-cmd]
         result_processors: [standard]
         trace-cmd:
                 events: ['sched*', 'ipi*', 'power*']
                 mode: 'record'
global:
         iterations: 1
workloads:
         - name: geekbench

But it will report the failure as below:

leoy@leoy-linaro:~/Work/disk/ipa$ wa run geekbench.yaml -f -d geekbench
INFO Removing existing output directory.
INFO Creating output directory.
INFO Initializing
INFO Running workloads
INFO Connecting to device
INFO Initializing device
INFO Initializing workloads
INFO Running workload 1 geekbench (iteration 1)
INFO Setting up
INFO Executing
ERROR Error in instrument trace-cmd
ERROR Could not find running trace-cmd on device.
INFO Processing result
ERROR Error while processing workload result:
ERROR Got exit code 1
ERROR from: adb -s 0123456789 shell "echo 'ls /data/data/com.primatelabs.geekbench3/files/_gb3' | su"
ERROR STDOUT: ls: /data/data/com.primatelabs.geekbench3/files/_gb3: No such file or directory
ERROR
ERROR STDERR:
INFO Tearing down
INFO Job status was PARTIAL. Retrying...

Look into this file, I found that WA will stall after executeing below command, and it caused by 'nohup' cannot work on the system.

adb -s 0123456789 shell "echo 'cd /mnt/media_rw/E2F4-1905/wa-working && /data/local/tmp/wa-bin/busybox nohup /data/local/tmp/wa-bin/trace-cmd record -o /system/trace.dat -e sched* -e ipi* -e power*' | su"

Feature request: Add rt-app to WA

Support to run a rt-app workload is partially implemented in WA v2.3.0; however, more can be done in order to get rt-app fully integrated into WA mainline since there are issues such as missing dependencies and data parsing to be resolved first.

python error when running WA tool

OS: 64-bit 1604 LTS
Python: 2.7
WA: version 2.5.0

2016-06-21 11:17:07,781 DEBUG android: adb -s 10.164.4.23:5555 pull '/sdcard/wa-working/screen_capture.png' 'wa_output/idle_big_big_idle_state0_2_1/error.png'
2016-06-21 11:17:09,438 DEBUG android: adb -s 10.164.4.23:5555 shell "rm '/sdcard/wa-working/screen_capture.png'"
2016-06-21 11:17:09,543 ERROR Runner: Error while setting up device parameters:
2016-06-21 11:17:09,543 ERROR Runner: Unknown runtime parameter(s): ['ui']
2016-06-21 11:17:09,543 INFO Runner: Skipping the rest of the iterations for this spec.
2016-06-21 11:17:09,544 INFO Runner: Job status was FAILED. Retrying...
2016-06-21 11:17:09,544 INFO Runner: Skipping workload big_idle_state0_2 idle_big (iteration 2)
2016-06-21 11:17:09,544 INFO Runner: Running workload big_idle_state1_1 idle_big (iteration 1)

Feature request: Filter or display a list workloads supported by device

There isn't an easy way to tell which workloads will run on Android, Linux, or both.

So far, workloads such as dhrystone, memcpy, cyclictest, and sysbench have standalone binaries that will run on both Linux and Android devices. Otherwise, it's assumed that the rest depend on Android SDK capabilities and have no Linux support. It isn't as obvious until users look further into the wlauto/workload directory.

glbcorp workload not collecting results

I'm using the 16.02 Linaro Android release with a snapshot of master from a couple of days ago.

I have been failing to collect data for the glbcorp manhattan workload without noticing - the logcat output seems to be different to what the regexp is expecting although I don't have an old logcat to compare with.

The new output is collected in this format:

04-04 11:38:04.142  1410  1439 I GLBNativeLog: DeleteGLobal: 0xf3fb5140
04-04 11:38:04.143  1410  1439 I Runner  : finished: gl_manhattan
04-04 11:38:04.144  1410  1410 I TfwActivity: gl_manhattan result: {
04-04 11:38:04.144  1410  1410 I TfwActivity:  "results":
04-04 11:38:04.144  1410  1410 I TfwActivity:  [
04-04 11:38:04.144  1410  1410 I TfwActivity:   {
04-04 11:38:04.144  1410  1410 I TfwActivity:    "description": "",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "elapsed_time": 62009,
04-04 11:38:04.144  1410  1410 I TfwActivity:    "error": "NOERROR",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "group": "High-Level Tests",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "measured_time": -1,
04-04 11:38:04.144  1410  1410 I TfwActivity:    "raw_result": "GLB_TEST3000105;0;0;843;0;0;1920;1024;62009;",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "result_id": -1,
04-04 11:38:04.144  1410  1410 I TfwActivity:    "score": 843,
04-04 11:38:04.144  1410  1410 I TfwActivity:    "status": "OK",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "test_id": "gl_manhattan",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "test_id_num": "3000105",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "title": "Manhattan Offscreen",
04-04 11:38:04.144  1410  1410 I TfwActivity:    "unit": "frames"
04-04 11:38:04.144  1410  1410 I TfwActivity:   }
04-04 11:38:04.144  1410  1410 I TfwActivity:  ]
04-04 11:38:04.144  1410  1410 I TfwActivity: }

Specifically, there appears to be extra stuff at the left edge of a line, the slash is replaced with a space in the logger name, and the PIDs have moved.

I can modify the regexps to get some output, but they are likely not optimal expressions for including directly.

result_start_regex = re.compile(r'I[/\s]TfwActivity(\s*\(\s*\d+\))?:\s+\S+\s+result: {')
preamble_regex = re.compile(r'(.*)?I[/\s]TfwActivity(\s*\(\s*\d+\))?:\s+')

add a parameters to use the binary of the target instead of wa's one

I haven't found any way to prevent wa to push its binary on the target and overwrite the one already in the target. It might be interesting to add a parameter to specify if we want to use local binary in priority. The main issue with binaries that are part of wa, is that they are not up to date with latest bench version

Enhancement: marking password parameter as "hidden"

I added functionality to CK-WA to enter mandatory parameters via console. However, password parameter in Skype is visible to everyone. Is it possible to mark all such parameters as hidden (or something like that) in all workloads? I.e.

    Parameter('login_pass', kind=str, mandatory=True, **hidden=True,**
              description='Password associated with the account to log into the device'),

I will then use 'getpass' function in Python to obtain this parameter ....
Thanks!!!

Daq Error due to adb issue

The below Daq Error Occurred as the adb failed and then skips the use cases.

Solution required:
When device becomes unresponsive or adb fails there should an attempt to reinitialize adb and run the tests.

Error Log:
18 12:15:41,823 DEBUG twisted: Main loop terminated.
2016-05-18 12:15:41,846 ERROR instrumentation: Error in insturment daq
2016-05-18 12:15:41,846 ERROR instrumentation: DAQ: DAQError: The specified operation cannot be performed because a task has been aborted or a device has been removed from the system. Handle this situation as required by the application and then, if appropriate, attempt to perform the operation again.
2016-05-18 12:15:41,846 ERROR instrumentation: Task Name: _unnamedTask<106>
2016-05-18 12:15:41,846 ERROR instrumentation:
2016-05-18 12:15:41,846 ERROR instrumentation: Status Code: -88709
2016-05-18 12:15:41,846 DEBUG instrumentation: Disabling instrument daq
2016-05-18 12:15:41,847 DEBUG android: adb -s 03157df3e8d1eb0d shell "ls /"
2016-05-18 12:15:46,977 DEBUG android: adb -s 03157df3e8d1eb0d shell "screencap -p /sdcard/wa-working/screen_capture.png"
2016-05-18 12:15:46,988 ERROR Runner: Error while running workload:
2016-05-18 12:15:46,988 ERROR Runner: Got exit code 969696
2016-05-18 12:15:46,988 ERROR Runner: from: adb -s 03157df3e8d1eb0d shell "/data/local/tmp/revent replay /sdcard/wa-working/generic_android.run.revent"
2016-05-18 12:15:46,988 ERROR Runner: STDOUT:
2016-05-18 12:15:46,988 ERROR Runner: STDERR:
2016-05-18 12:15:46,988 INFO Runner: Processing result
2016-05-18 12:15:46,989 DEBUG android: adb -s 03157df3e8d1eb0d shell "echo '/data/local/tmp/trace-cmd extract -o /sdcard/wa-working/trace.dat' | su"
2016-05-18 12:15:47,000 ERROR instrumentation: Error in insturment trace-cmd
2016-05-18 12:15:47,000 ERROR instrumentation: Got exit code 969696
2016-05-18 12:15:47,000 ERROR instrumentation: from: adb -s 03157df3e8d1eb0d shell "echo '/data/local/tmp/trace-cmd extract -o /sdcard/wa-working/trace.dat' | su"
2016-05-18 12:15:47,000 ERROR instrumentation: STDOUT:
2016-05-18 12:15:47,000 ERROR instrumentation: STDERR: error: insufficient permissions for device
2016-05-18 12:15:47,000 ERROR instrumentation:
2016-05-18 12:15:47,001 DEBUG instrumentation: Disabling instrument trace-cmd
2016-05-18 12:15:47,001 INFO Runner: Tearing down
2016-05-18 12:15:47,001 DEBUG Runner: Tearing down workload
2016-05-18 12:15:47,002 DEBUG android: adb -s 03157df3e8d1eb0d shell "am force-stop com.spotify.music"
2016-05-18 12:15:47,012 DEBUG android: adb -s 03157df3e8d1eb0d shell "ls /"
2016-05-18 12:15:47,022 DEBUG android: adb -s 03157df3e8d1eb0d shell "screencap -p /sdcard/wa-working/screen_capture.png"
2016-05-18 12:15:47,033 ERROR Runner: Error while tearing down workload:
2016-05-18 12:15:47,033 ERROR Runner: Got exit code 969696
2016-05-18 12:15:47,033 ERROR Runner: from: adb -s 03157df3e8d1eb0d shell "am force-stop com.spotify.music"
2016-05-18 12:15:47,033 ERROR Runner: STDOUT:
2016-05-18 12:15:47,033 ERROR Runner: STDERR: error: insufficient permissions for device
2016-05-18 12:15:47,033 ERROR Runner:
2016-05-18 12:15:47,036 DEBUG CpuStatesProcessor: Text trace does not appear to have been generated; skipping this iteration.
2016-05-18 12:15:47,037 INFO Runner: Running workload 2l spotify (iteration 1)
2016-05-18 12:15:47,037 DEBUG instrumentation: Disabling instrument execution_time
2016-05-18 12:15:47,037 DEBUG instrumentation: Enabling instrument execution_time
2016-05-18 12:15:47,037 DEBUG instrumentation: Enabling instrument trace-cmd
2016-05-18 12:15:47,037 DEBUG instrumentation: Enabling instrument daq
2016-05-18 12:15:47,038 DEBUG Runner: Setting up device parameters
2016-05-18 12:15:47,039 DEBUG GenericDevice: Setting runtime parameter "sysfile_values"
2016-05-18 12:15:47,039 DEBUG android: adb -s 03157df3e8d1eb0d shell "echo 'echo 0 > '''/sys/power/enable_dm_hotplug'''' | su"
2016-05-18 12:15:47,049 DEBUG GenericDevice: Setting runtime parameter "a53_64_cores"
2016-05-18 12:15:47,050 DEBUG android: adb -s 03157df3e8d1eb0d shell "echo 'echo 1 > '''/sys/devices/system/cpu/cpu0/online'''' | su"
2016-05-18 12:15:47,059 DEBUG android: adb -s 03157df3e8d1eb0d shell "echo 'cat '''/sys/devices/system/cpu/cpu0/online'''' | su"
2016-05-18 12:15:47,069 DEBUG android: adb -s 03157df3e8d1eb0d shell "ls /"
2016-05-18 12:15:47,079 DEBUG android: adb -s 03157df3e8d1eb0d shell "screencap -p /sdcard/wa-working/screen_capture.png"
2016-05-18 12:15:47,089 ERROR Runner: Error while setting up device parameters:
2016-05-18 12:15:47,089 ERROR Runner: Got exit code 969696
2016-05-18 12:15:47,089 ERROR Runner: from: adb -s 03157df3e8d1eb0d shell "echo 'cat '''/sys/devices/system/cpu/cpu0/online'''' | su"
2016-05-18 12:15:47,089 ERROR Runner: STDOUT:
2016-05-18 12:15:47,089 ERROR Runner: STDERR: error: insufficient permissions for device
2016-05-18 12:15:47,089 ERROR Runner:
2016-05-18 12:15:47,090 INFO Runner: Skipping the rest of the iterations for this spec.
2016-05-18 12:15:47,090 ERROR Runner: Exceeded maxium number of retries. Abandoning job.
2016-05-18 12:15:47,091 INFO Runner: Running workload 1l spotify (iteration 1)
2016-05-18 12:15:47,091 DEBUG instrumentation: Disabling instrument execution_time
2016-05-18 12:15:47,092 DEBUG instrumentation: Disabling instrument trace-cmd
2016-05-18 12:15:47,092 DEBUG instrumentation: Disabling instrument daq
2016-05-18 12:15:47,092 DEBUG instrumentation: Enabling instrument execution_time
2016-05-18 12:15:47,092 DEBUG instrumentation: Enabling instrument trace-cmd
2016-05-18 12:15:47,093 DEBUG instrumentation: Enabling instrument daq
2016-05-18 12:15:47,093 DEBUG Runner: Setting up device parameters

Juno test Permission denied

I copy the revent and apk files to /usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/
then execute the wa , then I found the following error:
2016-08-02 17:43:02,980 INFO Runner: Connecting to device
2016-08-02 17:43:02,984 DEBUG android: Discovering ANDROID_HOME from adb path.
2016-08-02 17:43:02,987 DEBUG android: ANDROID_HOME: /usr
2016-08-02 17:43:02,987 DEBUG android: Using aapt for version android-4.2.2
2016-08-02 17:43:02,987 DEBUG android: adb devices
2016-08-02 17:43:02,991 DEBUG android: adb disconnect 192.168.1.2:5555
2016-08-02 17:43:02,995 DEBUG android: adb connect 192.168.1.2:5555
2016-08-02 17:43:02,999 DEBUG android: connected to 192.168.1.2:5555
2016-08-02 17:43:02,999 DEBUG android:
2016-08-02 17:43:02,999 DEBUG android: adb -s 192.168.1.2:5555 shell " if [ -f /proc/cpuinfo ] ; then true ; else false ; fi"
2016-08-02 17:43:03,057 DEBUG Juno: Polling for device 192.168.1.2:5555...
2016-08-02 17:43:03,058 DEBUG android: adb devices
2016-08-02 17:43:03,064 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop sys.boot_completed"
2016-08-02 17:43:03,143 INFO Runner: Initializing device
2016-08-02 17:43:03,146 DEBUG ExtensionLoader: Checking module wlauto.result_processors
2016-08-02 17:43:03,147 DEBUG ExtensionLoader: Checking module wlauto.result_processors.cpustate
2016-08-02 17:43:03,147 DEBUG ExtensionLoader: Adding result_processor cpustates
2016-08-02 17:43:03,147 DEBUG ExtensionLoader: Checking module wlauto.result_processors.dvfs
2016-08-02 17:43:03,148 DEBUG ExtensionLoader: Adding result_processor dvfs
2016-08-02 17:43:03,148 DEBUG ExtensionLoader: Checking module wlauto.result_processors.ipynb_exporter
2016-08-02 17:43:03,148 DEBUG ExtensionLoader: Adding result_processor ipynb_exporter
2016-08-02 17:43:03,148 DEBUG ExtensionLoader: Checking module wlauto.result_processors.mongodb
2016-08-02 17:43:03,148 DEBUG ExtensionLoader: Adding result_processor mongodb
2016-08-02 17:43:03,149 DEBUG ExtensionLoader: Checking module wlauto.result_processors.notify
2016-08-02 17:43:03,149 DEBUG ExtensionLoader: Adding result_processor notify
2016-08-02 17:43:03,149 DEBUG ExtensionLoader: Checking module wlauto.result_processors.sqlite
2016-08-02 17:43:03,149 DEBUG ExtensionLoader: Adding result_processor sqlite
2016-08-02 17:43:03,149 DEBUG ExtensionLoader: Checking module wlauto.result_processors.standard
2016-08-02 17:43:03,150 DEBUG ExtensionLoader: Adding result_processor csv
2016-08-02 17:43:03,150 DEBUG ExtensionLoader: Adding result_processor standard
2016-08-02 17:43:03,150 DEBUG ExtensionLoader: Adding result_processor summary_csv
2016-08-02 17:43:03,150 DEBUG ExtensionLoader: Adding result_processor json
2016-08-02 17:43:03,150 DEBUG ExtensionLoader: Checking module wlauto.result_processors.status
2016-08-02 17:43:03,151 DEBUG ExtensionLoader: Adding result_processor status
2016-08-02 17:43:03,151 DEBUG ExtensionLoader: Checking module wlauto.result_processors.syeg
2016-08-02 17:43:03,151 DEBUG ExtensionLoader: Adding result_processor syeg_csv
2016-08-02 17:43:03,151 DEBUG ExtensionLoader: Checking module wlauto.result_processors.uxperf
2016-08-02 17:43:03,151 DEBUG ExtensionLoader: Adding result_processor uxperf
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Checking module wlauto.workloads
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Checking module wlauto.workloads.andebench
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Adding workload andebench
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Checking module wlauto.workloads.androbench
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Adding workload androbench
2016-08-02 17:43:03,160 DEBUG ExtensionLoader: Checking module wlauto.workloads.angrybirds
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload angrybirds
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.angrybirds_rio
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload angrybirds_rio
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.anomaly2
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload anomaly2
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.antutu
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload antutu
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.apklaunch
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload apklaunch
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.applaunch
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload applaunch
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.audio
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload audio
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.autotest
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload autotest
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.bbench
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload bbench
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.benchmarkpi
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload benchmarkpi
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.blogbench
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload blogbench
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Checking module wlauto.workloads.caffeinemark
2016-08-02 17:43:03,161 DEBUG ExtensionLoader: Adding workload caffeinemark
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.cameracapture
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload cameracapture
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.camerarecord
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload camerarecord
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.castlebuilder
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload castlebuilder
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.castlemaster
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload castlemaster
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.cfbench
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload cfbench
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.citadel
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload citadel
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.cyclictest
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload cyclictest
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.dex2oat
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload dex2oat
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.dhrystone
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload dhrystone
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.dungeondefenders
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload dungeondefenders
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.ebizzy
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload ebizzy
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.facebook
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload facebook
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Checking module wlauto.workloads.geekbench
2016-08-02 17:43:03,162 DEBUG ExtensionLoader: Adding workload geekbench
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.glbcorp
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload glb_corporate
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.glbenchmark
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload glbenchmark
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.googlemap
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload googlemap
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.gunbros2
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload gunbros2
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.hackbench
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload hackbench
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.homescreen
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload homescreen
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.hwuitest
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload hwuitest
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.idle
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload idle
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.iozone
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload iozone
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.ironman
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload ironman3
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.krazykart
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Adding workload krazykart
2016-08-02 17:43:03,163 DEBUG ExtensionLoader: Checking module wlauto.workloads.linpack
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload linpack
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.linpack_cli
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload linpack-cli
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.lmbench
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload lmbench
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.manual
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload manual
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.memcpy
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload memcpy
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.nenamark
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload nenamark
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.peacekeeper
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload peacekeeper
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.power_loadtest
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload power_loadtest
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.quadrant
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload quadrant
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.real_linpack
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload real-linpack
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.realracing3
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload realracing3
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.recentfling
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload recentfling
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Checking module wlauto.workloads.rt_app
2016-08-02 17:43:03,164 DEBUG ExtensionLoader: Adding workload rt-app
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.shellscript
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload shellscript
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.skypevideo
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload skypevideo
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.smartbench
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload smartbench
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.spec2000
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload spec2000
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.sqlite
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload sqlitebm
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.stream
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload stream
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.stress_ng
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload stress_ng
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.sysbench
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload sysbench
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.telemetry
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload telemetry
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.templerun
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload templerun
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.thechase
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload thechase
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Checking module wlauto.workloads.truckerparking3d
2016-08-02 17:43:03,165 DEBUG ExtensionLoader: Adding workload truckerparking3d
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.workloads.vellamo
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding workload vellamo
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.workloads.video
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding workload video
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.workloads.videostreaming
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding workload videostreaming
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.active_cooling
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module mbed-fan
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module odroidxu3-fan
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.cgroups
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module cgroups
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.cpufreq
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module devcpufreq
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.cpuidle
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module cpuidle
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.flashing
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module fastboot
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Adding module vexpress
2016-08-02 17:43:03,166 DEBUG ExtensionLoader: Checking module wlauto.modules.reset
2016-08-02 17:43:03,167 DEBUG ExtensionLoader: Adding module netio_switch
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.coreutil
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Adding instrument coreutil
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.daq
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Adding instrument daq
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.delay
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Adding instrument delay
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.dmesg
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Adding instrument dmesg
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.energy_model
2016-08-02 17:43:03,168 DEBUG ExtensionLoader: Adding instrument energy_model
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.energy_probe
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument energy_probe
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.fps
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument fps
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.freqsweep
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument freq_sweep
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.hwmon
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument hwmon
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.juno_energy
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument juno_energy
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.misc
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument interrupts
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument sysfs_extractor
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument execution_time
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument cpufreq
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.netstats
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument netstats
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.perf
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument perf
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.pmu_logger
2016-08-02 17:43:03,169 DEBUG ExtensionLoader: Adding instrument cci_pmu_logger
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.poller
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument file_poller
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.screenon
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument screenon
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.servo_power_monitors
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument servo_power
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.streamline
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument streamline
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding resource_getter streamline_resource
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.systrace
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument systrace
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.instrumentation.trace_cmd
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding instrument trace-cmd
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.commands
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.commands.create
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding command create
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Checking module wlauto.commands.list
2016-08-02 17:43:03,170 DEBUG ExtensionLoader: Adding command list
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Checking module wlauto.commands.record
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Adding command record
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Adding command replay
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Checking module wlauto.commands.run
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Adding command run
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Checking module wlauto.commands.show
2016-08-02 17:43:03,171 DEBUG ExtensionLoader: Adding command show
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android.gem5
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Adding device gem5_android
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android.generic
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Adding device generic_android
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android.juno
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Adding device juno
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android.nexus10
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Adding device Nexus10
2016-08-02 17:43:03,172 DEBUG ExtensionLoader: Checking module wlauto.devices.android.nexus5
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device Nexus5
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.android.note3
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device Note3
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.android.odroidxu3
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device odroidxu3
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.android.tc2
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device TC2
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux.XE503C12
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device XE503C12
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux.chromeos_test_image
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device chromeos_test_image
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux.gem5
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device gem5_linux
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux.generic
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device generic_linux
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Checking module wlauto.devices.linux.odroidxu3_linux
2016-08-02 17:43:03,173 DEBUG ExtensionLoader: Adding device odroidxu3_linux
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Checking module wlauto.resource_getters
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Checking module wlauto.resource_getters.standard
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter environment_jar
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter environment_dependency
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter extension_asset
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter http_assets
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter env_exe_getter
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter environment_common_dependency
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter filer
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter package_exe_getter
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter filer_assets
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter enviroment_revent
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter package_file
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter package_apk
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter packaged_dependency
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter packaged_common_dependency
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter environment_file
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter exe_getter
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter package_revent
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter environment_apk
2016-08-02 17:43:03,174 DEBUG ExtensionLoader: Adding resource_getter package_jar
2016-08-02 17:43:03,175 DEBUG ExtensionLoader: Loading from paths.
2016-08-02 17:43:03,175 DEBUG android: adb -s 192.168.1.2:5555 shell "su"
2016-08-02 17:43:04,179 DEBUG check_output: 29480 timed out; sending SIGKILL
2016-08-02 17:43:04,180 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/online'''' | su"
2016-08-02 17:43:04,270 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/sys/devices/system/cpu/cpu0/cpufreq' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:04,336 DEBUG Juno: Installing module "devcpufreq"
2016-08-02 17:43:04,339 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/sys/devices/system/cpu/cpuidle' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:04,404 DEBUG Juno: Installing module "cpuidle"
2016-08-02 17:43:04,405 DEBUG android: adb -s 192.168.1.2:5555 shell "mkdir -p /sdcard/wa-working"
2016-08-02 17:43:04,483 DEBUG android: adb -s 192.168.1.2:5555 shell "mkdir -p /data/local/tmp/wa-bin"
2016-08-02 17:43:04,559 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/data/local/tmp/wa-bin/busybox' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:04,622 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:04,709 DEBUG ResourceResolver: Resolving <no-one's arm64 sqlite3>
2016-08-02 17:43:04,710 DEBUG ResourceResolver: Trying
2016-08-02 17:43:04,710 DEBUG ResourceResolver: Trying
2016-08-02 17:43:04,710 DEBUG ResourceResolver: Trying
2016-08-02 17:43:04,711 DEBUG ResourceResolver: Resource <no-one's arm64 sqlite3> found using :
2016-08-02 17:43:04,711 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/common/bin/arm64/sqlite3
2016-08-02 17:43:04,711 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/data/local/tmp/wa-bin/sqlite3' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:04,773 DEBUG android: adb -s 192.168.1.2:5555 shell "/data/local/tmp/wa-bin/busybox which sqlite3"
2016-08-02 17:43:04,844 DEBUG android: adb -s 192.168.1.2:5555 shell "mount"
2016-08-02 17:43:04,931 DEBUG android: adb -s 192.168.1.2:5555 push '/tmp/tmpcA3VQj' '/sdcard/wa-working/disable_screen_lock'
2016-08-02 17:43:05,058 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cp /sdcard/wa-working/disable_screen_lock /data/local/tmp/wa-bin/disable_screen_lock' | su"
2016-08-02 17:43:05,169 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'chmod 0777 /data/local/tmp/wa-bin/disable_screen_lock' | su"
2016-08-02 17:43:05,265 DEBUG android: adb -s 192.168.1.2:5555 shell "echo '/data/local/tmp/wa-bin/disable_screen_lock' | su"
2016-08-02 17:43:05,388 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop ro.build.version.sdk"
2016-08-02 17:43:05,453 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'getenforce' | su"
2016-08-02 17:43:05,560 INFO Runner: Initializing workloads
2016-08-02 17:43:05,561 DEBUG ResourceResolver: Resolving <'s revent>
2016-08-02 17:43:05,561 DEBUG ResourceResolver: Trying
2016-08-02 17:43:05,562 DEBUG RemoteFilerGetter: resource=<'s revent>, version=None, remote_path=templerun, local_path=/root/.workload_automation/dependencies/templerun
2016-08-02 17:43:05,562 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:05,647 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:05,722 DEBUG ResourceResolver: Trying
2016-08-02 17:43:05,723 DEBUG ResourceResolver: Trying
2016-08-02 17:43:05,723 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:05,802 DEBUG ResourceResolver: Trying
2016-08-02 17:43:05,802 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:05,878 DEBUG ResourceResolver: Resource <'s revent> found using :
2016-08-02 17:43:05,878 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/revent_files/juno.setup.revent
2016-08-02 17:43:05,879 DEBUG ResourceResolver: Resolving <'s revent>
2016-08-02 17:43:05,879 DEBUG ResourceResolver: Trying
2016-08-02 17:43:05,879 DEBUG RemoteFilerGetter: resource=<'s revent>, version=None, remote_path=templerun, local_path=/root/.workload_automation/dependencies/templerun
2016-08-02 17:43:05,879 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:05,959 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:06,048 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,048 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,048 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:06,135 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,135 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:06,215 DEBUG ResourceResolver: Resource <'s revent> found using :
2016-08-02 17:43:06,215 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/revent_files/juno.run.revent
2016-08-02 17:43:06,216 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:06,294 DEBUG ResourceResolver: Resolving <no-one's arm64 revent>
2016-08-02 17:43:06,295 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,295 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,296 DEBUG ResourceResolver: Trying
2016-08-02 17:43:06,296 DEBUG ResourceResolver: Resource <no-one's arm64 revent> found using :
2016-08-02 17:43:06,296 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/common/bin/arm64/revent
2016-08-02 17:43:06,296 DEBUG android: adb -s 192.168.1.2:5555 shell "mount"
2016-08-02 17:43:06,369 DEBUG android: adb -s 192.168.1.2:5555 push '/usr/local/lib/python2.7/dist-packages/wlauto/common/bin/arm64/revent' '/sdcard/wa-working/revent'
2016-08-02 17:43:07,555 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cp /sdcard/wa-working/revent /data/local/tmp/wa-bin/revent' | su"
2016-08-02 17:43:07,705 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'chmod 0777 /data/local/tmp/wa-bin/revent' | su"
2016-08-02 17:43:07,800 DEBUG android: adb -s 192.168.1.2:5555 push '/usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/revent_files/juno.run.revent' '/sdcard/wa-working/juno.run.revent'
2016-08-02 17:43:07,996 DEBUG android: adb -s 192.168.1.2:5555 push '/usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/revent_files/juno.setup.revent' '/sdcard/wa-working/juno.setup.revent'
2016-08-02 17:43:08,177 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:08,256 DEBUG ResourceResolver: Resolving <'s arm64 APK>
2016-08-02 17:43:08,256 DEBUG ResourceResolver: Trying
2016-08-02 17:43:08,257 DEBUG RemoteFilerGetter: resource=<'s arm64 APK>, version=None, remote_path=templerun, local_path=/root/.workload_automation/dependencies/templerun
2016-08-02 17:43:08,257 DEBUG ResourceResolver: Trying
2016-08-02 17:43:08,257 DEBUG ResourceResolver: Trying
2016-08-02 17:43:08,257 DEBUG ResourceResolver: Trying
2016-08-02 17:43:08,257 DEBUG ResourceResolver: Resource <'s arm64 APK> found using :
2016-08-02 17:43:08,257 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/Temple_Run_2-Hack.apk
2016-08-02 17:43:08,257 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/etc/arch-release' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,315 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -d '/etc/arch-release' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,382 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/etc/debian_version' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,450 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -d '/etc/debian_version' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,518 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/etc/lsb-release' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,588 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -d '/etc/lsb-release' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,654 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/proc/config.gz' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,718 DEBUG android: adb -s 192.168.1.2:5555 shell "/data/local/tmp/wa-bin/busybox zcat /proc/config.gz"
2016-08-02 17:43:08,832 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/proc/cmdline' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:08,894 DEBUG android: adb -s 192.168.1.2:5555 shell "cat /proc/cmdline"
2016-08-02 17:43:08,955 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/proc/cpuinfo' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,023 DEBUG android: adb -s 192.168.1.2:5555 shell "cat /proc/cpuinfo"
2016-08-02 17:43:09,091 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/proc/version' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,159 DEBUG android: adb -s 192.168.1.2:5555 shell "cat /proc/version"
2016-08-02 17:43:09,227 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/proc/zconfig' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,295 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -d '/proc/zconfig' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,363 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/sys/kernel/debug/sched_features' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,431 DEBUG android: adb -s 192.168.1.2:5555 shell "cat /sys/kernel/debug/sched_features"
2016-08-02 17:43:09,499 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -f '/sys/kernel/hmp' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,568 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -d '/sys/kernel/hmp' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:09,635 DEBUG android: adb -s 192.168.1.2:5555 pull '/sys/kernel/hmp' 'wa_output/meta/sys.kernel.hmp'
2016-08-02 17:43:10,208 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:10,293 DEBUG android: adb -s 192.168.1.2:5555 shell "dumpsys window > /sdcard/wa-working/window.dumpsys"
2016-08-02 17:43:12,240 DEBUG android: adb -s 192.168.1.2:5555 pull '/sdcard/wa-working/window.dumpsys' 'wa_output/__meta/window.dumpsys'
2016-08-02 17:43:12,412 DEBUG android: adb -s 192.168.1.2:5555 shell "ls /sys/devices/system/cpu/cpu0/cpuidle"
2016-08-02 17:43:12,495 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state0/desc'''' | su"
2016-08-02 17:43:12,576 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state0/name'''' | su"
2016-08-02 17:43:12,657 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state0/latency'''' | su"
2016-08-02 17:43:12,750 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state0/power'''' | su"
2016-08-02 17:43:12,841 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state1/desc'''' | su"
2016-08-02 17:43:12,932 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state1/name'''' | su"
2016-08-02 17:43:13,025 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state1/latency'''' | su"
2016-08-02 17:43:13,117 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state1/power'''' | su"
2016-08-02 17:43:13,208 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state2/desc'''' | su"
2016-08-02 17:43:13,288 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state2/name'''' | su"
2016-08-02 17:43:13,362 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state2/latency'''' | su"
2016-08-02 17:43:13,452 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cat '''/sys/devices/system/cpu/cpu0/cpuidle/state2/power'''' | su"
2016-08-02 17:43:13,545 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/sys/devices/system/cpu/cpuidle' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:13,613 DEBUG ResourceResolver: Resolving <juno_energy's file readenergy>
2016-08-02 17:43:13,613 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,635 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,635 DEBUG RemoteFilerGetter: resource=<juno_energy's file readenergy>, version=None, remote_path=juno_energy, local_path=/root/.workload_automation/dependencies/juno_energy
2016-08-02 17:43:13,636 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,636 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,636 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,636 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,637 DEBUG ResourceResolver: Trying
2016-08-02 17:43:13,637 DEBUG ResourceResolver: Resource <juno_energy's file readenergy> found using :
2016-08-02 17:43:13,637 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/juno_energy/readenergy
2016-08-02 17:43:13,637 DEBUG android: adb -s 192.168.1.2:5555 shell "ps | /data/local/tmp/wa-bin/busybox grep readenergy"
2016-08-02 17:43:13,734 DEBUG android: adb -s 192.168.1.2:5555 shell "mount"
2016-08-02 17:43:13,800 DEBUG android: adb -s 192.168.1.2:5555 push '/usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/juno_energy/readenergy' '/sdcard/wa-working/readenergy'
2016-08-02 17:43:14,131 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cp /sdcard/wa-working/readenergy /data/local/tmp/wa-bin/readenergy' | su"
2016-08-02 17:43:14,247 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'chmod 0777 /data/local/tmp/wa-bin/readenergy' | su"
2016-08-02 17:43:14,342 DEBUG android: adb -s 192.168.1.2:5555 shell "getprop"
2016-08-02 17:43:14,422 DEBUG ResourceResolver: Resolving <trace-cmd's arm64 trace-cmd>
2016-08-02 17:43:14,422 DEBUG ResourceResolver: Trying
2016-08-02 17:43:14,423 DEBUG ResourceResolver: Trying
2016-08-02 17:43:14,423 DEBUG ResourceResolver: Trying
2016-08-02 17:43:14,438 DEBUG ResourceResolver: Resource <trace-cmd's arm64 trace-cmd> found using :
2016-08-02 17:43:14,438 DEBUG ResourceResolver: /usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/trace_cmd/bin/arm64/trace-cmd
2016-08-02 17:43:14,439 DEBUG android: adb -s 192.168.1.2:5555 shell "mount"
2016-08-02 17:43:14,524 DEBUG android: adb -s 192.168.1.2:5555 push '/usr/local/lib/python2.7/dist-packages/wlauto/instrumentation/trace_cmd/bin/arm64/trace-cmd' '/sdcard/wa-working/trace-cmd'
2016-08-02 17:43:15,116 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'cp /sdcard/wa-working/trace-cmd /data/local/tmp/wa-bin/trace-cmd' | su"
2016-08-02 17:43:15,232 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'chmod 0777 /data/local/tmp/wa-bin/trace-cmd' | su"
2016-08-02 17:43:15,328 DEBUG android: adb -s 192.168.1.2:5555 shell "if [ -e '/sdcard/wa-working/temp-fs-cpufreq' ]; then echo 1; else echo 0; fi"
2016-08-02 17:43:15,393 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'mkdir -p /sdcard/wa-working/temp-fs-cpufreq' | su"
2016-08-02 17:43:15,503 DEBUG android: adb -s 192.168.1.2:5555 shell "echo 'mount -t tmpfs -o size=32m tmpfs /sdcard/wa-working/temp-fs-cpufreq' | su"
2016-08-02 17:43:15,617 INFO Runner: Running workload 1 templerun (iteration 1)
2016-08-02 17:43:15,617 DEBUG instrumentation: Disabling instrument juno_energy
2016-08-02 17:43:15,618 DEBUG instrumentation: Disabling instrument execution_time
2016-08-02 17:43:15,618 DEBUG instrumentation: Disabling instrument interrupts
2016-08-02 17:43:15,618 DEBUG instrumentation: Disabling instrument trace-cmd
2016-08-02 17:43:15,618 DEBUG instrumentation: Disabling instrument cpufreq
2016-08-02 17:43:15,618 DEBUG instrumentation: Disabling instrument fps
2016-08-02 17:43:15,619 DEBUG instrumentation: Enabling instrument execution_time
2016-08-02 17:43:15,619 DEBUG instrumentation: Enabling instrument interrupts
2016-08-02 17:43:15,619 DEBUG instrumentation: Enabling instrument cpufreq
2016-08-02 17:43:15,619 DEBUG instrumentation: Enabling instrument fps
2016-08-02 17:43:15,620 DEBUG instrumentation: Enabling instrument trace-cmd
2016-08-02 17:43:15,620 DEBUG instrumentation: Enabling instrument juno_energy
2016-08-02 17:43:15,620 DEBUG Runner: Setting up device parameters
2016-08-02 17:43:15,622 DEBUG Runner: running templerun
2016-08-02 17:43:15,622 INFO Runner: Setting up
2016-08-02 17:43:15,622 DEBUG android: adb -s 192.168.1.2:5555 shell "dumpsys package com.imangi.templerun"
2016-08-02 17:43:15,700 DEBUG android: /usr/build-tools/android-4.2.2/aapt dump badging /usr/local/lib/python2.7/dist-packages/wlauto/workloads/templerun/Temple_Run_2-Hack.apk
2016-08-02 17:43:15,723 INFO Runner: Skipping the rest of the iterations for this spec.
2016-08-02 17:43:15,723 ERROR Runner: Error while running templerun
2016-08-02 17:43:15,723 ERROR Runner: OSError("[Errno 13] Permission denied")
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 739, in _handle_errors
2016-08-02 17:43:15,737 ERROR Runner: yield
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 618, in _run_job
2016-08-02 17:43:15,737 ERROR Runner: self._run_workload_iteration(spec.workload)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/core/execution.py", line 673, in _run_workload_iteration
2016-08-02 17:43:15,737 ERROR Runner: workload.setup(self.context)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/common/android/workload.py", line 474, in setup
2016-08-02 17:43:15,737 ERROR Runner: ApkWorkload.setup(self, context)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/common/android/workload.py", line 196, in setup
2016-08-02 17:43:15,737 ERROR Runner: self.initialize_package(context)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/common/android/workload.py", line 204, in initialize_package
2016-08-02 17:43:15,737 ERROR Runner: self.initialize_with_host_apk(context, installed_version)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/common/android/workload.py", line 217, in initialize_with_host_apk
2016-08-02 17:43:15,737 ERROR Runner: host_version = ApkInfo(self.apk_file).version_name
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/utils/android.py", line 157, in __init

2016-08-02 17:43:15,737 ERROR Runner: self.parse(path)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/local/lib/python2.7/dist-packages/wlauto/utils/android.py", line 163, in parse
2016-08-02 17:43:15,737 ERROR Runner: output = subprocess.check_output(command)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
2016-08-02 17:43:15,737 ERROR Runner: process = Popen(stdout=PIPE, _popenargs, *_kwargs)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/lib/python2.7/subprocess.py", line 679, in init
2016-08-02 17:43:15,737 ERROR Runner: errread, errwrite)
2016-08-02 17:43:15,737 ERROR Runner: File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
2016-08-02 17:43:15,737 ERROR Runner: raise child_exception
2016-08-02 17:43:15,737 ERROR Runner:
2016-08-02 17:43:15,737 INFO Runner: Job status was FAILED. Retrying...
2016-08-02 17:43:15,737 INFO Runner: Skipping workload 1 templerun (iteration 2)
2016-08-02 17:43:15,737 INFO Runner: Skipping workload 1 templerun (iteration 3)
2016-08-02 17:43:15,737 INFO Runner: Skipping workload 1 templerun (iteration 4)
2016-08-02 17:43:15,738 INFO Runner: Skipping workload 1 templerun (iteration 5)
2016-08-02 17:43:15,738 INFO Runner: Skipping workload 1 templerun (iteration 6)
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument juno_energy
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument execution_time
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument interrupts
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument trace-cmd
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument cpufreq
2016-08-02 17:43:15,738 DEBUG instrumentation: Enabling instrument fps
2016-08-02 17:43:15,738 INFO Runner: Finalizing workloads
2016-08-02 17:43:15,738 INFO Runner: Finalizing.

Is permission denied Juno problem or WA problem?

Need to differentiate Juno r0 /r2 board

I found current WA code and Linaro EAS-kernel need to distinguish Juno r0/r2 boards.

Juno r0: 4 A53 + 2 A57
Juno r2: 4 A54 + 2 A72

From WA side, readenergy tool may need to be revised? OPP freq/voltage needs to be revised?
From Kernel side, juno r2 dts needs to be revised and support r0/r2 in parallel.

Thanks.

Combining WFI states

If we do not see much value in reporting individual WFI states in "cpustate.csv", could you make the automation report a combined WFI states as below?
Ie., something like below:
2b4l,antutu,1,ARM64 WFI-0480000KHz,16.663,5.760,11.991,14.764,0.000,0.000,0.000,0.000
2b4l,antutu,1,ARM64 WFI-0807000KHz,2.325,1.938,1.968,2.084,2.074,4.597,0.000,0.000
2b4l,antutu,1,ARM64 WFI-1018000KHz,0.596,0.513,0.518,0.490,0.000,0.000,0.000,0.000
2b4l,antutu,1,ARM64 WFI-1210000KHz,0.000,0.000,0.000,0.000,0.113,0.175,0.000,0.000
2b4l,antutu,1,ARM64 WFI-1306000KHz,0.945,0.847,0.926,0.840,0.000,0.000,0.000,0.000
2b4l,antutu,1,ARM64 WFI-1517000KHz,16.213,13.772,14.103,13.937,0.849,1.149,0.000,0.000
2b4l,antutu,1,ARM64 WFI-1805000KHz,11.837,8.435,9.834,8.983,0.012,0.017,0.000,0.000
2b4l,antutu,1,ARM64 WFI-2016000KHz,0.000,0.000,0.000,0.000,0.200,0.047,0.000,0.000
2b4l,antutu,1,ARM64 WFI-2304000KHz,0.000,0.000,0.000,0.000,0.596,1.832,0.000,0.000
Would be useful to be reported as,
2b4l,antutu,1,ARM64 WFI-ALL,48.579,31.265,39.340,41.098,3.844,7.817,0.000,0.000

Found few issues while testing "Android marshmallow 6.x release builds"(Linaro) + bbench+audio use case + ARM Juno platform

** Following is the setup description to reproduce the issues:

File-system and firmware:
Linaro release build:
http://releases.linaro.org/android/reference-lcr/juno/6.0-15.12/

Juno : Juno R1 board

Latest wa2(2.4.0)
while running WA tool bbench+audio use case

** Following are the issue and the descriptions and our observations:

  1. working_directory should change to "/data/local/tmp/wa-working/"
    because if it was "/sdcard/wa-working" we are getting following ERROR pop-up:
    net::ERR_ACCESS_DENIED
    and from the browser page "index_noinput.html"

Please find the attached images.

  1. clean exit of readenergy is needed.
    But below error occurred when running benchmark runs with reboot policy "never".

2016-01-11 16:33:27,500 DEBUG android: adb -s 10.162.4.168:5555 shell "echo "cp /data/local/tmp/wa-working/readenergy /system/bin/readenergy" | su"
2016-01-11 16:33:27,620 ERROR instrumentation: Error in insturment juno_energy
2016-01-11 16:33:27,621 ERROR instrumentation: Got exit code 1
2016-01-11 16:33:27,621 ERROR instrumentation: from: adb -s 10.162.4.168:5555 shell "echo "cp /data/local/tmp/wa-working/readenergy /system/bin/readenergy" | su"
2016-01-11 16:33:27,621 ERROR instrumentation: STDOUT: cp: /system/bin/readenergy: Text file busy
2016-01-11 16:33:27,621 ERROR instrumentation: STDERR:
2016-01-11 16:33:27,622 DEBUG instrumentation: Disabling instrument juno_energy
2016-01-11 16:33:27,622 DEBUG HwmonInstrument: Searching for HWMON sensors.
2016-01-11 16:33:27,623 DEBUG android: adb -s 10.162.4.168:5555 shell "ls /sys/class/hwmon"
2016-01-11 16:33:27,716 DEBUG android: adb -s 10.162.4.168:5555 shell "echo "cat '/sys/class/hwmon/hwmon0/device/name'" | su"
2016-01-11 16:33:27,809 DEBUG android: adb -s 10.162.4.168:5555 shell "echo "cat '/sys/class/hwmon/hwmon0/name'" | su"
2016-01-11 16:33:27,896 DEBUG android: adb -s 10.162.4.168:5555 shell "if [ -e '/sys/class/hwmon/hwmon0/energy1_input' ]; then echo 1; else echo 0; fi"
2016-01-11 16:33:27,964 DEBUG android: adb -s 10.162.4.168:5555 shell "if [ -e '/sys/class/hwmon/hwmon0/temp1_input' ]; then echo 1; else echo 0; fi"
2016-01-11 16:33:28,023 DEBUG android: adb -s 10.162.4.168:5555 shell "if [ -e '/sys/class/hwmon/hwmon0/temp1_label' ]; then echo 1; else echo 0; fi"
2016-01-11 16:33:28,091 DEBUG android: adb -s 10.162.4.168:5555 shell "if [ -e '/sys/class/hwmon/hwmon0/temp2_input' ]; then echo 1; else echo 0; fi"
2016-01-11 16:33:28,157 DEBUG HwmonInstrument: Adding /sys/class/hwmon/hwmon0/temp1_input
2016-01-11 16:33:28,158 CRITICAL root: Detected failure(s) during instrumentation initialization.

[Question] Measure FPS for test case "templerun"

Hi there,

If I want to run "temple run" case on Android and want to profiling performance data for its FPS, does WA now support this after I set instrumentation: [fps] in yaml file?

Thanks,
Leo Yan

apk_version instrumentation does not cope with '.' in the version string

Whilst adding this instrumentation to and Adobe Reader workload the following error was produced:

ERROR Error in insturment apk_version
ERROR File "/Users/jamhar03/workspace/workload-automation/wlauto/core/instrumentation.py", line 240, in call
ERROR self.callback(context)
ERROR File "/Users/jamhar03/workspace/workload-automation/wlauto/instrumentation/misc/init.py", line 248, in update_result
ERROR context.result.add_metric(self.name, self.apk_info.version_name)
ERROR File "/Users/jamhar03/workspace/workload-automation/wlauto/core/result.py", line 268, in add_metric
ERROR self.metrics.append(Metric(name, value, units, lower_is_better, classifiers))
ERROR File "/Users/jamhar03/workspace/workload-automation/wlauto/core/result.py", line 314, in init
ERROR self.value = numeric(value)
ERROR File "/Users/jamhar03/workspace/workload-automation/wlauto/utils/types.py", line 78, in numeric
ERROR raise ValueError('Not numeric: {}'.format(value))
ERROR
ERROR ValueError(Not numeric: 15.3.1)

It doesn't seem to like the '.'

replay command times out

The replay command execute()s revent on the target without providing a timeout, which means it times out after the default 30 seconds.

Desired behavior:

Replay command should read the revent file (revent has dump subcommand that can be used for this) and set the timeout based on how long replay actually takes (plus some margin). The same approach can also be used by ReventWorkload for setting the default run timeout.

Hwmon instrument doesn't pick up sensors with new driver

In the latest LSKs (and mainline), the names of the sensors have changed. They no longer contain the cpu types, the full list is below.

I have been able to work around this in lisa by specifying the name of the sensors I wish to track, but I cannot do this in WA.

The sensors and names available are:
curr1_label - "BOARD_CURR_SYS"
curr2_label - "BOARD_CURR_BIG"
curr3_label - "BOARD_CURR_LITTLE"
curr4_label - "BOARD_CURR_GPU"
energy1_label - "BOARD_ENERGY_SYS"
energy2_label - "BOARD_ENERGY_BIG"
energy3_label - "BOARD_ENERGY_LITTLE"
energy4_label - "BOARD_ENERGY_GPU"
in0_label - "SENSOR_VOLT_BIG"
in1_label - "SENSOR_VOLT_LITTLE"
in2_label - "SENSOR_VOLT_SYS"
in3_label - "BOARD_VOLT_SYS"
in4_label - "BOARD_VOLT_BIG"
in5_label - "BOARD_VOLT_LITTLE"
in6_label - "BOARD_VOLT_GPU"
power1_label - "BOARD_POWER_SYS"
power2_label - "BOARD_POWER_BIG"
power3_label - "BOARD_POWER_LITTLE"
power4_label - "BOARD_POWER_GPU"
temp1_label - "SENSOR_TEMP_PMIC"
temp2_label - "SENSOR_TEMP_SOC"
temp3_label - "SENSOR_TEMP_BIG"
temp4_label - "SENSOR_TEMP_LITTLE"
temp5_label - "SENSOR_TEMP_GPU_0"
temp6_label - "SENSOR_TEMP_GPU_1"

Thanks :)

Cannot properly read energy monitor nodes on Juno

Hi there,

Now when we want to capture energy data on Juno board, WA doesn't capture energy data from /sys/class/hwmon/hwmon0/, instead WA will directly read registers from /dev/mem by enabling kernel configuration CONFIG_DEVMEM.

So can't WA change to capture energy data from /sys/class/hwmon/hwmon0/? This will be more formal way.

Feature request: Run one instance of WA across multiple devices

I'm submitting a feature request/enhancement request for WA to run an agenda across multiple devices simultaneously, especially in a board farm setting. IIUC, users can create a config file per device, but there isn't a way to run one instance of WA and have the devices run the workloads in parallel. It'd be nice to say "wa run agenda.yaml -c [list of devices]" or something similar to that in one go.

python error when running WA tool

2016-06-20 14:10:28,993 DEBUG android: adb -s 10.164.4.23:5555 shell "echo 'chmod 0777 /sdcard/wa-working/cpufreq.tar' | su"
2016-06-20 14:10:29,288 DEBUG android: adb -s 10.164.4.23:5555 shell "/data/local/tmp/busybox gzip /sdcard/wa-working/cpufreq.tar"
2016-06-20 14:10:29,499 ERROR instrumentation: Error in insturment cpufreq
2016-06-20 14:10:29,500 ERROR instrumentation: Got exit code 1
2016-06-20 14:10:29,500 ERROR instrumentation: from: adb -s 10.164.4.23:5555 shell "/data/local/tmp/busybox gzip /sdcard/wa-working/cpufreq.tar"
2016-06-20 14:10:29,500 ERROR instrumentation: STDOUT: gzip: can't open '/sdcard/wa-working/cpufreq.tar.gz': File exists
2016-06-20 14:10:29,500 ERROR instrumentation:
2016-06-20 14:10:29,500 ERROR instrumentation: STDERR:
2016-06-20 14:10:29,500 DEBUG instrumentation: Disabling instrument cpufreq
2016-06-20 14:10:29,501 DEBUG android: adb -s 10.164.4.23:5555 pull '/sdcard/wa-working/energy.csv' 'wa_output/idle_big_big_idle_state0_1_1/energy.csv'

adb install needs to add -r

Scenario:
An android device has the workload as a default stock app, as such you cannot uninstall, only downgrade this app.
wa checks the target and host apk versions to see if it exists and is a version >= min_apk_version.
Host is, but target is not.
wa attempts to install host onto target, and does this by uninstalling first then installing the host apk.
If the app is a stock app, uninstall fails. wa doesnt check this status and assumes the app has uninstalled.
wa then tries to install the host, but the install command fails because it is already installed and the -r (reinstall) option has not been used.

E.g.:
Huawei Mate 8 Device, Youtube workload.
min_apk_version = '11.19.56'
2016-10-07 12:22:45,432 DEBUG Youtube: Found version '10.49.59' on target device
2016-10-07 12:22:45,503 DEBUG Youtube: Found version '11.33.58' on host
2016-10-07 12:22:45,503 DEBUG Youtube: check_apk is 'True' and the host version is not on the target, installing APK
2016-10-07 12:22:45,503 DEBUG android: adb -s 192.168.1.1:5555 uninstall com.google.android.youtube
2016-10-07 12:22:46,056 DEBUG android: adb -s 192.168.1.1:5555 shell "getprop"
2016-10-07 12:22:46,104 DEBUG HUAWEINXTL29Device: Replace APK = False, ADB flags = '-g'
2016-10-07 12:22:46,104 DEBUG android: adb -s 192.168.1.1:5555 install -g '/home/user/.workload_automation/dependencies/youtube/apk/arm64/com.google.android.youtube_11.33.58-113358140_minAPI16(arm64-v8a)(nodpi).apk'
2016-10-07 12:23:12,854 WARNING Youtube: Using already installed APK (did not unistall properly?)

Proposed solution. Always set Replace APK to True, which should add the adb flag to include -r.
May also be worth adding -d too, as this allows downgrading.
Optionally, check whether uninstall succeeded (should fail if it is a stock app) and if it failed, add -r flag

WA automation Feature Requests.

WA - Feature Request:

  1. Need a Framework where i can have the corresponding config.py file, revents picked for very device Supported.

    Now we run wa as below
    wa run -vf agendas/usecase.yaml

If we can specify the device in the parameter and the corresponding config files, revents ( if applicable) get picked then it would be easier to maintain once copy of WA and support any number of devices.
wa run -vf agendas/usecase.yaml S6
wa run -vf agendas/usecase.yaml mate8

  1. If WA can be multi threaded then we will be able to support multiple device runs on a single machine and single copy. If i want to test on 5 devices i need 5 different copies of WA in 5 different logins for WA to install and get the results.

Temperature instrumentation

Could we please have an instrument which polls all of the thermal devices in /sys/devices/virtual/thermal/ every second and dumps them to a csv file? The sysfs instrument could be extended to provide this functionality.

With this instrument we can make comparative measurements between workloads on the same device. We could not accurately compare different devices against each other but we could gain useful data.

How to run a android apllication

Hi experts,

I tried to run the below commands:

wa run -f angrybirds

firstly, it compains 'CRITICAL <'s apk> could not be found'. Then I cp angrybirds.apk to /usr/local/lib/python2.7/dist-packages/wlauto/workloads/angrybirds. But it still compains:

CRITICAL <'s revent> could not be found

So I use the revent to generate a revent.bin, and copy the file to /usr/local/lib/python2.7/dist-packages/wlauto/workloads/angrybirds. But it doesn't help.

Is that because of I assigned the wrong file name for the revent file? If so, what's the right one?

Thank you!

Add a "dry run" option

In some circumstances it may be useful to be able to see what is going to happen during a WA run without actually running anything; e.g. there may be a complicated agenda where the resulting sequence of execution may not be immediately obvious.

Proposal

Add a --dry-run command line option to the run command. This will result in log output for the run with no actions actually taken on the device.

Discussion

An immediately obvious way of implementing this would be to introduce an alternative runner which derives from the existing runner implementation and overrides some of the methods such as _reboot_device and _run_workload_iteration to only produce log output.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.