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

141 Commits

Author SHA1 Message Date
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
2f1c7300d4 doc: documenting remote_assets_path
Adding documentation explaining how to use remote_assets_path setting.
2015-05-05 14:52:39 +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