1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-07 03:11:53 +01:00
Commit Graph

712 Commits

Author SHA1 Message Date
Sergei Trofimov
bb37c31fed perf: added support for per-cpu statistics
per-cpu statistics now get added as metrics to the results (with
a classifier used to identify the cpu).
2015-12-11 14:01:04 +00:00
Sergei Trofimov
0005f927e8 pep8 2015-12-11 14:01:04 +00:00
setrofim
9222257d79 Merge pull request #67 from ep1cman/recentfling
Recentfling
2015-12-11 11:06:45 +00:00
Sebastian Goscik
585d8b2d7d recentfling: Added workload 2015-12-11 11:02:25 +00:00
Sebastian Goscik
d3470dca73 AndroidDevice: Fixed swipe_to_unlock
Previously swipe_to_unlock was not used and conflicted with a method
of the same name.

 - swipe_to_unlock() renamed perform_unlock_swipe()
 - swipe_to_unlock parameter now takes a direction, this allows swipe unlocking on Android M devices
 - ensure_screen_is_on() will now also unlock the screen if swipe_to_unlock is set
2015-12-11 10:58:32 +00:00
Sergei Trofimov
0f60e9600f trace_cmd: parser for sched_switch events and fixes
- Compiled regular expressions in EVENT_PARSER_MAP now get handled
  correctly.
- regex_body_parser now attemts to convert field values to ints,
  bringing it inline with the default parser behavior.
- There is now a regex for sched_switch events.
2015-12-10 13:41:24 +00:00
Sergei Trofimov
6a85dff94f pylint: addtional fix
further to bef8fb40ef
2015-12-10 13:39:28 +00:00
Sascha Bischoff
72a617c16d Gem5Device: Remove the rename in pull_file to align with gem5 2015-12-10 11:09:42 +00:00
Sascha Bischoff
d6355966bf Gem5Device: Removed unused methods 2015-12-10 11:09:42 +00:00
Sascha Bischoff
845d577482 Gem5LinuxDevice: Added login_prompt and login_password_prompt parameters
Added two parameters which allow the user to change the strings used
to match the login prompt and the following password prompt to match
their device configurations.
2015-12-10 11:09:42 +00:00
Sascha Bischoff
9ccf256ee8 AndroidDevice: Use content instead of settings to get ANDROID_ID
We move from using settings to using content to get the ANDROID_ID as
this works across a wider range of Android versions.
2015-12-10 11:09:42 +00:00
Sascha Bischoff
cc9b00673e Gem5AndroidDevice: No longer wait for disabled boot animation
Adjust the wait_for_boot method of Gem5AndroidDevice to no longer wait
for the boot animation to finish if the animation has been
disabled. The service.bootanim.exit property is only set (to 0) when
the animation starts, and is set to 1 when the animation finishes. If
the animation never starts, then the property is not set at
all. Hence, we assume the boot animation has finished, unless the
property has been set.
2015-12-10 11:09:42 +00:00
Sascha Bischoff
e7c75b2d3b Gem5: Add support for deploying the m5 binary 2015-12-10 11:09:41 +00:00
Sascha Bischoff
480155fd8c Gem5Device: Try to connect to the shell up to 10 times 2015-12-10 11:09:41 +00:00
Sascha Bischoff
d98bdac0be Gem5Device: Move resize shell commands to own method
Moved the commands to resize the shell to their own method. They are
now executed twice. Once as soon as the shell is connected, and a
second time as part of initialize. This latter call takes place after
the isntallation of busybox.
2015-12-10 11:09:41 +00:00
Sascha Bischoff
32cf5c0939 Gem5Device: Removed busybox dependency. 2015-12-10 11:09:41 +00:00
Sebastian Goscik
bef8fb40ef Updated pylint for v1.5.1
Fixed WA for the latest version of pylint (1.5.1)
2015-12-09 16:52:39 +00:00
Sergei Trofimov
344bc519c4 AndroidDevice: fixing get_properites to refer to self.device
This is a fix to the previous fix
(2510329cdf) that updated get_properties
to store "dumpsys window" output relative to the working_directory. That
commit constructed the path using self.device, which is wrong, as in
this case self itself is the device.
2015-12-08 11:26:56 +00:00
setrofim
3da58d9541 Merge pull request #64 from ep1cman/hwuitest
hwuitest: Added workload
2015-12-03 16:46:06 +00:00
Sebastian Goscik
065ebaac61 hwuitest: Added workload
This workload allow WA to use hwuitest from AOSP to test rendering
latency on Android devices.
2015-12-03 15:07:42 +00:00
Sergei Trofimov
f85ef61ce9 lmbench: add the output file as an artifiact 2015-12-03 10:54:32 +00:00
setrofim
e5c6ef5368 Merge pull request #62 from ep1cman/trace-cmd-target-extract
trace-cmd: Added ability to generate reports on target device
2015-12-02 09:58:44 +00:00
Sebastian Goscik
a697c47c49 trace-cmd: Added ability to generate reports on target device 2015-12-02 09:53:43 +00:00
Sascha Bischoff
c6e712d44c Gem5Device: simplfy if statement based on pylint recommendation 2015-12-01 18:23:26 +00:00
Sascha Bischoff
00c9bdc2a6 Gem5Device: Fix runtime error caused by lack of kwargs 2015-12-01 18:23:26 +00:00
setrofim
1b31d8ef6f Merge pull request #53 from ep1cman/systrace
Added systrace instrument
2015-11-27 09:54:57 +00:00
Sebastian Goscik
b3a9512f44 Added systrace instrument
Added an instrument to uses systrace.py from the android SDK.
 Generates a fancy HTML report (only works in Google chrome).
2015-11-27 09:53:59 +00:00
Sergei Trofimov
a06016a442 adb_shell: fixing handling of line breaks at the end of the output
- adb protcol uses "\r\n" for line breaks. This is not handled by
  Python's line break translation, as not a file. So spliting on '\n'
  when extracting the exit code resulted in stray '\r' in the output.
- adb_shell expects exit code to be echoed on the same line. This may
  not have been the case if latest output from executed command was not
  a complete line. An extra echo will now ensure that the exit code will
  be on its own line even in that case.
2015-11-24 15:50:38 +00:00
Sergei Trofimov
c02a1118d7 BaseLinuxDevice: list_file_systems() now handles blank lines
mount() may return an empty line at the end of the output; this update
handles that.
2015-11-24 15:50:38 +00:00
Sebastian Goscik
d9f1190e1f Version bump 2015-11-23 16:19:45 +00:00
Sascha Bischoff
c533da3f38 Gem5Device: Fix issue with init arguments
- This patch addresses an issue with the arguments passed the
  BaseGem5Device __init__. With this patch these are no longer passed
  in as they are not required in the base device implementation.
2015-11-20 13:10:35 +00:00
Sergei Trofimov
8261c1d5b5 freqsweap: fix: was erroneously merging runtime_params into workload_params 2015-11-19 14:11:23 +00:00
setrofim
1d12e6a8b0 Merge pull request #57 from ep1cman/freqsweep
Freqsweep: Added the ability to specify workload/runtime parameters
2015-11-18 11:29:39 +00:00
Sebastian Goscik
2957d63e2f Freqsweep: Added the ability to specify workload/runtime parameters
E.g:
  sweeps:
    - cluster: a15
      runtime_params:
        a15_cores: 1
2015-11-18 11:27:35 +00:00
Sebastian Goscik
2063f48cf0 streamline: cleaned up and added Linux support
- The streamline instrument can now run on linux clients
  because it no longer relies on adb port forwarding
- Updated description.
- Cleaned up code
- Now check for streamline not caiman
- Gatord is now only run once instead of restarted every
  job
2015-11-16 17:27:17 +00:00
Sergei Trofimov
2510329cdf AndroidDevice fix: create dympsys file relative to working directory on target.
Commit 95f17702d7 redirected output of
"dumpsys window" to a file (needed for Gem5 support). However, the file
was created in $PWD, which breaks on production devices, as that
location is not writable. This moves the file under the working
directory on the device.
2015-11-16 13:09:28 +00:00
Sergei Trofimov
9c8c81cc25 csv result processor: write results.csv after each iteration.
(partial) results.csv will now be written after each iteration rather
than at the end of the run.
2015-11-16 12:43:52 +00:00
Sergei Trofimov
2e5b3671e9 LinuxDevice fix: do not invoke super's hard_reset()
as it does not have one...
2015-11-16 12:43:52 +00:00
Sergei Trofimov
705ce9ae40 rt_app: added an option to force install.
Userful when the target device already has rt-app on it, but you want to
replace it with the version from your host.
2015-11-16 12:43:52 +00:00
setrofim
f43daacd41 Merge pull request #52 from ep1cman/freqsweep
Added freqsweep instrument
2015-11-13 15:19:52 +00:00
Sebastian Goscik
3b41f69762 Added freqsweep instrument
Added an instrument to sweep workloads across all available frequenices
2015-11-13 15:16:54 +00:00
setrofim
a722e594af Merge pull request #55 from Sticklyman1936/split_gem5device
Gem5Device: Refactor into BaseGem5Device, Gem5LinuxDevice and Gem5And…
2015-11-13 14:26:07 +00:00
Sascha Bischoff
a447689a86 Gem5Device: Refactor into BaseGem5Device, Gem5LinuxDevice and Gem5AndroidDevice
- Refactored the Gem5Device to avoid duplicated code. There is now a
  BaseGem5Device which includes all of the shared functionality. The
  Gem5LinuxDevice and the Gem5AndroidDevice both inherit from
  BaseGem5Device, and LinuxDevice or AndroidDevice, respectively.
2015-11-13 14:19:24 +00:00
setrofim
9fe4887626 Merge pull request #54 from ep1cman/daq_merge
Added ability to merge DAQ channels
2015-11-13 11:00:36 +00:00
Sebastian Goscik
6492b95edd Added ability to merge DAQ channels
If the parameter merge_channels is set to true (false by default).
 DAQ channels that have consecutive letters on the end of their names
 will be summed together. E.g: A7, A15a, A15b becomes A7, A15

 You can also  manually specify a channel mapping by setting
 merge_channels to a dict. .
2015-11-13 10:56:50 +00:00
Sascha Bischoff
55f6ef4a5e Gem5Device: Remove VirtIO device rebinding to align with gem5
- Remove the unbind and rebind for the VirtIO 9P mount method as gem5
  now checkpoints the basic state of the device. This allows us to
  just mount it assuming that checkpoint have been created correctly.
2015-11-11 16:45:01 +00:00
Sascha Bischoff
672c74c76c Gem5Device: Avoid duplicate get_properties code
- Remove the duplicated get_properties code by calling the internal
  _get_android_properties method directly.
2015-11-11 16:45:01 +00:00
Sascha Bischoff
95f17702d7 AndroidDevice: Move the processing of Android properties to an internal method
- Move the processing of Android properties to an internal
  method. This allows the Android properties to be extracted without
  extracting those of the Linux device.

- Redirect the output from 'dumpsys window' to a file and pull the
  file as opposed to extracting the output from the terminal. This is
  more reliable in the event that another process writes to the shell.
2015-11-11 16:45:01 +00:00
Sascha Bischoff
ee4764adc4 Gem5Device: Addressed review comments
- Replaced hard-coded pexpect expect string with UNIQUE_PROMPT.

- Changed the capture_screen debug to a warning to make sure that the
  user knows when it happens.

- Fixed the logic for checking when a file exists. Previously, if the
  output could not correctly be processed (ValueError) then we just
  assumed that the file existed if there was any output at all. This
  is clearly not a good default. Changed to default to False if it was
  not able to process the output as this seems to be the safest
  option.

- Changed ad hoc filename extraction to use os.path.basename.

- Removed the processing of some kwargs and defaults that are handled
  by the parent class.

- Stopped overriding some paramaters which were purely defined in the
  Gem5Device.
2015-11-11 16:45:00 +00:00
Sascha Bischoff
3a8eed1062 Gem5Device: Allowed the gem5 binary to be specified in the agenda
- Added the gem5_binary option to the agenda which allows a different
  gem5 binary to be specified. This allows WA to be used with
  different levels of gem5 debugging. as well as allowing non-standard
  gem5 binary names and locations.
2015-11-04 10:38:50 +00:00
Sascha Bischoff
29abd290f4 Gem5Device: Fix style issues
- Fix up style issues
2015-11-02 16:30:13 +00:00
Sascha Bischoff
3bf114cf48 Gem5Device: Improve shell command matching
- Replace ugly while True loop with a simple regex substitution
  achieving the same thing. This is required to match the command in
  the shell output when the command wraps around due to the length of
  the command.
2015-11-02 11:42:33 +00:00
Sascha Bischoff
96a6179355 Gem5Device: Add a gem5 device for Android
- Implementation of a gem5 device which allows simulated systems to be
  used in the place of a real device. Currently, only Android is
  supported.

- The gem5 simulation is started automatically based on a command line
  passed in via the agenda. The correct telnet port to connect on is
  extracted from the standard error from the gem5 process.

- Resuming from gem5 checkpoints is supported, and can be specified as
  part of the gem5 system description. Additionally, the agenda option
  checkpoint_post_boot can be used to create a checkpoint
  automatically once the system has booted. This can then by used for
  subsequent runs to avoid booting the system a second time.

- The Gem5Device waits for Android to finish booting, before sending
  commands to the simulated device. Additionally, the device supports
  a sleep option, which will sleep in the simulated system for a
  number of seconds, prior to running the workload. This ensures that
  the system can quieten down, prior to running the workload.

- The Gem5Device relies of VirtIO to pull files into the simulated
  environment, and therefire diod support is required on the host
  system. Additionally, VirtIO 9P support is required in the guest
  system kernel.

- The m5 writefile binary and gem5 pseudo instruction are used to
  extract files from the simulated environment.
2015-11-02 10:15:34 +00:00
Sascha Bischoff
a6382b730b TelnetConnection:
- Allowed telnet connections without a password.

This is required as part of the upcoming Gem5Device, which uses a
password-less telnet connection to communicate with the device.
2015-11-02 10:09:59 +00:00
Sebastian Goscik
b9b4a7c65c Fixed telnet support
- Added port kwarg to telnet login function (default port=23)
2015-10-21 11:53:25 +01:00
Sergei Trofimov
20a5660ea1 android device: always deploy busybox on rooted devices. 2015-10-19 13:40:50 +01:00
Sergei Trofimov
691c380779 serial_port: updating to handle newer versions of pexpect
from version 4.0.0 onwards, fdpexpect is now namespaced under the main
pexpect libarary, rather than being stand-alone.
2015-10-16 17:38:19 +01:00
Sergei Trofimov
7546232c10 trace_cmd: fix parser to oportunistically convert parsed values to ints
This was done previosly but was broken by commit

1c146e3ce7
2015-10-16 17:08:09 +01:00
Sergei Trofimov
4fa3d9de6e Import pxssh via pexpect
Importing it directly causes issues in some environments.
2015-10-16 11:05:53 +01:00
Sergei Trofimov
90bfbf6022 Adding autotest workload wrapper. 2015-10-09 08:43:53 +01:00
Lisa Nguyen
2c5d51cb2a rt-app: Update use cases
Add video-long.json and video-short.json files and
update spreading-tasks.json. The originals can be
found in git.linaro.org/power/rt-app.git repo.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-08 17:46:20 -07:00
Sergei Trofimov
1c146e3ce7 trace_cmd: more robust event fields parsing
The default paraser can now handle spaces in field values (but not field
names).
2015-10-08 17:13:48 +01:00
Sergei Trofimov
6159711a05 iozone: ensure test 0 always runs
Test 0 (write) creates a file that is used by subsequent tests.
Therefore if this test is not specified withen selecting which tests to
run, izone will fail with an error.

To avoid this, check the tests list specified by the user andd add test
0 if necessary.
2015-10-08 09:16:32 +01:00
Sergei Trofimov
208fdf4210 iozone: pylint fixes 2015-10-08 09:10:08 +01:00
setrofim
0fc602ecdb Merge pull request #43 from lisatn/iozone
Add iozone workload
2015-10-08 08:59:36 +01:00
Sergei Trofimov
552ea2a1bb fix: moving is_file and is_directory into BaseLinuxDevice, as relied on by get_properties. 2015-10-05 16:30:33 +01:00
Lisa Nguyen
5f6247cf8b iozone: Modify comments
Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-01 14:57:35 -07:00
Lisa Nguyen
c96a50e081 iozone: Add description to enable classifiers
In order to show more detailed results for the iozone
workload, inform users to enable classifiers in their
agenda or config file.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-01 14:48:09 -07:00
Lisa Nguyen
812bbffab1 iozone: Rewrite parse_metrics() function
When users specify tests, the parse_metrics()
function doesn't capture the last report name and its
results during the parsing process. Fix the
parse_metrics() function to make sure the data for
all reports are captured.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-01 12:38:04 -07:00
Lisa Nguyen
361f1a0f0c iozone: Whitespace cleanup
Cleanup whitespace and reorganize code.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-01 11:52:51 -07:00
Lisa Nguyen
8e84e4a230 iozone: Add descriptions and refactor code
Add test descriptions, remove defaults, and
fix functions to parse non-thread related data.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-10-01 11:37:05 -07:00
Sergei Trofimov
fe4d49e334 android device: added swipe-to-unlock option 2015-10-01 12:06:02 +01:00
Sergei Trofimov
dc01dd79ee telemetry: report errors. 2015-10-01 12:06:02 +01:00
Sergei Trofimov
0003993173 daq: updated workload labeling in daq_power.csv
Workload labels, rather than names, are now used in the "workload"
column.
2015-10-01 12:05:53 +01:00
Sergei Trofimov
b6442acf80 device: more reliable get_properites
Pulling entries from procfs does not work on some platforms. This commit
updates get_properites() to cat the contents of a property_file and
write it to output file on the host, rather than pulling it (directories
are still pulled).
2015-09-30 12:39:49 +01:00
Sergei Trofimov
a6feb65b34 daq: adding gpio_sync option.
When enabled, this wil cause the instrument to insert a marker into
ftrace, while at the same time setting a GPIO pin high.

For this to work, GPIO sysfs interface must be be enabed in the kernel
and the specified pin must be exported.
2015-09-25 15:03:16 +01:00
Sergei Trofimov
f1d3ebc466 adding missing supported_platforms attributes.
Bbench only works on Android. It should advertise that fact by setting
supported_platforms to ['android'].
Telemetry is a Chrome browser workload that is only supported on
ChromeOS and Android.
2015-09-23 08:42:09 +01:00
Sergei Trofimov
0608356465 list command: adding --packaged-only option
With this option, only extensions packaged with WA itself will be
listed. Extensions discovered from other packages or from local paths
will not appear in the list.
2015-09-22 08:41:53 +01:00
Sergei Trofimov
d7ef6ff8ba netstats: added "period" parameter.
This parameter allows specifying polling period for the on-device
service.
2015-09-21 08:45:26 +01:00
Sergei Trofimov
2904246cb5 Adding netstats instrument.
This instrument allows monitoring data sent/received by applications on
an Android device.
2015-09-18 09:33:17 +01:00
Sergei Trofimov
5abb42eab9 Do not attempt to get_sysfile_value() as root on unrooted devices. 2015-09-18 09:33:17 +01:00
Lisa Nguyen
18f4c3611c rt-app: Update binaries
A newer version of rt-app has been released. Built
binaries from git://git.linaro.org/power/rt-app.git.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-09-15 14:43:47 -07:00
Sergei Trofimov
6bdd6cf037 energy_model: preserve indecies during bs power table calculation. 2015-09-14 16:06:00 +01:00
Sergei Trofimov
e36c619fc2 vexperess flashing: added an option to keep UEFI entry 2015-09-14 15:31:21 +01:00
Sergei Trofimov
76253e1e26 Fixing turning off UI in ChromeOS + adding it energy_model. 2015-09-14 12:53:08 +01:00
Sergei Trofimov
bf8dc6642f energy_model: cleanner error reporting. 2015-09-14 11:05:26 +01:00
Sergei Trofimov
3d8c384bb7 cpufreq: handle non-integer output in get_available_frequencies 2015-09-14 11:03:54 +01:00
Sergei Trofimov
3247b63cb9 shh: handle backspaces in serial output 2015-09-14 10:58:14 +01:00
Lisa Nguyen
100c6c0ac9 iozone: Add functions and rewrite update_result()
Added functions to parse thread-mode results and
non-thread mode results accordingly, in addition
to rewriting the update_result() function.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-09-13 20:50:17 -07:00
Sergei Trofimov
f063726cc3 Further fixes for Juno flashing. 2015-09-10 08:40:09 +01:00
Sergei Trofimov
84f7adbfb2 uefi menu: updated prompt_regex to handle debug UEFI builds. 2015-09-09 17:40:02 +01:00
Sergei Trofimov
b6c497d32b Updated boolean to interpret 'off' as False 2015-09-09 14:32:27 +01:00
Sergei Trofimov
f430187b11 sysbench: fixed case where default timeout < max_time 2015-09-08 18:00:17 +01:00
Sergei Trofimov
37c49e22b3 chromeos_test_image: added a runtime parameter to disable ui 2015-09-08 17:43:10 +01:00
Sergei Trofimov
9e12930a43 dhrystone: kill any running instances during setup (also handle CTRL-C). 2015-09-08 17:42:18 +01:00
Sergei Trofimov
d5f4457701 cpufreq: refined availability check not to rely on the top-level cpu/cpufreq directory 2015-09-08 17:41:25 +01:00
Sergei Trofimov
c9f86b05dd flashing: fixing vexpress flashing 2015-09-07 17:56:05 +01:00
Sergei Trofimov
5eb7ca07fe energy_model: fix cluster power estimation based on voltage. 2015-09-07 11:52:31 +01:00
Sergei Trofimov
6d6cddff58 Added 'negative_values' to daq instrument which can be used to specify how negative values in the samples should be handled. 2015-09-04 17:22:17 +01:00
Sergei Trofimov
94cc17271e sysfs_extractor: fixed pulled files verification.
When no files are listed for one the specified directoris, the
instrument checks whether there are any files in that directory on the
device. If that directory itself does not exist; that will result in an
error. This is now handled correctly.
2015-09-04 08:56:19 +01:00
Sergei Trofimov
9aadb9087a http_assets: fixing that which was broken 2015-09-04 08:56:15 +01:00
Sergei Trofimov
2e35d4003f nenamark: made duration configurable. 2015-09-03 17:29:42 +01:00
Sergei Trofimov
0d076fe8ba andebench: added parameter to only run native portion of the benchmark. 2015-09-03 17:21:45 +01:00
Sergei Trofimov
bfed59a7cf Adding an HTTP-based resource getter. 2015-09-03 13:55:44 +01:00
Sergei Trofimov
047308a904 ipython: pylint fixes 2015-09-03 12:07:41 +01:00
Sergei Trofimov
0179d45b5b energy_model: minor fix for previous adjustment. 2015-09-03 11:06:26 +01:00
Sergei Trofimov
c04b98c75a ipython: updated version check.
Version 4.0.0 changes API and breaks WA's usage of it. Updated version
check to only initialize ipython utils if version is < 4.0.0.
2015-09-02 17:39:11 +01:00
Sergei Trofimov
3501eccb8e energy_model: yet another adjustment to leakage compensation. 2015-09-02 15:31:13 +01:00
Sergei Trofimov
a80780b9ed energy_model: idle state fix 2015-09-01 16:19:53 +01:00
Sergei Trofimov
1b6b0907f9 energy_model: further fixes to idle measurement.
- Fix to core frequency to min
- Only disable idle states that are deeper than the measured state.
  Keep shallower states enabed.
2015-08-28 17:12:24 +01:00
Javi Merino
227c39d95d trace: fix data file trace name in warning
The warning refers to trace.bin, which is not the extension that we use
for it.  Instead, use the variable with the default trace
name (trace.dat) for the warning.
2015-08-28 15:52:43 +01:00
Sergei Trofimov
25b9350fea energy_model: fixing idle state handling to encompass all active cores on a cluster. 2015-08-26 12:48:22 +01:00
Sergei Trofimov
9b7b57a4d4 androbench: removed trailing spaces from metric names. 2015-08-21 13:58:00 +01:00
Sergei Trofimov
5aae705172 androbench: added early check for root on device; updated description with link to website. 2015-08-21 09:37:53 +01:00
setrofim
b653beacd3 Merge pull request #45 from bathepawan/master
Androbench Storage Benchmark
2015-08-21 09:16:28 +01:00
Sergei Trofimov
88f57e5251 Agenda: default config to dict 2015-08-21 08:34:49 +01:00
Pawan Bathe
f44fd9df7a Change device pull to handle root,and renamed local file as well history.db from results.db 2015-08-20 21:25:55 +05:30
Pawan Bathe
8513304aeb python sqlite3 to remove host/DUT dependencies + other changes 2015-08-19 21:53:50 +05:30
Pawan Bathe
e38c87f258 Fix pylint errors 2015-08-18 01:28:09 +05:30
Pawan Bathe
03a9470007 Fixed issue reported by pep8 checkers 2015-08-18 01:09:45 +05:30
Pawan Bathe
2d8b8ba799 moved UiAutomator code to java, and removed not required python code for device interfacing 2015-08-18 00:46:48 +05:30
Pawan Bathe
e4ee496bc9 Use sqllite3 instead of sqllite to remove host dependencies and result unit in proper format 2015-08-17 23:20:30 +05:30
Sergei Trofimov
205934d55b juno: use bootargs on hard_reset with u-boot 2015-08-17 14:36:28 +01:00
Sergei Trofimov
95c3f049fb trace_cmd: handle trace headers and thread names with spaces 2015-08-17 12:37:58 +01:00
Sergei Trofimov
25c0fd7b8b Allow setting classifiers via agenda. 2015-08-17 10:37:40 +01:00
Pawan Bathe
1cf60c2615 Results format 2015-08-15 02:39:45 +05:30
Pawan Bathe
c3d8128ff3 Androbench Storage Benchmark Workload Addition 2015-08-15 02:10:08 +05:30
Sergei Trofimov
aa2ae03ce6 daq: daq_power.csv now matches the order of labels (if specified). 2015-08-13 16:10:58 +01:00
Sergei Trofimov
6137d5650f delay: added fixed_before_start configuration; updated all to be very_slow
- fixed_before_start is a fixed time period equivalent to
  temperature_before_start
- Changed existing *_between_specs and *_between_iterations callbacks to
  be very_slow, as they should always run after everything else.
2015-08-12 16:12:38 +01:00
Sergei Trofimov
0703db05cf rt-app: relaxing timeouts. 2015-08-12 11:53:29 +01:00
Sergei Trofimov
0e1990a2bb ssh: fixed error reporting on failed exit code extraction. 2015-08-12 11:28:38 +01:00
Lisa Nguyen
25e53c2abc iozone: Add license information
Add license information for the iozone binaries.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-08-11 14:07:26 -07:00
Sergei Trofimov
14f5858e3d pep8 2015-08-11 17:02:38 +01:00
Sergei Trofimov
a6d374bcff wa create workload: better error reporting
Give more informative errors if Android SDK installed but no
platform has been downloaded.
2015-08-11 16:59:25 +01:00
Sergei Trofimov
85eba9c37a Better error reporting for subprocess.CalledProcessError 2015-08-11 16:51:34 +01:00
Lisa Nguyen
0acbcc9f95 Add iozone workload
Initial commit of the iozone workload.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-08-10 13:13:17 -07:00
Sergei Trofimov
1d67dd3b99 energy_model: adjusting to compensate for leakage when evaluating cluster power 2015-08-10 10:48:26 +01:00
Sergei Trofimov
ab45c4499f utils.misc.normalize: only normalize string keys. 2015-08-10 10:42:20 +01:00
Sergei Trofimov
75e4b7d2ae fps: filter out bogus actual-present times and ignore janks above PAUSE_LATENCY
The PAUSE_LATENCY thing is in line with what Google do inside
SurfaceFlingerHelper.
2015-08-06 11:20:58 +01:00
Sergei Trofimov
5e92728d77 pylint fixes 2015-07-27 10:11:59 +01:00
Sergei Trofimov
b5d879a90b APK workloads: added an option to skip host-side APK check entirely. 2015-07-27 09:55:23 +01:00
Sergei Trofimov
507efaec48 perf: reverting type change for optionstring 2015-07-24 16:20:14 +01:00
Sergei Trofimov
0db14e2466 Updating energy_model to mitigate cluster power issue
A quadratic is now fitted to single and two-core power measured across
frequencies. This quadratic is then used in projection of cluster power.
This mitigates issues with cluster powers going negative or "crossing
over".
2015-07-24 08:11:23 +01:00
Sergei Trofimov
6ced04daf0 Fix for the previous fix... 2015-07-23 10:25:13 +01:00
Sergei Trofimov
b6064fa348 perf: fix for Android: killall sleep as root. 2015-07-23 10:17:01 +01:00
setrofim
6207f79f01 Merge pull request #41 from rockyzhang/patch-2
passing 'video' command line to Juno kernel
2015-07-21 18:09:45 +01:00
Sergei Trofimov
295b04fb5a Updating jank calcluation to only count "large" janks. 2015-07-21 10:03:21 +01:00
Sergei Trofimov
19072530e4 daq: fix for the updated twisted support. 2015-07-21 08:35:36 +01:00
Sergei Trofimov
39ed42ccb9 daqpower: updating to work with new versions of twisted. 2015-07-20 17:40:02 +01:00
Sergei Trofimov
89da25c25e cpustates: added "Running (unknown Hz)" state to the timeline. 2015-07-20 17:04:09 +01:00
Sergei Trofimov
4debbb2a66 Updating ANROID_VERSION_MAP with recent versions. 2015-07-17 17:24:14 +01:00
Sergei Trofimov
e38bd942a8 bbench: fixed to work when binaries_directory is not in path. 2015-07-17 15:38:47 +01:00
Sergei Trofimov
d2dbc9d6dd Added the ability to override the timeout of deploying the assets tarball in GameWorkload 2015-07-16 16:53:35 +01:00
Rocky Zhang
d512029f10 Update __init__.py 2015-07-16 16:27:08 +08:00
Rocky Zhang
dc7dea1c3e passing 'video' command line to Juno kernel
There's a known issue that HDMI will lose sync with monitor, adding video kernel parameter will make the HDMI more stable for juno

> HDMI can lose sync with the monitor intermittently, particularly at higher resolutions. 
> If you are affected by this then try adding a kernel command line argument that forces 
> a video mode with reduced blanking, such as the following:
> video=DVI-D-1:1920x1080R@60
2015-07-16 15:45:26 +08:00
Sergei Trofimov
2d3be33bb0 Added target_config option to telemetry 2015-07-14 11:26:17 +01:00
Sergei Trofimov
65ab86221b Reduce starting priority of trace-cmd instrument. 2015-07-13 17:04:45 +01:00
Sergei Trofimov
b8e25efdd4 ssh: attempt to deal with dropped connections 2015-07-10 11:44:01 +01:00
setrofim
2e4bda71a8 Merge pull request #39 from JaviMerino/ipynb_convert_to_html
ipynb_exporter convert to html
2015-07-09 13:58:51 +01:00
Javi Merino
30d7ee52f4 ipynb_exporter: learn to convert the notebook to HTML 2015-07-09 12:50:02 +01:00
Javi Merino
539c3de7b8 ipython: rename IPYTHON_NBCONVERT to IPYTHON_NBCONVERT_PDF
This command is tailored for converting notebooks to pdf, but we also
want it to be able to generate html.
2015-07-09 12:49:31 +01:00
Sergei Trofimov
687e1ba6b8 daq server: report DAQError messages properly 2015-07-09 11:00:46 +01:00
Sergei Trofimov
a72ae92ece stream: pylint/pep8 fixes. 2015-07-09 08:23:20 +01:00
Lisa Nguyen
255e6c1545 stream: Add initialize and finalize functions
Add initalize and finalize functions in the stream workload
in addition to simplifying code.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-07-08 11:16:13 -07:00
Lisa Nguyen
c733ecad98 Add stream workload
Initial commit of the stream workload to measure
memory bandwidth.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-07-07 11:12:28 -07:00
Sergei Trofimov
088d0f6981 fix: added remote_assets_mount_point to ingore list for cofig parsing 2015-07-07 16:20:24 +01:00
Sergei Trofimov
13e5e4d943 adb_connect: do not assume port 5555 2015-07-07 11:19:58 +01:00
Naresh Kamboju
6e72ad0cc3 hwmon: print both before/after and mean temperatures
Print both before/after and mean temperatures of DCC and MCC

