1
0
mirror of https://github.com/ARM-software/workload-automation.git synced 2025-01-31 18:21:14 +00:00

68 Commits

Author SHA1 Message Date
Sebastian Goscik
059b38685b AgendaParse: Removed config finalisation
It should not been done by the agenda parser but rather what ever invokes it
2016-09-27 11:20:12 +01:00
Sebastian Goscik
df17f79142 Job spec tree: Added a common base for workloads and sections
Added "JobSpecSource" as a base class for both section tree nodes and
workload entries. This adds a common interface between them for:
 - Resolving names
 - Storing configuration
 - References to parents
 - Getting IDs out of configuration
2016-09-27 11:20:12 +01:00
Sebastian Goscik
b0e500e2a8 misc 2016-09-27 11:20:11 +01:00
Sebastian Goscik
e0e4f389b9 Reworked configuration
All config now uses configuration points
Config parsing is now done in destinct stages
  - first all files are parsed and sent to their corresponding config objects or to a tree
  - tree is traversed to generate job specs.
2016-09-27 11:20:11 +01:00
Sebastian Goscik
05df7c7d9f ExecutionContext: Fixed copying agenda when one is not used 2016-09-27 11:17:25 +01:00
Sebastian Goscik
98b46894d8 Updates to pluggins to match the new plugin loader 2016-09-27 11:17:25 +01:00
Sebastian Goscik
17a395fbd4 Improved serializability 2016-09-27 11:17:25 +01:00
Sebastian Goscik
4485333454 Moved wlauto.core.config.core into wlauto.core.configuration 2016-09-27 11:17:25 +01:00
Sebastian Goscik
1e6763ee9b pluginloader: Replaced extension loader with WA3 plugin loader
In the process removed modules and boot_strap.py. Also Renamed extensions Plugins.

Louie is now monkey patched rather than containing a modified version in external
2016-09-27 11:17:25 +01:00
Sebastian Goscik
d89a52584b bootstrap: Removed and fixed module mapping for extensions 2016-02-23 17:01:53 +00:00
Sebastian Goscik
001239dfe4 Fixed WA extensions for LinuxManager
Changed method calls to devlib naming
2016-02-19 15:27:18 +00:00
Sebastian Goscik
1599c1e0ed Devices: Removed Devices
They are now superseded by DeviceManagers
2016-02-19 15:26:54 +00:00
Sebastian Goscik
4fc93a8a3c DeviceManager: Introduced DeviceManager extension
DeviceManagers will replace devices and will wrap devlib targets for use in WA
2016-02-19 15:23:07 +00:00
Sebastian Goscik
cd0186d14e json: Replaced json results processor with a more comprehensive one 2016-02-19 15:23:07 +00:00
Brendan Jackman
a5c9b94257 Add entry_point check for config file existence
This is just to provide a friendlier error message.
Before this commit you get an IOError from imp.load_source.
2016-02-17 17:24:14 +00:00
Sergei Trofimov
fdbc2ae372 pylint 2016-02-10 16:39:06 +00:00
Sebastian Goscik
519efaf22c Parameter: Fixed overriding of new parameters
Previously you could have `override` set to True on parameters that
only existed in the current scope.

Now if you try to override a parameter that doesn't exist higher up
in the hiarchy you will get a ValueError.
2016-02-04 15:36:47 +00:00
Sebastian Goscik
7ad8b8522b AttributeCollection: No longer allows duplicate overriding attributes
Previously if parameters with the same names and override set to True
were added to an extension at the same level one would silently
override the other.

This is no longer the case and an error will be show instead.

Also added tests to check that this is handeled correctly
2016-02-03 15:05:14 +00:00
Sebastian Goscik
fe2d279eac RunInfo: Added default run name
The run name will now default to ``{output_folder}_{date}_{time}``
2016-01-26 15:00:39 +00:00
Brendan Jackman
65cc22a305 core/agenda.py: Add check for empty values in agenda
This gives an error message when an agenda contains a key with no
value, so creating agendas is a little more user-friendly.
2016-01-25 13:43:38 +00:00
Brendan Jackman
2ae8c6073f doc: Apply it's/its grammar pedantry 2016-01-25 13:34:24 +00:00
Sergei Trofimov
98b19328de Fixing assets discovery.
- Two different parameters may now have the same global alias as long as
  their types match
- `extension_asset` resource getter now picks up the path to the mouted
  filer from ``remote_assets_path`` global setting.
2016-01-22 12:19:31 +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
Sebastian Goscik
d9f1190e1f Version bump 2015-11-23 16:19:45 +00:00
Sergei Trofimov
76253e1e26 Fixing turning off UI in ChromeOS + adding it energy_model. 2015-09-14 12:53:08 +01:00
Sergei Trofimov
bfed59a7cf Adding an HTTP-based resource getter. 2015-09-03 13:55:44 +01:00
Sergei Trofimov
88f57e5251 Agenda: default config to dict 2015-08-21 08:34:49 +01:00
Sergei Trofimov
205934d55b juno: use bootargs on hard_reset with u-boot 2015-08-17 14:36:28 +01:00
Sergei Trofimov
25c0fd7b8b Allow setting classifiers via agenda. 2015-08-17 10:37:40 +01:00
Sergei Trofimov
85eba9c37a Better error reporting for subprocess.CalledProcessError 2015-08-11 16:51:34 +01: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
a37e734cf1 fix: adding dependencies_directory to NO_ONE resource owner 2015-07-01 16:08:10 +01:00
Sergei Trofimov
df6d1f1c2b resorce resover: debug-print the path of found resource 2015-06-30 10:50:49 +01:00
Sergei Trofimov
f7941bbc25 More informative syntax error reporting. 2015-06-30 10:36:20 +01:00
Bobby Batacharia
6069ccacdc ExtensionLoader should follow symlinks 2015-06-28 11:00:01 +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
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
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
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
179baf030e Fixed typo. 2015-06-12 12:43:35 +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
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
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
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
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