1
0
mirror of https://github.com/ARM-software/devlib.git synced 2025-02-07 13:40:48 +00:00

561 Commits

Author SHA1 Message Date
Quentin Perret
3c8294c6eb module/gem5stats: better document match() and match_iter() behaviours 2017-08-21 11:12:11 +01:00
Quentin Perret
64c865de59 module: gem5stats: enhance match() with regex support
The current implementation of match() in the gem5stats module returns
records matching exactly the specified keys. This commit changes this
behaviour by matching keys over regular expressions, hence resulting in
a much more powerful match() implementation.
2017-08-21 11:12:11 +01:00
setrofim
66a50a2f49 Merge pull request #163 from marcbonnici/Derived_Measurements
Add support for AcmeCape and Derived Measurements
2017-08-21 08:46:43 +01:00
Marc Bonnici
c093d56754 DerivedMeasurements: Add DerivedEnergyMeasurments
Adds `DerivedMeasurements` which are designed to perform post processing on
a provided MeasurementCsv.
Currently only a `DerivedEnergyMeasurements` class has been added which
has 2 purposes:
- Calculate energy from power results if not present using recorded timestamps,
  falling back to a provided sample rate
- Calculate cumulative energy and average power from a specified MeasurementCSV
  file.
2017-08-18 18:02:48 +01:00
Marc Bonnici
049b275665 Instrumentation: Update to store sample rate in MeasurementCSV file.
This commit updates existing instruments to store their sample rates
when creating the respective MeasurementCsv files.
2017-08-18 18:02:48 +01:00
Marc Bonnici
411719d58d Instrument/gem5power: Rename timestamp channel to match new API
To conform with the new DerivedMeasuements API the "sim_seconds" channel
has been renamed to "timestamp" so that it can be identified in post
processing. As "sim_seconds" needs to be extracted from the gem5
statistics file, an addional mapping has been added to support this.
2017-08-18 18:02:48 +01:00
Marc Bonnici
7dd934a5d8 Instrumentation: Update to populate missing 'sample_rate_hz` attributes
To conform with the Instrumentation API each instrument should populate
the `sample_rate_hz` attribute with the relevant information.
2017-08-18 17:10:17 +01:00
Marc Bonnici
30fdfc23d3 Instrument/Acmecape: Add support for acmecape 2017-08-18 13:33:49 +01:00
Marc Bonnici
d3c3015fc8 Instrument/MeasurementCSV: Add support for recording sample rate.
If performing post processing on a MeasurementCsv file, if a timestamp
is not available then the recorded sample rate can be used as a
substitute.
2017-08-18 13:32:23 +01:00
Marc Bonnici
5ef99f2cff Instrument/MeasurementType: Allow for converting to the same type
When trying to convert measurments to a standarised type some inputs
may already be of the correct type and will now return the same value
unchanged.
2017-08-18 13:32:19 +01:00
Marc Bonnici
9b465c2766 Instruments: Add millisecond MeasurementType and conversion
Allows for reporting times in milliseconds as used with the acmecape
instrument.
2017-08-18 13:32:16 +01:00
Marc Bonnici
2de2b36387 Instrumentation: Fix conversion between microseconds and seconds 2017-08-18 13:32:10 +01:00
marcbonnici
210712b384 Merge pull request #162 from setrofim/numeric-pcent
utils/types: numeric expeanded to handle percentages
2017-08-17 11:17:56 +01:00
setrofim
2a0d110012 Merge pull request #157 from marcbonnici/airplane/brightness
Adds additional Android methods
2017-08-17 10:59:27 +01:00
Sergei Trofimov
3d10e3eae9 utils/types: numeric expeanded to handle percentages
numeric() conversion function is expanded to handle percentage values in
the form "10.123%". The result is the numeric part converted to a float
and divided by 100, e.g. 0.10123.
2017-08-16 16:00:38 +01:00
setrofim
4d95656e49 Merge pull request #160 from qperret/gem5/stats/async-origin
module/gem5stats: enable asynchronous origins in gem5 stats file
2017-08-16 13:39:31 +01:00
Quentin Perret
38258eb74c module: gem5stats: enable asynchronous origins in gem5 stats file
Currently, reset_origin() in the gem5stats module enables to virtually
truncate the existing dumps from the gem5 statistics file so that any
subsequent match() calls will apply only on new dumps. However, the
current implementation resets the origin of the stats file unilaterally,
without other clients knowing about it, hence leading to data being
lost.

This commits removes the reset_origin() method and provides a different
API to handle virtual truncatures in the stats file. Namely, the match()
method now takes a base_dump parameter letting clients specifiying from
which dump they want match() to apply. This feature could also be usefull
if someone wanted to add off-line processing features for statistics
files.
2017-08-16 10:40:10 +01:00
Marc Bonnici
8839ed01ba AndroidTarget: Changes default unlocking method
Instead of using a default 'horizontal' unlocking method, now will try
a diagonal swipe up as this should work most modern devices with vertical or
horizontal unlocking methods.
2017-08-14 09:55:21 +01:00
Marc Bonnici
1229af0895 AndroidTarget: Fixes 'swipe_to_unlock' method. 2017-08-11 14:22:28 +01:00
Marc Bonnici
003785dde1 AndroidTarget: Adds methods to get/set screen rotation 2017-08-10 11:21:04 +01:00
Marc Bonnici
3e751746d6 AndroidTarget: Adds methods to get/set airplane mode
In order to change the state of airplane mode, the setting needs to
be configured before broadcasting an intent to update the system. As of
Android N, root is required to send the broadcast, therefore this method
will raise an error if the requirements are not satisfied.
2017-08-10 11:21:03 +01:00
Marc Bonnici
ddd2e29b87 AndroidTarget: Adds methods to get/set screen brightness 2017-08-10 11:21:03 +01:00
Brendan Jackman
380ad0515d ssh: Improve error when failing to push file
CalledProcessError doesn't include the output of the failed command
in the message it prints, so use a HostError isntead.
2017-08-09 16:01:49 +01:00
Brendan Jackman
93b39a7f47 ssh: Fix redacting SSH password in errors
IIUC this is supposed to redact the password from exception messages,
but 'pass_string' is not set to the password so nothing is
altered. Fix that.
2017-08-09 16:01:49 +01:00
setrofim
1da8d3f95f Merge pull request #151 from AnthonyARM/master
Add support for arbitrary ADB servers
2017-07-31 15:51:15 +01:00
Ionela Voinescu
d25beb5c8b gem5stats: fix missing import for TargetError
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
2017-07-27 11:07:05 +01:00
Sergei Trofimov
63e60401d5 module/cpufreq: rename get_domain_cpus
Rename get_domain_cpus to get_related_cpus to match cpufreq nomenclature.
2017-07-26 14:23:34 +01:00
Sergei Trofimov
e206e9b24a module/cpufreq: fix get_affected_cpus docstring
The docstring was duplicated from get_domain_cpus. This updates the
docstring to reflect the difference from get_domain_cpus.
2017-07-26 14:23:34 +01:00
Sergei Trofimov
36aa3af66d module/cpufreq: fix domain cpus.
- Use related_cpus rather than affected_cpus inside get_domain_cpus to
  return all cpus in the domain (including those online). This changes
  the behavior, but old behavior was almost certainly wrong as the
  method is memoized, and so the result should not be affected by
  hotplug.
- Add a non-memoized get_affected_cpus() which implements the old
  behavior.
