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

99 Commits

Author SHA1 Message Date
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
Sergei Trofimov
97a397d5c8 ipython utils: handle ancient versions of IPython
Very old versions of IPython do not have IPython.version_info attribute
that the ultls module relied on. This commit changes it to use the more
standard __version__ attriute that is present in all versions.
2015-04-24 10:56:23 +01:00
Sergei Trofimov
54e89a2118 Fix to initial ~/.workload_automation deployment when sudoing
Only attempt to chown ~/.workload_automation to SUDO_USER if the
effective user is root.
2015-04-24 10:05:13 +01:00
Sergei Trofimov
704324ca77 Adding missing descriptions for modules. 2015-04-22 17:02:27 +01:00
Sergei Trofimov
aef7f52f96 telemetry: ignore errors in dividuation subtests.
check_output will ignore error code 1 returned by telemetry execution,
as this happens when individiual sub-tests and partial results may, and
should, still be extracted.
2015-04-21 15:12:48 +01:00
Sergei Trofimov
5035fe6f44 Adding ignore parameter to check_output
Adding a parater to wlauto.utils.misc.check_output to specify that it
should ignore certain error codes when they are returned by the
subprocess and not raise them as errors.
2015-04-21 15:01:15 +01:00
Sergei Trofimov
399c9f82c3 telemetry: handle scalar values correctly.
The result regex in telemetry workload has been updated to capture lines
reproting single value results.
2015-04-21 13:19:21 +01:00
Sergei Trofimov
ff0d08cc8e All using idetifier version of non-identifier named instruments in configuration.
E.g. refering to "trace-cmd" as "trace_cmd" in the instrumentation list.
2015-04-20 09:18:49 +01:00
setrofim
7655007f8a Merge pull request #13 from JaviMerino/ipynb_exporter_with_ipython_3
Make the ipynb_exporter result processor work with ipython version 3
2015-04-20 09:11:07 +01:00
Javi Merino
8d3f9362fb Fix trace-cmd after 2276ae0c5b
Commit 2276ae0c5b ("Fixing config processing for extensions with
non-identifier names.") broke customizing the trace-cmd instrumentation
from the agenda.  With an agenda like:

config:
  instrumentation: [trace-cmd, delay]
  trace_events: ['thermal*']
  trace_buffer_size: 28000

trace_events and trace_buffer_size get added to the RunConfiguration's
_raw_config under the trace-cmd name, but then when it's looked up in
_finalize_config_list(), the dictionary is actually looked up using
identifier(extname), i.e. 'trace_cmd'.  Fix this by adding the user's
configuration using identifier(name) as well.
2015-04-17 20:10:25 +01:00
Javi Merino
e30386ce4a Add ipython version 3 support for the generic ipython support 2015-04-17 19:00:55 +01:00
Javi Merino
d12f5c65e1 Factor out the parsing of a valid cell run in the generic ipython implementation
run_cell() becomes more complicated when we add ipython version 3
support which upsets pylint because there are "too many
branches (15/12)".  Factor out part of the function to make pylint
happy.
2015-04-17 18:56:57 +01:00
Javi Merino
2b04cb38d9 Don't break prematurely when running a cell on an ipython kernel
The kernel may go idle before it processes the next input, which break
the while=True loop in run_cell() early.  Wait for an acknowledgement
of the input we've sent to the kernel before considering an idle
message to mean that the cell has been parsed.
2015-04-17 18:56:57 +01:00
setrofim
0faa5ae455 Merge pull request #11 from JaviMerino/ipynb_exp_improvs
Generic Ipynb_exporter improvements to ease ipython 3 support
2015-04-17 18:23:04 +01:00