1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2024-10-06 19:01:15 +01:00
Commit Graph

420 Commits

Author SHA1 Message Date
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