mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-31 10:11:17 +00:00
utils/power: handle devlib frequency reporting
When collecting ftrace events, the instrument will insert frequencies into the trace to make it possible reconstruct power states when there were no frequency transitions during the measured period. The format in which frequencies are inserted is different in devlib. Since post-processing scripts may be run on traces collected by devlib as well as WA, it needs to support both formats.
This commit is contained in:
parent
7bf0e3c344
commit
5db11462be
@ -32,6 +32,7 @@ logger = logging.getLogger('power')
|
||||
UNKNOWN_FREQUENCY = -1
|
||||
|
||||
INIT_CPU_FREQ_REGEX = re.compile(r'CPU (?P<cpu>\d+) FREQUENCY: (?P<freq>\d+) kHZ')
|
||||
DEVLIB_CPU_FREQ_REGEX = re.compile(r'cpu_frequency(?:_devlib):\s+state=(?P<freq>\d+)\s+cpu_id=(?P<cpu>\d+)')
|
||||
|
||||
|
||||
class CorePowerTransitionEvent(object):
|
||||
@ -311,7 +312,10 @@ def stream_cpu_power_transitions(events):
|
||||
elif TRACE_MARKER_STOP in event.text:
|
||||
yield TraceMarkerEvent('STOP')
|
||||
else:
|
||||
match = INIT_CPU_FREQ_REGEX.search(event.text)
|
||||
if 'cpu_frequency' in event.text:
|
||||
match = DEVLIB_CPU_FREQ_REGEX.search(event.text)
|
||||
else:
|
||||
match = INIT_CPU_FREQ_REGEX.search(event.text)
|
||||
if match:
|
||||
yield CorePowerTransitionEvent(event.timestamp,
|
||||
int(match.group('cpu')),
|
||||
|
Loading…
x
Reference in New Issue
Block a user