Example:
mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp DCC",34.062,Celsius mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp DCC before",33.849,Celsius mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp DCC after",34.275,Celsius mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp MCC",45.432,Celsius mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp MCC before",45.432,Celsius mp_a7bc_w01,bbench_with_audio,1,"arm,vexpress-temp MCC after",45.432,Celsius

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
2015-07-06 14:09:50 +01:00
Sergei Trofimov
cb89bd5708 Fixing typo in config_example.py 2015-07-02 12:17:19 +01:00
Sergei Trofimov
30bb453747 gaming workloads: added an option to prevent clearing of package data before execution 2015-07-01 16:17:39 +01:00
Sergei Trofimov
a37e734cf1 fix: adding dependencies_directory to NO_ONE resource owner 2015-07-01 16:08:10 +01:00
Sergei Trofimov
a27768fe21 rt-app: do not unintall at then end by default
rt-app workload will no longer uninstall the executable at the
end of the run by default. A parameter can be used to re-enabed the
uninstall.
2015-06-30 15:54:58 +01:00
Sergei Trofimov
6affc484f4 resource getter: Change the order in which executable paths checked. 2015-06-30 15:54:40 +01:00
Sergei Trofimov
90ea2dd569 resource getter: look for executable resource in correct loction.
Look in the bin/ directory under resource owner's dependencies directory
as well as general dependencies bin.
2015-06-30 10:50:56 +01:00
Sergei Trofimov
df6d1f1c2b resorce resover: debug-print the path of found resource 2015-06-30 10:50:49 +01:00
Sergei Trofimov
34a604f4fc juno: do not auto-disconnect at the end of the run
Juno connection no persists at the end of the run. Boolean parameter
actually_disconnect has been added to allow restoring the old behavior.
2015-06-30 10:36:20 +01:00
Sergei Trofimov
f7941bbc25 More informative syntax error reporting. 2015-06-30 10:36:20 +01:00
Bobby Batacharia
5c53f394cb Initial commit of lmbench workload
Remove unused includes
2015-06-29 22:55:56 +01:00
Sergei Trofimov
967f9570e2 manhattan: fixing syntax error introduced by previous commit 2015-06-29 17:57:41 +01:00
Sergei Trofimov
19d6ce5486 manhattan: chaning run_timemout into a parameter and upping default to 10mins 2015-06-29 17:55:43 +01:00
Sergei Trofimov
3b4dc137d2 cpustate: check if trace marker is present and disable marker filtering if it is not. 2015-06-29 17:33:28 +01:00
Sergei Trofimov
78314c1ef2 cpustates added an option to ignore trace markers. 2015-06-29 17:28:00 +01:00
Vasilis Flouris
7f5952aa9c Energy model instruments: allows power adjustment for thermal effect 2015-06-29 13:04:41 +01:00
Sergei Trofimov
b018adac11 pylint fixes 2015-06-29 11:34:49 +01:00
Sergei Trofimov
4904c6cf71 listdir on Linux: return empty list for an empty directory
Previously, was returning a list with a single empty string element
2015-06-29 11:28:47 +01:00
Sergei Trofimov
26dee81164 Adding arm64-v8a to ABI map 2015-06-29 09:21:06 +01:00
setrofim
c09972e7a8 Merge pull request #30 from bobbyb-arm/fixes
Fixes
2015-06-28 11:42:54 +01:00
Bobby Batacharia
6069ccacdc ExtensionLoader should follow symlinks 2015-06-28 11:00:01 +01:00
Bobby Batacharia
22d72de969 Fix terminal size discovery in DescriptionListFormatter 2015-06-28 10:35:15 +01:00
Sergei Trofimov
b712dddfc0 android device: update android_prompt so that it works even if is not / 2015-06-26 16:25:44 +01:00
Sergei Trofimov
d6cebc46ce perf: updating binaries and adding option to force install 2015-06-26 14:19:15 +01:00
Sergei Trofimov
85c78e6566 sysfile_getter: fixed Exception when both device and host paths are empty. 2015-06-26 12:14:02 +01:00
Sergei Trofimov
fcb6504f1e Adding ID to overall cpustate reports. 2015-06-26 10:24:07 +01:00
Sergei Trofimov
5401a59da0 Adding support for U-Boot booting in Juno. 2015-06-25 11:32:01 +01:00
Sergei Trofimov
00561e0973 Adding support for U-Boot booting in Juno. 2015-06-25 10:59:19 +01:00
Sergei Trofimov
642da319d4 linpack-cli: setting run timeout based on array size 2015-06-19 09:47:49 +01:00
Sergei Trofimov
a6e9525264 Adding command line version of linpack benchmark. 2015-06-19 09:42:16 +01:00
Sergei Trofimov
4d5413ac26 add agenda command: added options for iterations and runtime parameters 2015-06-18 17:38:51 +01:00
Sergei Trofimov
ccea63555c Added retries
Failed jobs will now be automatically retired. This is controlled by two
new settings:

retry_on_status - a list of statuses which will be consided failures and
                  result in a retry
max_retries - number of retries before giving up
2015-06-18 16:46:26 +01:00
Sergei Trofimov
51c5ef1520 create command: make sure "create agenda" can pick up loacal extensions 2015-06-18 16:18:27 +01:00
Sergei Trofimov
c6ede56942 rt-app: added taskset_mask parameter 2015-06-18 15:21:12 +01:00
Sergei Trofimov
e0ecc9aaf4 Added an invoke() method to devices.
This allows invoking an executable on the device under controlled
contions (e.g. within a particular directory, or taskset to specific
CPUs)
2015-06-18 15:07:44 +01:00
Sergei Trofimov
44c2f18f76 Adding "create agenda" sub-command
It is now possible to generate agendas for a set of extensions with

  wa create agenda ext1 ext2 ext3 -o output.yaml

Confiuration will include all parameters for those extensions with
default values.
2015-06-18 12:50:12 +01:00
Sergei Trofimov
53c669f906 streamline: do not instatiate resource getter directly 2015-06-18 12:33:56 +01:00
Sergei Trofimov
c076a87098 Added support for YAML configs
Config files (the default one in ~/.workload_automation plus ones
specified with -c) can now be written using YAML syntax as well as
Python.
2015-06-18 11:35:50 +01:00
Vasilis Flouris
90c0ed281d Documentation: punctuation error fix 2015-06-18 10:46:29 +01:00
Vasilis Flouris
aac69a9c14 Documentation update 2015-06-18 10:39:20 +01:00
Sergei Trofimov
08bfef961e run command: adding a command line option to diable instruments
Also, updating help messages for exising arguments to use multiline
strings.
2015-06-18 10:07:48 +01:00
Sergei Trofimov
d9f45db71e Implementing dynamic device modules
Dynamic modules may be loaded automatically on device initialization if
the device supports them. Dynamic modules implent probe() method to
determine whether they are supported by a particular deviced.

devcpufreq and cpuidle have been converted into dynamic modules
2015-06-18 09:42:40 +01:00
Sergei Trofimov
73d85c2b4e cleaning up initialize()
- standardisded on a single context argument
- removed Device.init() no longer necessary as initilize now
  automatically gets propagated up the hierarchy. Renamed the existing
  use of it to "initilize".
- related pylint cleanup.
2015-06-18 09:30:38 +01:00
Sergei Trofimov
55b38556fe cpufreq: splitting out cpufreq stuff into a device module 2015-06-18 09:30:38 +01:00
Sergei Trofimov
a71756acda pylint fixes 2015-06-18 09:30:14 +01:00
Sergei Trofimov
9470efe410 chromeos_test_image: only set default password if keyfile was not specified 2015-06-18 08:39:02 +01:00
Sergei Trofimov
0b29bda206 rt-app: removed ftrace check
trace-cmd seems to work fine with "ftrace: true" in the config, so
removing the check that prevented both from being enabled.
2015-06-17 10:14:08 +01:00
Sergei Trofimov
042da24e7d antutu: updating result parsing to handle Android M logcat output
Looks like M formats logcat output with some extra ":"'s which was
screwing up the old parsing logic.
2015-06-17 09:46:11 +01:00
Sergei Trofimov
a1e99e5591 Android device: correctly set busybox path 2015-06-16 17:23:22 +01:00
Sergei Trofimov
b98b31a427 sysfile_getter: use self.device.busybox rather than just "busybox"
Was breaking when location into which busybox was installed  was not in
PATH.
2015-06-16 17:02:23 +01:00
Sergei Trofimov
4eb0d9d750 Reverting to the old way of getting the abi on Android
uname is not available on all Android devices, and we cannot rely on
busybox for establishing the ABI, as we need to get the ABI before we
can depoly the right version of busybox.
2015-06-16 15:15:18 +01:00
Sergei Trofimov
4af93d94dd show command: adding supported platforms 2015-06-16 12:56:48 +01:00
Sergei Trofimov
e7fae25821 list command: can now filter results by supported platform
Added -p option to the list command. This alows filtering results by
supported platforms, e.g.

	wa list workloads -p linux

Also adding missing supported_platforms attribute to various extensions.
If an extension does not have this attribute, the assumption is that it
is supported by all available platforms.
2015-06-16 12:49:07 +01:00
Sergei Trofimov
53de517488 device: set core_clusters from core_names if not explicitly specified
if core_names are specified in the device config but core_clusters are
not, assume that all cores with the same name are on the same cluster.
2015-06-16 12:21:44 +01:00
Sergei Trofimov
15e854b8f1 telemetry: fix the doc so they no longer say it must be installed
WA will now fetch it automatically
2015-06-16 11:10:50 +01:00
Sergei Trofimov
a85e45c6b0 cpustate: now generates a timeline csv as well as stats 2015-06-16 11:04:25 +01:00
Sergei Trofimov
4d3feeba64 list_file_systems: fix for Android M and Linux devices
In previous versions of Android, "mount" returned output in the format
similar to fstab entries, which is what list_file_systems expected. This
fixes it to be able to handle the more traditional "mount" output in the
format

	<device> on <mount point> type <fs type> <options>

as well as continue to parse the Android output correctly.
2015-06-16 08:49:58 +01:00
Lisa Nguyen
7c7a5de988 perf: remove CCIPerfEvent class
Remove the CCIPerfEvent class since it's no longer used
in WA.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-06-15 10:34:59 -07:00
Sergei Trofimov
cbf7eadc6c sqlite: adding global aliases to params
Adding global aliases to parameters to fix old configs that still used
the deprecated "<ext name>_<param name>" format for specifying parameter
values.
2015-06-15 14:34:57 +01:00
Sergei Trofimov
d775be25f7 Removing total_tasks "metric" form rt-app, as reported as a classifier. 2015-06-15 13:07:49 +01:00
Sergei Trofimov
8dc4321deb Adding rt-app workload 2015-06-15 12:04:00 +01:00
Vasilis Flouris
0d3e6b8386 Fixes missing directories problem in DynamicFrequencyInstrument 2015-06-12 17:53:05 +01:00
Vasilis Flouris
7ee44fb0e4 Fix: for the chromeos test image device 2015-06-12 14:39:46 +01:00
Sergei Trofimov
ab76aa73f2 cpustate: fixing division by zero
total running time (in parallel stats) is zero when all cores on a
cluster are hotplugged. this caused a division by zero when calculating
percentage.
2015-06-12 13:02:05 +01:00
Sergei Trofimov
179baf030e Fixed typo. 2015-06-12 12:43:35 +01:00
Vasilis Flouris
2f214da8a2 fix: uname utility is unavailable in Android. It has to be invoked through busybox. 2015-06-11 18:58:34 +01:00
Sergei Trofimov
6c8228a26c Invoking workload finalizers at the end of the run. 2015-06-11 18:04:55 +01:00
Sergei Trofimov
b3a0933221 Adding intialize and finalize methods to workloads that will only be invoked once per run
- added initialze and finalize methods to workloads, which were the only
  major extension types that did not have them
- Semanatics for initialize/finalize for *all* Extensions are changed so
  that now they will always run at most once per run. They will not be
  executed twice even if invoke via istances of different subclasses (if
  those subclasses defined their own verions, then their versions will
  be invoked once each, but the base version will only get invoked
  once).
2015-06-11 17:45:09 +01:00
Sergei Trofimov
557b792c77 Made abi property common between Android and Linux devices
In both cases, the ABI is now obtained by executing "uname -m" on the
device and perfroming a mapping from the returned machine architecture
a known ABI. If no known ABI is found the architecture string itself is
returned.
2015-06-11 17:45:09 +01:00
Sergei Trofimov
2ee9b40527 classifiers: usability updates
- add IterationResult-level classifiers that get merged into every
  added metric (saves having to pass the same classifiers to each
  metric added).
- Added a global alias to csv result processor's  use_all_classifiers
  attribute.
2015-06-11 17:45:09 +01:00
Sergei Trofimov
32f3dc21e4 Added job_status property to ExecutionContext 2015-06-11 17:45:09 +01:00
Vasilis Flouris
b31a9bd61a fixes a minor bug in energy model instrument 2015-06-11 13:09:04 +01:00
Sergei Trofimov
67896dfd86 energy_model: adding dhrystone support
- updated energy_model to accept dhrystone as well as sysbench as
  the workload
- added "threads" parameter to sysbench (basically, an alias for
  "num_threads") to be consistent with dhrystone
- added "taskset_mask" parameter to dhrystone to allow pinning
  it to specific cores.
2015-06-11 10:10:36 +01:00
Vasilis Flouris
88ba8e3ba7 Fixes result result processing bug in sysbench 2015-06-09 18:25:30 +01:00
Sergei Trofimov
771567365d daq instrument: updating default server_port to match daq server. 2015-06-09 15:22:57 +01:00
Sergei Trofimov
5fdb94d804 removing old tarball. 2015-06-09 13:17:28 +01:00
Sergei Trofimov
026e663155 daqpower: typo fix 2015-06-09 13:14:07 +01:00
Sergei Trofimov
4b7af1d2a6 Another update to daqpower
- server will now periodically clean up uncollected files
- fixed not being able to resolve IP address for hostname
  (report "localhost" in that case).
2015-06-09 13:08:50 +01:00
Sergei Trofimov
d9cd1d3282 Removing daqpower hack that got accidentally committed 2015-06-09 12:58:13 +01:00
Sergei Trofimov
c239322c4d Updated daqpower package
- Now works with earlier versions of the DAQmx driver. This is needed to
  be able to run the server on Linux systems, which support older
  verisions of the driver only.
- DAQ error messages are now properly propaged to the client (PyDAQmx
  uses "mess" rather than "message" attribute to store the message in
  the Exception obejects).
- pylint and pep8 fixes
2015-06-09 11:03:26 +01:00
Vasilis Flouris
88c304292f comment correction 2015-06-05 13:00:59 +01:00
Sergei Trofimov
c40a7fd644 more robust exit_code handling for ssh interface
Background processes may produce output on STDOUT. This could get
captured when obtaining the result of "echo $?" to get previos command's
exit code. So it's not safe to assume that output will always be an int.
Attempt to strip out superflous output before doing the int conversion
and, on failure, log a warning but don't error out.
2015-06-05 12:47:01 +01:00
Sergei Trofimov
b976164ee9 Fixing typo in a cpustate parameter name. 2015-06-05 09:05:13 +01:00
zhizhou.zhang
7422a72a7b get options in config_example.py reachable
Some options in config_example.py are not reachable. It makes users
confused. So make the options in the file as gobal_alias.

Signed-off-by: zhizhou.zhang <zhizhou.zhang@spreadtrum.com>
2015-06-04 15:56:52 +08:00
setrofim
3044d192f9 Merge pull request #24 from vflouris/pull-request
Pull request: second batch of changes for energy_model
2015-06-03 18:12:19 +01:00
Vasilis Flouris
afa2b11975 Adds copyright header to energy model instrument 2015-06-03 18:07:40 +01:00
Vasilis Flouris
1a604ac2e3 Fixes a bug in energy model instrument 2015-06-03 18:04:51 +01:00
Vasilis Flouris
d60034f7d7 Allows running the energy instrument without hotplugging 2015-06-03 18:04:45 +01:00
Sergei Trofimov
8980304e56 Adding a note about cpuidle module to cpustates. 2015-06-03 16:33:45 +01:00
Sergei Trofimov
02af02f0cb Adding cpustates result processor (and script) 2015-06-03 16:20:48 +01:00
Sergei Trofimov
e9b21e2ef3 Adding a generic trace-cmd paraser. 2015-06-03 16:20:48 +01:00
Sergei Trofimov
5cfecf8068 show command: minor fix to parameter rendering
Make sure default of 'False' is reported for boolean values.
2015-06-03 16:20:48 +01:00
Sergei Trofimov
ecb1a9f1f9 Adding /proc/cmdline to pulled metadata 2015-06-02 15:05:52 +01:00
setrofim
22b3fe1ac8 Merge pull request #23 from vflouris/pull-request
Pull request: minor fixes for energy model generation and a device interace for Chrome OS test image devices.
2015-06-02 13:07:57 +01:00
Vasilis Flouris
953783dc2b Adds the generic_chromeos device. 2015-06-02 13:05:08 +01:00
Sergei Trofimov
8f972322a5 Updating documentation for generic device interfaces 2015-06-02 12:58:04 +01:00
Vasilis Flouris
1fa93c04d2 fixes a few minor bugs. 2015-06-02 10:53:20 +01:00
Sergei Trofimov
ebe6202e22 push/pull commands always raise DeviceError + handle error on pulling a property file.
Previosuly, they raised CalledProcessError/DeviceError based on
implementation. Making it consistent to facillitated handling in calling
code.
2015-06-01 17:25:59 +01:00
Sergei Trofimov
b4971d76d6 pull more stuff during run initialization
added more paths to pull by default when device.get_properties is
invoked during run initialization. Also moved the LinuxDevice
implementation into BaseLinuxDevice, so that AndroidDevice tires to pull
the same files (on top of the Android-specific stuff).
2015-06-01 16:41:33 +01:00
Sergei Trofimov
ead0be2763 Fixing merge_lists to work for list_or_* types 2015-06-01 16:18:13 +01:00
Sergei Trofimov
29aa81a694 Adding a couple of unit tests for some of the more interesting types. 2015-06-01 15:46:14 +01:00
Sergei Trofimov
f59da723fb list_or: chaniging how list_or_* functions work and adding a generic list_or
list_or_* functions (e.g. list_or_string) will now always return a list,
however will accept lists or indivitual values. Also added a list_or()
generator function, similar to what already exists for list_of().
2015-06-01 15:31:25 +01:00
Sergei Trofimov
a9ab67990a sysbench: updating to work on unrooted Android devices. 2015-06-01 12:21:51 +01:00
Sergei Trofimov
adefbb7b2c android devices: updating executable install/uninstall work on unrooted devices 2015-06-01 12:19:54 +01:00
Sergei Trofimov
578dfb3d99 telemetry: fixing "test" parameter description. 2015-06-01 10:08:26 +01:00
Sergei Trofimov
f49287cf09 Fixes for Emacs
- Do not try to use a pager if it explicitly disabled with PAGER='' in
  the environment.
