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

output_processors/cpustates: Deal with cpufreq data being unavailable

If the `cpufreq` module is not detected as present then warn the user
and processes the remaining data instead of crashing.
This commit is contained in:
Marc Bonnici 2019-10-15 13:33:21 +01:00 committed by setrofim
parent 09d6f4dea1
commit 298bc3a7f3
2 changed files with 5 additions and 2 deletions

View File

@ -94,6 +94,9 @@ class CpuStatesProcessor(OutputProcessor):
if not trace_file:
self.logger.warning('Text trace does not appear to have been generated; skipping this iteration.')
return
if 'cpufreq' not in target_info.modules:
msg = '"cpufreq" module not detected on target, cpu frequency information may be missing.'
self.logger.warning(msg)
self.logger.info('Generating power state reports from trace...')
reports = report_power_stats( # pylint: disable=unbalanced-tuple-unpacking

View File

@ -560,12 +560,12 @@ class CpuUtilizationTimeline(object):
headers = ['ts'] + ['{} CPU{}'.format(cpu.name, cpu.id) for cpu in cpus]
self.writer.writerow(headers)
self._max_freq_list = [cpu.cpufreq.available_frequencies[-1] for cpu in cpus]
self._max_freq_list = [cpu.cpufreq.available_frequencies[-1] for cpu in cpus if cpu.cpufreq.available_frequencies]
def update(self, timestamp, core_states): # NOQA
row = [timestamp]
for core, [_, frequency] in enumerate(core_states):
if frequency is not None:
if frequency is not None and core in self._max_freq_list:
frequency /= float(self._max_freq_list[core])
row.append(frequency)
else: