History log of /external/lisa/libs/utils/energy.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
598950ae0725020e19512b4f7c98cb4d48840f6a 16-Jun-2017 Patrick Bellasi <patrick.bellasi@arm.com> energy/hwmon: fixup channels reference

In this patch:
4c12acc3 energy/hwmon: Improve default channel_map
we update the way channels map are used by the energy class.
However, that patch also introduced a miss reference in a code path
which is triggered only in case of error.

Let's fix it to properly propagate the exception generated in that path.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
3af8406e9768d5fbdb3ff03be3c16b29cc3e26e6 05-Jun-2017 Brendan Jackman <brendan.jackman@arm.com> libs/utils/energy: Fix df indexing

numpy.arange() was being used to index the energy-measurements df.
This method has some issues where the 'stop' value may or may not
be included in the returned set, i.e:
arange(0.8, 1.0, 0.1) could return [0.8, 0.9, 1.0]
BUT
arange(0.7, 1.0, 0.1) could return [0.7, 0.8, 0.9]
(not tested for these values but it is the problem being encountered)

This could thus create n indexes for n-1 values, which would cause an
exception.

numpy.linspace() is more predictible than arange(), as the 'stop' value
can explicitly be included or excluded (excluded by default).
This commit introduces linspace().
/external/lisa/libs/utils/energy.py
96e916b72d3259a08d92e3ffe6a58a07e3592f32 11-May-2017 Patrick Bellasi <derkling@gmail.com> Merge pull request #395 from bjackman/monsoon

energy: Add Monsoon Power Monitor Support
02e01b615611b11ddd214376851380ffdd20ceb1 10-May-2017 Brendan Jackman <brendan.jackman@arm.com> energy: Add Monsoon Power Monitor support
/external/lisa/libs/utils/energy.py
b10386975eda77413b87c69b59bf4f461ba95da2 10-May-2017 Brendan Jackman <brendan.jackman@arm.com> energy: Factor out base class for CONTINUOUS devlib instrument

Most of the logic for the ARM Energy Probe is generic to all devlib
energy instruments using CONTINUOUS mode. Factor it into a base
class; a subsequent commit will use this base class to add support
for another instrument.
/external/lisa/libs/utils/energy.py
4c12acc36ac64f4fb91e6553c6951d56ebb533a5 26-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/hwmon: Improve default channel_map

This changes the selection of hwmon channels so that:

- If a channel_map is provided explicitly, all the named hwmon sites
are required to exist, or an error is raised.

- Otherwise, if we have big.LITTLE information about the platform,
and hwmon reports the presence of channels with names matching the
names we have for the big.LITTLE cores, then we use those hwmon
sites for the "big" and "LITTLE" channels.

- If neither of the above criteria are met, we enable all available
hwmon energy channels.

We can probably factor this into a common base class with the AEP,
but I'll leave that for later when I can test it.
/external/lisa/libs/utils/energy.py
9c4950d634fd5680b7980ba8b4b7a5d3565ade4b 26-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/hwmon: Simplify channel/site/kind configuration

- The only kind of measurement we support is energy, so hard-code that and
remove the 'kinds' field from the conf['conf'] entry.

- Remove the 'sites' field from the conf['conf'] entry, instead just use the
values of the channel_map. The channel_map values are already required to be
subset of conf['conf']['sites'], and sites not listed in the channel_map are
not returned in output.
/external/lisa/libs/utils/energy.py
e1b6f9bd0bd7f94d0ed0ca333de8b81a46d4ba6c 25-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/hwmon: Use 'site' instead of 'label'

The current code string-manipulates the 'label' attribute of channel
objects to extract the site name. Instead just use the 'site' field.

Also rename the 'label' variables to 'site' for accuracy.
/external/lisa/libs/utils/energy.py
1598aab48b61772626db214ff8f2dfd5a49587bb 19-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy: Add data_frame field to EnergyReport

This (optionally) directly exposes the sample data. It remains to document this
part of the API and implement it for the ACME meter.
/external/lisa/libs/utils/energy.py
e0358aeac0dd15cff0cb819236383a12fb782a7e 26-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/AEP: Don't require channel_map

The ARM Energy Probe can only measure one channel at a time, and the
`labels` param just sets the key that's used to identify this sole
channel in the output. So if we don't get a channel_map arg, just
leave `labels` None and use whatever devlib calls it by default.
/external/lisa/libs/utils/energy.py
e9b39785235fbfebfe34e064fcae721053941232 26-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/AEP: remove unused code
/external/lisa/libs/utils/energy.py
0dfdce0c840de92f1af63b94b727176b89a7a47f 20-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/AEP: Raise RuntimeError if no data collected

This previously caused a division by zero error. That maths code has now been
removed, so no data results in a report of 0 energy.

Bring back the error and make it more helpful.
/external/lisa/libs/utils/energy.py
8a1a0131e6057bb6fbfd8b561d589ad13b1d8332 20-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/AEP: remove check for self._aep is None

This cannot arise
/external/lisa/libs/utils/energy.py
e7d8487e7517cef69c1317e3edb58709cec34bf7 19-Apr-2017 Brendan Jackman <brendan.jackman@arm.com> energy/AEP: Use pandas to simplify reading energy data

Instead of using devlib's MeasurementsCsv directly, just read the CSV file into
a DataFrame and use that. The format of the CSV is specified by the devlib API
so this should be generic.

This loses the extra information that is currently stored in the EnergyCounter
object, however that object is not currently exposed by the API and is
undocumented. So let's remove it. When we need that information again, we can
get it from pandas much more easily.

Remove the use of `time`, as it assumes that the energy meter can be started and
stopped instantaneously, this is not trustworthy.
/external/lisa/libs/utils/energy.py
9519e7b330b502564fd4ce0d361559c38d03a6c5 24-Apr-2017 Juri Lelli <juri.lelli@arm.com> libs/utils/energy: Fix error reporting for missing hwmon channel

For some platforms (e.g., JunoR2) channel labels in the energy report
might differ from channel names, and this raises a runtime error (even
if energy is correctly reported).

Fix it by always use channel labels.

Fixes: a41a48dfabb7 ('libs/utils/energy: Slightly improve error for missing hwmon channel')
Signed-off-by: Juri Lelli <juri.lelli@arm.com>
/external/lisa/libs/utils/energy.py
a41a48dfabb7a3b699d6dbdb5b9ba000cfbc8282 21-Mar-2017 Brendan Jackman <brendan.jackman@arm.com> libs/utils/energy: Slightly improve error for missing hwmon channel
/external/lisa/libs/utils/energy.py
c4c3fa1dd08bb604aa7a06905b8dce05b1088acf 30-Jan-2017 Ionela Voinescu <ionela.voinescu@arm.com> utils/energy.py: call superclass init with res_dir

For the ACME energy probe the init funtion call of the superclass
did not specify the results directory so the sample file would go
by default to /tmp/, where it might be overwritten if two tests are
ran at the same time, where the channels used have the same channel
descriptors.

For safety, pass the res_dir to the init call and have the output
file stored there before being moved to the specified output folder.

Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
/external/lisa/libs/utils/energy.py
185476a4b146ebf73fabe7bbaa5a46a369ba2ce2 25-Jan-2017 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: do not requires a "conf" entry for iio-capture's defaults

Make optional the "conf" section for iio-capture emeters setup in case
the defaults are to be used.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
cbae4bb727d9c8277db6318746386f4874e8043f 25-Jan-2017 Juri Lelli <juri.lelli@arm.com> libs/utils/energy: fix initialization of ACME

ACME energy meter supports multiple channels and initialization
of such channels uses a map that associates a channel id with a
human understandable name.
The current code translate this information to a fixed length array
and this causes a problem if devices ids are not contiguous or if not
all devices are in use, e.g.

"channel_map" : {
"Device1" : 1, # iio:device1
}

Keep the map association as is by using a dictionary instead of an array.
/external/lisa/libs/utils/energy.py
e49241fa42a7e95a3e19ab9f61bc7869a47e5c63 03-Nov-2016 Zhifei Yang <zhifei.yang@arm.com> Remove juno/juno2 distinction

All Juno boards now have the same hwmon setup, so we don't need the
juno/juno2 distinction any more.
/external/lisa/libs/utils/energy.py
c278c2343c7f25083a80cb164b6bdc761d50050b 22-Nov-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs: use a more configurable logging strategy

This is a big re-factoring which update all the logging statements to make
use of a more sane and consistent configuration:

- each module uses the same logger configuration but refers to a custom
logger which has the same name of the module, this should allows a
fine grained configuration of the loglevels for each module.

- a new libs/utils/conf.py::LisaLogging class allows to load the
configuration and customize the root logger level.

- loggers are configured using a single logfile (logging.conf) which is
provided by default in the LISA's root folder.

Each logger can be configured to specify:
- loglevel: INFO by default for all modules
- output channels: console and logfile (lisa.log by default) for all modules
- string format: the same by default for all modules

If logging.conf does not specify a specific configuration for a logger, than
the default logger configuration applies, which is the one defined by the
"root" logger.

Notebooks and LisaTest are required to call at least one time the
LisaLogging::setup() method to properly intialize logging.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
88b722cb1714cd0c03791f7195c65a9a81d1e64d 22-Sep-2016 Patrick Bellasi <derkling@gmail.com> libs/utils/energy: remove default hikey energy meters

The HiKey boards do not have embedded energy counters, thus an external device is required.
However, in case energy measurements are not required and the host is not configured to support
AEP devices, then the initialization of the default energy meter fails complaining about the missing
of the "caiman" tool. This failure can generate an exception in the TestEnv initialization.

This patch remove the default energy meter for all these devices which requires external dependencies.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
f11bd8427e359e454dad50059ddde01d5902cbd2 16-Sep-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: show measured energy only in report() for AEP

This is to make AEP meters consistent with the other energy meters.

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
767f0083b9ede32a3915fd275d349f8042e2cf56 16-Sep-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: show energy meters report in debug mode only

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
a85fa5c5c92b933b0603dfb4be73ad9e5f32b02a 12-Aug-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: adapt AEP energy meter to the generic API

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
80ab3c5c3e53d68460b587c16f8711c6db16724c 11-Aug-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: adapt ACME energy meter to the generic API

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
c71d17ef4041a9dc47c6a94bd42cd8f8f6841318 12-Aug-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: make energy meters API more generic

Currently available energy meters provide different formats for the results,
which makes the API not generic.

This makes the HWMon energy meters return results with similar format as the
ACME. A new attribute is introduced in the configuration dictionary called
"channel_map" that allows to map a user-defined label to the energy
meter-specific channel name. For example, in case of HWMon channel names are
the strings specified as "sites".

This way, when using the report() method, the user knows what is the label she
should use to measuree energy from a given channel and allows compatibility of
the code when using a different type of energy meter, by just changing the
channel mapping.

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
66db41f52cad493ad30ae6de314ab39b0d15db6e 12-Aug-2016 Michele Di Giorgio <michele.digiorgio@arm.com> libs/utils/energy: cosmetics for Energy Meters

Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
/external/lisa/libs/utils/energy.py
6bfc3ba409b7e1a68ad6fc416a4978e2f161c335 08-Aug-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: add support for remote IIO energy probing

Using the https://github.com/BayLibre/iio-capture utility to capture energy
using the iio infrastructure.

Suggested-by: Neil Armstrong (Renesas) <narmstrong+renesas@baylibre.com>
Signed-off-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
7b56cef545b03a60c2a9ff63f651663be2107974 03-May-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: AEP: add multi-channel support

The ARM EnergyProbe (AEP) allows to monitor up to 3 channels but the current
integration in LISA allows to sample only one channel.

This patch removes that limitation and it allows to sample and report
energy for all the available channels which have been configured by the
user.

A new EnergyCounter named tuple is used to keep track of the power and energy
values computed for each channel. Moreover, the collected CSV file containing
all the collected samples is saved in the results folder, named "samples.csv".
This file can be used for example to plot and/or post process the collected
energy values.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
704a24e2eff9bbe9abe564d96579561542fe7001 03-May-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: add support for user-defined configurations

The configuration of an energy meter can requires the specification of
a custom set of parameters. For example, using the ARM EnergyProbe (AEP)
we may want to specify the values of a shunt resistor or which channels
to use.

This patch allows to specify an energy meter configuration, for example:

"emeter" : {
"instrument" : "aep",
"conf" : {
'labels' : ['LITTLE', 'BIG'],
'resistor_values' : [0.099, 0.033],
'device_entry' : '/dev/ttyACM0',
}

Which configures two channels with different shunt values.

If an "emeter" configuration section is not specified by the user, the default
one is used, when hardcoded for the specifed board.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
664950ca6e87f88b879d8a455aced4adadca32c1 03-May-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: add support to specify a results folder

Some energy probes can collect data, e.g. power samples, which are than
usually used to compute the energy consumption.
Collected power samples can be useful for example to plot the
power consumption over time.

This patch adds the required support to specify a results folder
and emeter can use to collect samples data.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
16a0fc43287eb6ca4c40808482d935868e0490ca 27-Apr-2016 Chris Redpath <chris.redpath@arm.com> lisa: Add support for new Hwmon node names with 'mainline' driver

The names of the nodes for energy have changed - they are no longer
of the form 'a53_energy' for the CPU clusters, but are now called
'BOARD_LITTLE_ENERGY'. Likewise, all the other sensor names are different
but we don't monitor those in lisa.

In order to support those, add a new device named juno2. Once both types
are no longer in circulation, the names can be changed.

Signed-off-by: Chris Redpath <chris.redpath@arm.com>
/external/lisa/libs/utils/energy.py
b90fc0fe2a857cbb343cc6a987cdce7306dba48c 26-Feb-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: cosmetics

Reports selected energy meters in a more readable way.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
87267394f63aad602a201701399787a9c0e5d796 17-Jan-2016 Dietmar Eggemann <dietmar.eggemann@arm.com> libs/utils/energy.py: Initial integration of AEP Energy Meter:

This patch integrates the initial version of the ARM Energy Probe AEP
Energy Meter class.

The AEP delivers sample voltage, power and current values (10Khz). The
AEP Energy Meter uses only the power sample values and calculates the
energy value by multiplying the average power value with the time
difference value between the call of the reset() and the report()
method.

Current limitations:

- The AEP Energy Meter class is tailored to measure DIE energy on the
Hikey board for now.
- It implements only the reset() and report()(sample()) method (e.g.
used by the eas rfc test: tests/eas/rfc.py).
- It uses only AEP channel 1 (hardcoded).
- It uses a hardcoded value for shunt resistor (33 mOhm).
- It uses 'LITTLE' channel tag to let the existing tooling work with
the Hikey board even though we actually measure DIE energy.

The AEP Energy Meter operates on top of the devlib EnergyProbeInstrument
which itself uses the caiman binary to operate the AEP.

The EnergyProbeInstrument figures out if the caiman binary is not
installed and issues an appropriate error message in this case on the
host.

This patch bases on an initial version by Leo Yan <leo.yan@linaro.org>.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
/external/lisa/libs/utils/energy.py
e118f51827be7c36b5fa35e1d7142403a75eac34 18-Jan-2016 Dietmar Eggemann <dietmar.eggemann@arm.com> libs/utils/energy.py: Streamline self.readings calc in HWMon::sample()

Tested with JUNO target.

Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
/external/lisa/libs/utils/energy.py
b1e13e2bf8a625545fbad5ba14b04f25a2bb678e 22-Jan-2016 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: report the start of HWMON scanning

The scanning of HWMON channels performed by the devlib library could take
some time during which we do not see any progress in the console.

This patch adds an INFO statement to notice the user that a scanning is
in progress.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
d95e98d88a6cf4347853427dc4ef6fd0222a3881 04-Dec-2015 Patrick Bellasi <patrick.bellasi@arm.com> Add proper copyright headers to all the contributed sources

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
fcc87757294018cc86dfb96266fab66b972b6732 26-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: fix energy meter initialization

If a board is not defined we cannot load the proper energy meter.
This patch just return a None emter which will disable energy collection.

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
846d46aedc9b7ddb8a5e04b97c551e621429fec0 13-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: report clusters energy as a report output

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
0a7e0fdc8b0f8bcfaa1f14f27cfa89748db6df14 13-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: make energy report filename an optional parameter

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
e8355c2a1074e92a80c4c7eb2a9c7851819e4476 06-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: fix access to target object

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
f7dddcef4a841420a63fec452c7e64359ec473bf 06-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: gracefully return with a warning in case HWMON is not loaded

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py
16d94fb008126d4c1957c07ee1a8138ea1d12e43 05-Nov-2015 Patrick Bellasi <patrick.bellasi@arm.com> libs/utils/energy: add energy meter factory class

Signed-off-by: Patrick Bellasi <patrick.bellasi@arm.com>
/external/lisa/libs/utils/energy.py