summaryrefslogtreecommitdiff
path: root/simpleperf
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2024-02-26 12:15:26 -0800
committerYabin Cui <yabinc@google.com>2024-02-26 12:15:26 -0800
commit938e3e5ba3f765041b22a657192d3b805790fb2a (patch)
tree701e0e8fe618abb5c8dc417bc20cbd40c4986838 /simpleperf
parent9030e7c51a7811ac6dafed9a02813d5c0b02468c (diff)
downloadextras-938e3e5ba3f765041b22a657192d3b805790fb2a.tar.gz
simpleperf: ProtoFileReportLib: fix reporting off-cpu mode
Also report recording file when a trace-offcpu mode isn't supported. Bug: 325484390 Test: run test/test.py -p TestProtoFileReportLib* Test: run scripts manually Change-Id: Ie4e0cda2621e5e9bf7c05137fe15b8625359c2dc
Diffstat (limited to 'simpleperf')
-rw-r--r--simpleperf/scripts/simpleperf_report_lib.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/simpleperf/scripts/simpleperf_report_lib.py b/simpleperf/scripts/simpleperf_report_lib.py
index acd349e9..68881b96 100644
--- a/simpleperf/scripts/simpleperf_report_lib.py
+++ b/simpleperf/scripts/simpleperf_report_lib.py
@@ -565,6 +565,7 @@ class ProtoFileReportLib:
'`pip install protobuf==4.21`.')
def __init__(self):
+ self.record_file = None
self.report_sample_pb2 = ProtoFileReportLib.get_report_sample_pb2()
self.records: List[self.report_sample_pb2.Record] = []
self.record_index = -1
@@ -601,6 +602,7 @@ class ProtoFileReportLib:
pass
def SetRecordFile(self, record_file: str):
+ self.record_file = record_file
with open(record_file, 'rb') as fh:
data = fh.read()
_check(data[:10] == b'SIMPLEPERF', f'magic number mismatch: {data[:10]}')
@@ -668,8 +670,8 @@ class ProtoFileReportLib:
one of the modes returned by GetSupportedTraceOffCpuModes().
"""
supported_modes = self.GetSupportedTraceOffCpuModes()
- _check(mode in supported_modes,
- f'unsupported trace-offcpu mode: {mode}. supported modes are: {supported_modes}')
+ _check(mode in supported_modes, f'unsupported trace-offcpu mode: {mode}. ' +
+ f'Supported modes are {supported_modes} in {self.record_file}')
self.trace_offcpu_mode = mode
def AggregateThreads(self, thread_name_regex_list: List[str]):
@@ -709,14 +711,14 @@ class ProtoFileReportLib:
if prev_offcpu_sample := self.offcpu_samples.get(sample.thread_id):
# If there is a previous off-cpu sample, update its period.
prev_offcpu_sample.event_count = max(sample.time - prev_offcpu_sample.time, 1)
- self._add_to_sample_queue(sample)
+ self._add_to_sample_queue(prev_offcpu_sample)
if is_offcpu:
self.offcpu_samples[sample.thread_id] = sample
else:
self.offcpu_samples[sample.thread_id] = None
if self.trace_offcpu_mode in ('on-off-cpu', 'mixed-on-off-cpu'):
- self.sample_queue.append(sample)
+ self._add_to_sample_queue(sample)
def _process_context_switch(self, context_switch) -> None:
if not context_switch.switch_on: