1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-01-19 12:24:32 +00:00

670 Commits

Author SHA1 Message Date
Sergei Trofimov
2a2eafa282 utils/doc: include plugin aliases in the docs
If a plugin defines aliases, include the aliases and the parameter
values they correspond to inside the docs.
2018-05-23 14:51:54 +01:00
Sergei Trofimov
063212c2a9 fw/config: resolve aliases inside plugin_cache
- expose pluginloader's resolve_alias in plugin_cache (it's supposed
  to be a transparent proxy for pluginloader).
- resolve aliases inside _set_plugin_defaults() to make sure the
  correct defaults are used when creating job specs.
2018-05-23 14:21:11 +01:00
Sergei Trofimov
775f3d55f2 fw/plugin: return a copy of alias params
When resolving aliases, return a copy of the alias' params to ensure
they don't get modified by the calling code.
2018-05-23 14:21:11 +01:00
Sergei Trofimov
8c1f636808 fw: export Alias into the main __init__.py
Alias is part of the API, and should therefore be exported.
2018-05-23 14:21:11 +01:00
Marc Bonnici
dc41af1f3f framework/tm: Ensure RebootPolicy is respected with unresponsive target
Expose the RebootPolicy as an attribute of the ExectionContext and ensure
that that the target is not automatically rebooted if the reboot
policy is set to "Never".
2018-05-23 10:14:34 +01:00
Marc Bonnici
78d5b18182 framework/execution: Implement reboot policies
Although the configuration of reboot policies was present the actual
implementation was missing.
2018-05-23 10:14:34 +01:00
Marc Bonnici
1a67a3a4e5 config/core: Rename each_iteration RebootPolicy to each_job
Rename the parameter to be clearer on the effect of the policy, as this
will cause WA to reset the device for each new job it runs regardless of
the iteration number.
2018-05-23 10:14:34 +01:00
Marc Bonnici
9d8f1ec68e config/core: Remove by_spec reboot policy
This reboot policy was left over from previous versions of WA and
is no longer relevant.
2018-05-23 10:14:34 +01:00
Marc Bonnici
c2b039ba2d framework/execution: Remove unused attribute 2018-05-23 10:14:34 +01:00
Marc Bonnici
2a95a198b0 framework/config: Rename by_spec to by_workload execution order
Rename the `by_spec` execution order to `by_workload` and update
description for clarification.
2018-05-23 10:14:34 +01:00
Marc Bonnici
efffae5254 framework/workload: Fix typos 2018-05-22 17:18:40 +01:00
Marc Bonnici
c3a01f61af framework/workload: Move deployment of gui into initialize
We only need to deploy the gui once, therefore move the `deploy` method
call into `initialize` the corresponding `remove` method is already in
`finalize`.
2018-05-22 17:18:40 +01:00
Marc Bonnici
3efff81a5c utils/exec_control: Fix issue with once_per_instance decorator
Previously the `once_per_instance` used the output of `__repr__` to
identify the class of where the decorated method was called from. For
classes that override this method to produce the same output for
different instances of the same class this caused different instances to
be mistakenly treated as one. Now use the hash of the containing class
instead of the string representation and update the tests to catch this
error.
2018-05-22 17:18:40 +01:00
Marc Bonnici
04fe3768af doc: Misc fixes
Fix typos, formatting and irrelevant information.
2018-05-21 10:26:28 +01:00
Marc Bonnici
52b2df427e doc/show_cmd: Reword description and add settings option 2018-05-21 10:26:28 +01:00
Sergei Trofimov
5291e389dc fw/output: implement __str__ JobOutput
Implement a __str__ method for JobOutput to make it easier to format it
into messages.
2018-05-18 17:52:49 +01:00
Sergei Trofimov
887cdcc411 commands/show: change man section to 7
Change the man page section from 1 7. "Misc. information" is more
appropriate for plugin documentation than "Executable commands".
2018-05-18 16:50:48 +01:00
Sergei Trofimov
b1b2131b0c doc: fix build warnings 2018-05-18 10:32:08 +01:00
scott
3f7f0b38f5 PCMark: Porting to WA3 2018-05-15 16:09:38 +01:00
Marc Bonnici
6754ecd6d7 wa/workloads: Update to consistently use timeout parameter 2018-05-14 17:07:49 +01:00
Marc Bonnici
a23c896647 wa/workloads: Update to use threads parameter
Update workloads to use `threads` parameter to try and keep
configuration more consistent across workloads.
2018-05-14 17:07:49 +01:00
Marc Bonnici
47ec0c7720 workloads/meabo: Update parameter names to be more consistent
Rename `nrow` and `ncol` to `num_rows` and `num_cols` respectively to be
more consistent with the other parameter names.
2018-05-14 17:07:49 +01:00
Marc Bonnici
6f5fca36df wa/workloads: Change to use 'loops' parameter.
Change to consistently use 'loops' parameter instead of 'iterations'
etc.
2018-05-14 17:07:49 +01:00
Marc Bonnici
8d7d32d180 wa/workloads: Update to use new cpu_mask type
Update workloads that allow for specifying which cpus to be ran on to
all use the same interface while maintaining backwards compatibility with
the existing configuration options.
2018-05-14 17:07:49 +01:00
Marc Bonnici
670fe6fb83 wa/types: Add cpu_mask type
Add a cpu_mask type to allow for users to use a consistent way of representing a
cpus mask with properties to provide conversions between the various required
forms. The mask can be specified directly as a mask, as a list of cpus indexes
or a sysfs-style string.
Also add support for the type to be serialized/deserialzed for the json
and yaml serializers.
2018-05-14 17:07:49 +01:00
Sergei Trofimov
a2b0705ff0 processors: add cpustates
Add cpustates output processor. This is more-or-less a port of the
cpustates processor from WA, however there are some differences:

- Idle states are now tracked individually per-CPU. This will fix
  processing traces from targets that have different number of idle
  states on different clusters.
- Simplify the parameter list for report_power_stats:
    - Replace paths to individual report files with a path to a single
      directory. A subdirectory will be created under it which will
      contain all the reports.
    - Replace the individual bits bits of information about CPUs (core
      names, idle states, etc) with a list of CpuInfo objects.
- Clean up and simplify the code a bit:
    - Make all reports mandatory -- the marginal cost of generating
      an additional report is minimal compared to tracking power states
      in the first place.
    - Standardize the interface for Reporters and Reports.
- Rename some of the reports to something a bit more meaningful.
- The stand-alone command line interface is not ported for now, as it
  is now possible to run this offline on existing results using
  "wa process".
2018-05-14 17:05:06 +01:00
Sergei Trofimov
e7e272cd03 utils/trace_cmd: add trace_has_marker()
Add a function to check whether a trace file contains start/stop markers
(actually only check for start marker -- stop marker is assumed).
2018-05-14 17:05:06 +01:00
Sergei Trofimov
795b3485ce utils/trace_cmd: move params to __init__()
Move the check_for_markers and events parameters from parser() to
__init__(). These parameters control the behavior of the parser, and do
not relate to a particular trace file, so it makes more sense to have
them there.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
ed1553816b commands/process: write result in the end
Running additional processors will generate new metrics and artifacts.
Update the serialized metadata with the new artifacts/metrics after
running all processors.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
8a219d0e5a commands/process: improve logging
- Add a logging to indicate what is being processed.
- Log to file.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
0a5ceabc73 fw/execution: finalize jobs before run.
Finalize jobs before performing whole-run finalization. This makes more
sense than finalizing individual jobs after run as a whole has been
finalized.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
ec66ae2f6f instrument/trace_cmd: Log the pulling of trace
Extracting trace and pulling the trace file from the target can take a
relatively long time, as the trace file can be tens, and even hundreds,
of MB. Add an info-level log message to inform the user why WA execution
appears to have paused for a few seconds.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
9226a3b92a fw: fix job logging indent
- Have the job manage the indent of each of its stages
- Switch output_processor to using indentcontext
- Move the "Configuring augmentations" log line into Job -- the
  rest of the stages are logged there, but this was done by the
  Executor for some reason.