- If terminal size is identified as (0, 0), fall back to default (80,
  25).
2015-06-01 10:05:23 +01:00
Sergei Trofimov
777003ed51 Adding instrument_is_enabled function
As instrumentation can be enabled/disabled for a specfic workload
execution, it is sometimes not enough to verify that an instrument has
been installed for the run; one might need to check whether it is
currently enabled.
2015-05-28 10:13:50 +01:00
Sergei Trofimov
a254a44f0e adding abi property to LinuxDevice 2015-05-28 09:08:46 +01:00
Sergei Trofimov
506ed57ca6 fix: telemetry: ignore all return codes
Telemetry seems to return random values as return code, so completely
ignore them and don't treat any values as errors.
2015-05-27 17:25:17 +01:00
Sergei Trofimov
c31d4ec8a3 ssh: fixing timeout behavior
Since a command would still be running on time out, it would prevent
issuing subsequent commands in the same SSH shell, make it look like
the device has become unresponsive.

If a timeout condition is his, send ^C to kill the current foreground
process and make the shell available for subsequent commands.
2015-05-27 09:13:03 +01:00
Sergei Trofimov
9e822c4b18 dvfs: fix active_cpus --> online_cpus rename 2015-05-26 12:30:15 +01:00
Sergei Trofimov
260616711f removing unused variable. 2015-05-26 09:29:59 +01:00
Sergei Trofimov
b9a8f6155c telemetry: remove obsolete metrics. 2015-05-15 14:09:53 +01:00
Sergei Trofimov
a450957b9a Fixing locally defined instruments erroneously propagating into global instrumentation 2015-05-15 10:01:26 +01:00
Sergei Trofimov
512bacc1be Adding classifiers to metrics and updating csv and telemetry to take advantage of them
- Adding "classifiers" field to Metric objects. This is a dict mapping
  classifier names (arbitrary strings) to corresponding values for that
  specific metrics. This is to allow extensions to add
  extension-specific annotations to metric that could be handled in a
  generic way (e.g. by result processors).
- Updating telemetry workload to add classifiers for the url and internal
  iteration (or "time") for a particular result.
- Updating csv result processor with the option to use classifiers to
  add columns to results.csv (either using all classifiers found, or
  only for the specific ones listed).
2015-05-14 15:15:32 +01:00
Sergei Trofimov
782d4501cd revent: fix resource resolution when dependency location does not exist. 2015-05-14 14:34:41 +01:00
Sergei Trofimov
26dfe97ffd ssh: fix: do not attempt to check mode of keyfile if it has not been specified. 2015-05-14 11:27:50 +01:00
Sergei Trofimov
ee63cbde62 telemetry: automatically download if necessary
If run_benchmark_path isn't specified, Telemetry zip archive will be
downloaded and extracted into dependencies.
2015-05-13 14:33:13 +01:00
Sergei Trofimov
e7b58c72ac telemetry: added fps extraction
Also fixed text that mistakenly referred to "run_benchmarks" (plural) as
the name of the script.
2015-05-13 14:05:15 +01:00
Sergei Trofimov
9b16e3f282 linux device: removing (keyfile or password) validation check
It may be possible to connect to a device without either, so it
should not be invalid to not specifiy either in the device config.
2015-05-13 08:46:10 +01:00
Sergei Trofimov
4e9601d905 config_example: disabled summary_csv and added status result processor
Made status result processor enabled by default on new WA installations
and disabled summary_csv by default.
2015-05-12 16:18:08 +01:00
Sergei Trofimov
48cced2ff9 antutu: robustness fixes for v5 multi-times executions
- added slight delays to ensure more precise navigation
- handle dialogs that occasionally pop up when re-running tests
2015-05-12 14:29:24 +01:00
Sergei Trofimov
57d3b80e85 power_loadtest: kill any already-running autotest instances during setup 2015-05-12 14:27:04 +01:00
Sergei Trofimov
cbd2c6727f Adding ChromeOS power_LoadTest 2015-05-12 11:34:30 +01:00
Sergei Trofimov
5daa9014a8 Adding "agruments" type
This type represents arguments that are passed on a command line to an
application. It has both string and list representations.
2015-05-12 11:34:30 +01:00
Sergei Trofimov
b2981a57bc ssh: ensure keyfile has the right permissions
The key file must only be readable by the owner. If the specified key
file has different access permissions, create a temporary copy with the
right permissions and use that.
2015-05-12 11:34:30 +01:00
Sergei Trofimov
98b259be33 energy_model: fix np.vectorize on ImportError
np.vectorize was being unconditionally invoked at top level. On an
ImportError, np as set to None, so this was resuling in an
AttributeError when loading the module if one of the dependent libraries
was not present on the host system. This moves the invocation into the
try block with the imports to avoid an error when energy_model module is
loaded by the extension is not used.
2015-05-12 11:34:30 +01:00
Sergei Trofimov
b30d702f22 minor fixes to cpufreq APIs
- adding missing cpu id conversion to set_cpu_min_freq
- adding "exact" parameter to set_cpu_frequency; only produce an error
  when the specified frequency is not supported by the cpu if "axact"
  is set; (otherwise let cpufreq decide what the actual frequency will
  be).
2015-05-12 11:34:30 +01:00
Sergei Trofimov
40bd32280a minor fixes to cpufreq APIs
- adding missing cpu id conversion to set_cpu_min_freq
- adding "exact" parameter to set_cpu_frequency; only produce an error
  when the specified frequency is not supported by the cpu if "axact"
  is set; (otherwise let cpufreq decide what the actual frequency will
  be).
2015-05-11 12:12:41 +01:00
Sergei Trofimov
fbde403f6f pep8 2015-05-11 12:12:41 +01:00
Sergei Trofimov
4b210e7aab energy_model: adjusting sysbench setup based on feed back from power team. 2015-05-11 12:12:41 +01:00
Vasilis Flouris
2929106049 Energy model: fixing sysbench taskset failure
Make sure when migrating sshd to root cgroup also migrate their
children, including the bash for the wa session. So the subsequent
processes kicked off from that shell can be taskset to any cluster.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
485ba419b3 energy_model: set matplotlib backent to AGG
Matplotlib defautls to the GTK backend. This can cause problems when
running in a headless session (e.g. over SSH). Since energy_model
istrument generates PNG plots, rather than rendering directly to UI, it
doesn't actually need GTK; set backend to AGG so that energy_model works
in headless environments.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
0e751bdd73 Handling duplicate prompt in pxssh in a slightly differnt way. 2015-05-11 12:12:41 +01:00
Sergei Trofimov
556bc84023 energy_model: fix for when running as a sudo user (rather than root) 2015-05-11 12:12:41 +01:00
Sergei Trofimov
715438e486 Adding missing documentation for module. 2015-05-11 12:12:41 +01:00
Sergei Trofimov
68ae8b9277 energy_model: added energy_metric
It is now possible to specify energy_metric instead of power_metric for
cases where continuous power is not available but energy can be
measured.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
c5b884cf81 casless_string: added format() method 2015-05-11 12:12:41 +01:00
Sergei Trofimov
a4bff161aa idle: updated to work on Linux devices. 2015-05-11 12:12:41 +01:00
Sergei Trofimov
950f0851bf Fix: implementing get_pid_of() and ps() for linux devices.
Existing implementation relied on android version of ps.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
49d7072440 Fix: cpuidle check directory name when numerating idle states
Do not assume that all directories under cpuidle/ represent states;
check that the directory name starts with "state" before trying to parse
it.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
9d5e0cdc00 Fixing pylint false positives in energy_model
The new  version of pylint is throwing up a couple of new
false positives that the earlier versions did not seem to flag.
2015-05-11 12:12:41 +01:00
Sergei Trofimov
841bd784d9 Fix: correctly set measured/measuring cores. 2015-05-11 12:12:41 +01:00
Sergei Trofimov
47ce9db383 Updating energy model instrument to be able to accumulate multiple power rails for each cluster. 2015-05-11 12:12:40 +01:00
Sergei Trofimov
c52d562411 Adding energy_model instrument.
This instrument can be used to generate an energy model for a device
based on collected power and performance measurments. The instrument
produces a C file with an energy model and an accompanying HTML report.

This instrument is very different from other instrumentation, as it
actually generates the run queue on the fly based on the operating
frequencies and idle states it discovers on the device. The agenda needs
only to contain the single "base" spec that defines the workload to be
used for performance measurement.
2015-05-11 12:12:40 +01:00
Sergei Trofimov
6b041e6822 Added cgroups device module.
cgroups  modules allows query and manipulation of cgroups controllers on
a Linux device. Currently, only cpusets controller is implemented.
2015-05-11 12:12:40 +01:00
Sergei Trofimov
c82dd87830 Adding cpuidle modules and refactoring Device cpufreq APIs.
cpuidle module implements cpuidle state discovery, query and
manipulation for a Linux device. This replaces the more primitive
get_cpuidle_states method of LinuxDevice.