2017-07-26 14:02:59 +01:00
Anthony Barbier
b392a0a1b4 Use related_cpus instead of affected_cpus
related_cpus doesn't rely on the related cores to be online to work cf https://www.kernel.org/doc/Documentation/cpu-freq/user-guide.txt
2017-07-26 14:00:38 +01:00
Valentin Schneider
b54dc19b81 devlib/module/thermal: Fix thermal zone disabling
Calling thermal.disable_all_zones() would raise an exception.
I've changed a few things:
* use self.zones.itervalues() in disable_all_zones to fix that exception
* renamed zone.set_mode() to zone.set_enabled()
2017-07-26 11:39:49 +01:00
Anthony Barbier
7919a5643c Add support for arbitrary ADB servers 2017-07-25 13:48:33 +01:00
Marc Bonnici
02c93b48ab ABI_MAP: Adds 'armeabi-v7a' to mapping 2017-07-20 14:24:07 +01:00
Marc Bonnici
98fb2e2306 Target: Ported supported_abi property from WA2 2017-07-20 14:24:07 +01:00
Marc Bonnici
68be9d8acc utils/android: Added native code extraction of apks from WA2 2017-07-14 17:20:24 +01:00
Sergei Trofimov
85036fbb30 utils/android: better error message when exit code not detected
Include the stdout/stderr output in the message of the exception raised
when the exit code of the adb command cannot be detected.
2017-07-12 13:46:19 +01:00
setrofim
b933dbda67 Merge pull request #146 from derkling/adb_addons
Add a couple of ADB related utility functions
2017-07-12 13:20:53 +01:00
Patrick Bellasi
0c7eb9e91e target: add support to kill/restart and ADB connection
Sometimes it could be useful to disconnect from the target, for example
when a "pass thought" energy monitor is used to control the USB
connection to the device.

This patch adds a couple of utility methods which allows to kill the ADB
server and restart it while waiting for the device to be ready to accept
new connections.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2017-07-12 12:30:30 +01:00
Patrick Bellasi
f26f942723 tagert: factor out the wait_boot_complete code
The connect() method embeds some code to wait for a target to be
completely booted.

Let's move this code into a dedicated function.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
2017-07-12 12:27:28 +01:00
Ionela Voinescu
0a95bbed87 misc.py: fix syntax error introduced by 86c9b6a1c7e
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
2017-07-10 16:07:28 +01:00
Sergei Trofimov
86c9b6a1c7 utils/misc: update MIDR table
Update the MIDR CPU part number table with values from
https://github.com/torvalds/linux/blob/master/arch/arm64/include/asm/cputype.h
2017-07-10 15:03:59 +01:00
Quentin Perret
7a827e2b11 instrument: Add power monitoring support on Gem5 platforms 2017-07-10 09:49:39 +01:00
Quentin Perret
ce48ad217d module: gem5stats: add an iterator to match records 2017-07-10 09:49:33 +01:00
setrofim
f9bc6966c0 Merge pull request #142 from qperret/gem5stats-module
module: Control and parse gem5's statistics log file
2017-07-07 11:44:02 +01:00
Quentin Perret
baedd676a9 module: Control and parse gem5's statistics log file
Gem5's statistics log file contains plenty of interesting information
that are not exposed so far. This module enables control and parsing of
the statistics file by:
 - configuring periodic dumps of statistics;
 - marking Regions of Interest (ROIs);
 - and extracting values of specific fields during the ROIs.
2017-07-07 11:33:28 +01:00
Valentin Schneider
92b0c25ed3 target: Add background_invoke() method 2017-07-06 16:01:15 +01:00
setrofim
fb58e47cf5 Merge pull request #141 from AnthonyARM/pull/big_little
Check if any big/LITTLE core is online before dereferencing a potentially empty list
2017-06-30 13:20:44 +01:00
Anthony Barbier
3660361df0 Raise a ValueError when trying to set a property of a type of core which is offline 2017-06-30 13:15:23 +01:00
Anthony Barbier
1199f2512b Check if any big/LITTLE core is online before dereferencing an potentially empty list 2017-06-28 17:15:05 +01:00
Anthony Barbier
c837a29299 Let the user customize the way to execute superuser commands 2017-06-28 15:08:35 +01:00