2018-05-14 17:05:06 +01:00
Sergei Trofimov
98219bbba9 fw/output_processor: fix typo 2018-05-14 17:05:06 +01:00
Marc Bonnici
a61bca1a54 target/info: Fix typo 2018-05-14 16:34:10 +01:00
Sergei Trofimov
629abb1afc fw/target: add hostname to TargetInfo
Would especially be useful for Linux targets.
2018-05-10 11:51:24 +01:00
Sergei Trofimov
30eb98b275 fw/target: add hostid to TargetInfo
Add hostid entry, as reported by busybox's hostid applet, to TargetInfo.
This is intended to be a "unique 32-bit identifier for the current
machine". In practice, it may not be set, or may be generated from
something like an IP address, so may not be unique. However, if set, it
is still likely to be more unique than kernel/os version so may be worth
recording.
2018-05-10 11:51:24 +01:00
sergei Trofimov
181862b7ff fw/target: add sched_features to TargetInfo
Attempt to read scheduler features (debugfs might not be mounted) and
add them to TargetInfo.
2018-05-10 11:51:24 +01:00
sergei Trofimov
84fba8617d fw/target: enhanced cpu info
Replace Target.cpuinfo, which contained parsed contents of
/proc/cpuinfo, with a list of more comprehensive CpuInfo objects which
include cpufreq and cpuidle information as well.
2018-05-10 11:51:24 +01:00
sergei Trofimov
2d39e5699f fw/target: make TargetInfo more POD-like
Split out the loading of the TargetInfo from a target into a separate
function, leaving TargetInfo as a simple container.
2018-05-10 11:51:24 +01:00
Sergei Trofimov
1ffbce68c4 fw/execution: handle error on run initialize
- Use indentcontext inside initialize_run to make sure log level
  is dedented on error.
- Ensure Executor postamble always runs, event if runner errors.
- Fix format_duration() to handle sub-second timedeltas.
2018-05-10 11:49:30 +01:00
Sergei Trofimov
b41c3a3ea2 fw/plugin: implement __str__ for Plugin
Implement __str__ for Plugin in order to provide more readable
representations in logging.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
2c28d5b214 fw/execution: implement __str__ for Executor
Implement __str__ for Executor in order to provide a more readable
representation in logs.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
f477049181 fw/entrypoint: log commit hash if possible
Use get_wa_version_with_commit() instead of get_wa_version() when
logging WA version, so that the current commit is also logged, if
available.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
2dbb6e8c18 fw/version: add get_wa_version_with_commit
Add a function to return WA version suffixed with the commit hash for
current HEAD. This only works if WA was deployed via

	python setup.py develop

otherwise, the output is identical to get_wa_version().
2018-05-09 16:44:27 +01:00
Sergei Trofimov
79c15ff02f fw/output: add sensible string representation
Add a useful string representation to output classes using class name and
the directory basename.
2018-05-09 16:44:27 +01:00
Sergei Trofimov
32701e7783 command/run: remove version/args logging.
This was moved to wa/framework/entrypoint.py but was kept here due to a
botched merge during a rebase.
2018-05-09 15:41:04 +01:00
sergei Trofimov
a34858672f fw/plugin: do not try to load imported classes
When scanning modules for plugins, only consider classes defined in that
module, but not those imported into it. This will prevent log output
being polluted with repeated "Skipping..." messages for imported plugin
bases.
2018-05-09 15:06:31 +01:00
sergei Trofimov
ecc68ee367 utils/log: add indentcontext
Add indentcontext context manager to save having to add try/finally
clauses around indenting code just to ensure dedenting.
2018-05-09 15:06:31 +01:00
sergei Trofimov
c1a0f842d0 utils/log: maintain indent for buffered records
Ensure buffered records are indented properly by saving the indent level
at the time the record was generated as part of the record, and
preferring that over the current indent level inside LineFormatter.
2018-05-09 15:06:31 +01:00