Renamed APIs (and added a couple of new ones) to be more consistent:

"core" APIs take a core name as the parameter (e.g. "a15") or whatever
is listed in core_names for that device.
"cluster" APIs take a numeric cluster ID (eg. 0) as the parameter. These
get mapped using core_clusters for that device.
"cpu" APIs take a cpufreq cpu ID as a parameter. These could be
integers, e.g. 0, or full string id, e.g. "cpu0".
2015-05-11 12:12:40 +01:00
Sergei Trofimov
b002505ac2 Updated Parameter to automatically convert int and boot kinds to integer and boolean respectively.
integer and boolen are defined in wlauto.utils.types; they perform more
intuitive conversions from other types, particularly strings, so are
more suitable than int and bool for parameters. If, for whatever reason,
native types are in fact desired for a Parameter, this behavior can be
supressed by specifying convert_types=False when defining the parameter.
2015-05-11 12:12:40 +01:00
Sergei Trofimov
09aa9e6792 Adding some conversion functions to misc utils.
- list_to_range and range_to_list convert between lists of integers
  and corresponding range strings, e.g. between [0,1,2,4] and '0-2,4'
- list_to_mask and mask_to_list convert between lists of integers and
  corresponding integer masks, e.g. between [0,1,2,4] and 0x17

Conflicts:
	wlauto/utils/misc.py
2015-05-11 12:12:40 +01:00
Sergei Trofimov
108928c6a5 Added copy() method to WorkloadRunSpec. 2015-05-11 12:12:40 +01:00
Sergei Trofimov
3112eb0a9b Adding new types and updating device parameters to use them.
- added caseless_string type. This behaves exactly like a string, except
  this ignores case in comparisons. It does, however, preserve case. E.g.

	>>> s = caseless_string('Test')
	>>> s == 'test'
	True
	>>> print s
	Test

- added list_of type generating function. This allows to dynamically
  generate type-safe list types based on an existing type. E.g.

	>>> list_of_bool = list_of(bool)
	>>> list_of_bool(['foo', 0, 1, '', True])
	[True, False, True, False, True]

- Update core_names Device Parameter to be of type caseless_string
2015-05-11 12:12:40 +01:00
Sergei Trofimov
070b2230c9 updated ExecutionContext to keep a reference to the runner.
This will enable Extenstions to do things like modify the job queue.
2015-05-11 12:12:40 +01:00
Sergei Trofimov
958a8a09da daq instrument updated to report energy. 2015-05-11 12:12:40 +01:00
Sergei Trofimov
62593987f4 sysbench workload updates.
- added the ability to run based on time, rather than number of
  requests.
- added a parameter to taskset to specific core(s).

Conflicts:
	wlauto/workloads/sysbench/__init__.py
2015-05-11 12:12:40 +01:00
Sergei Trofimov
e422ccc509 show command: remove duplicat output. 2015-05-07 12:18:59 +01:00
Sergei Trofimov
6ccca6d4c0 show command: handle bad PAGER
If show command finds a PAGER defined in the user's environment but is
unable to use it, fall back to dumping output directly to STDOUT.
2015-05-07 12:02:03 +01:00
Sergei Trofimov
57972a56af geekbench: upping run time out.
Run timeout was been hit on very slow systems.
2015-05-07 11:55:37 +01:00
Sergei Trofimov
67ad4a63e4 antutu: multi-times playback fix [part 2]
A "please rate me" dialog occasionally pops but when returning to the
initial screen (when re-running the test). The check to dismiss it
wasn't being done at the right time, so it was still preventing
mutli-times execution. This commit resolves that issue.
2015-05-07 10:48:26 +01:00
Sergei Trofimov
7a86a1b17f hwmon: move sensor discovery into initialize()
It only needs to be done once per run.
2015-05-07 09:39:33 +01:00
Vasilis Flouris
f504fc8791 A fix for spec2000 to align with device API changes 2015-05-06 17:02:48 +01:00
Sergei Trofimov
09d0736d3b antutu: fixing multi-times playback for v5
"times" parameter didn't work properly for version 5 because an extra
back button press was required due to UI changes from previous versions.
This commit adds the button press.
2015-05-06 12:56:58 +01:00
Sergei Trofimov
6824f045fd telemetry: adding support for Android devices
Also, adding missing copyright header.
2015-05-05 12:24:53 +01:00
Sergei Trofimov
e57c5fccb3 sysfile_extractor: ignore exit code when removing directory at the end of the run.
On some systems the temporary directory may still be "busy" after WA is
don't with it. Since it's just an empty dir and it will be reused on the
subsequent runs; do check if rm -rf succeeded.
2015-05-05 09:32:40 +01:00
Sergei Trofimov
a6ef53291b ssh: making execute() thread safe. 2015-05-05 09:09:57 +01:00
Sergei Trofimov
1993007d49 telemetry: relaxing the initial validation check
It seems valid install may return values other than 0xff00. Relaxing the
check to consider anything above 0xff to be valid.
2015-05-05 08:17:43 +01:00
Sergei Trofimov
8b606dd5f9 config: fixing an issue introduced by previous config fix...
When the merging logic was updated to preserve duplicates within the
same list, it inadvertently broke the logic that removed items marked
for removal with a '~'. This commit rectifies that.

Note to self: merging functions are doing *way* to much; they should be
refactored into several individual function and config should be
resolved in distinct stages.
2015-04-30 13:34:21 +01:00
Sergei Trofimov
799558d201 Fix: lists with duplicate entries in parameter values
If list parameter values contained duplicates, those got removed when
merging parameter values from different sources. This commit fixes that
behavor, so that duplcates that appear within the *same* list are
preserved.
2015-04-30 08:46:24 +01:00
Sergei Trofimov
bb5d5cba8e daq: make EnumEntry picklable to support multiprocessing invocation 2015-04-29 12:32:15 +01:00
Vasilis Flouris
82fed172d5 fix for leaked file descriptors in daq 2015-04-29 11:41:19 +01:00
Vasilis Flouris
cd6babeab1 adding device_entry parameter to energy probe instrument 2015-04-29 10:42:44 +01:00
Sergei Trofimov
e87e4c582c Fix: properly handle carriage return stripping in ssh. 2015-04-28 12:46:21 +01:00
Sergei Trofimov
97efd11b86 Fix: properly handle core_names and core_clusters in the agenda
Keep duplicates in lists when merging device_config dict from agenda
with the rest of the config; This will ensure that core_name sand
core_clusters aren't reduced to just unique elements.
2015-04-28 12:44:08 +01:00
Sergei Trofimov
bb6421b339 Fixing file_exists on linux devices. 2015-04-28 10:29:47 +01:00
Sergei Trofimov
50c8c4da34 pep8: minor fixes in hackbench and ebizzy 2015-04-28 08:30:43 +01:00
setrofim
dcea921907 Merge pull request #17 from lisatn/ebizzy-workload
Add ebizzy workload
2015-04-28 08:27:08 +01:00
setrofim
0beb3fc3a2 Merge pull request #18 from lisatn/hackbench_workload
Hackbench workload
2015-04-28 08:26:58 +01:00
Lisa Nguyen
1633d91331 hackbench: Clean regex code and add run_timeout parameter
Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-04-27 14:42:25 -07:00
Lisa Nguyen
d126d56e98 Add ebizzy workload
Add ebizzy to allow users to run a workload resembling common
web server application workloads.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-04-27 12:53:17 -07:00
Sergei Trofimov
5ceb093f3c Improving agenda validation
- raise an error if an agenda contains duplicate keys (by default PyYAML
  will silently ignore this)
- raise an error if config section in an agenda is not dict-like
  (before, this was allowed to propagate and relsulted an a traceback
  further down the line).
2015-04-27 16:36:30 +01:00
Sergei Trofimov
698240b6e0 telemetry: copy generated trace files into WA output
If trace files have been generated during a telemetry run (e.g.
--profiler=trace was enabled), copy them into wa_output and extract
them.
2015-04-27 15:50:59 +01:00
Sergei Trofimov
101d6a37ce Fix: correctly handle non-identifier alias names
Update ExtensionLoader to index aliases by their identifier'd name.
2015-04-27 11:57:34 +01:00
Lisa Nguyen
4cff2a52c0 Add hackbench workload
Add hackbench to run tests on the Linux scheduler.

Signed-off-by: Lisa Nguyen <lisa.nguyen@linaro.org>
2015-04-26 13:12:08 -07:00
Sergei Trofimov
f906cbd851 Sent INITIAL_BOOT signal in hard reset path during intial boot 2015-04-24 17:51:55 +01:00