[PATCH v3 5/6] scripts: python: Implement add sample function and return finish

From: Anup Sharma
Date: Mon Jul 10 2023 - 19:14:37 EST


The addSample function appends a new entry to the 'samples' data structure.

The finish function generates a dictionary containing various profile
information such as 'tid', 'pid', 'name', 'markers', 'samples',
'frameTable', 'stackTable', 'stringTable', 'registerTime',
'unregisterTime', and 'processType'.

Signed-off-by: Anup Sharma <anupnewsmail@xxxxxxxxx>
---
.../scripts/python/firefox-gecko-converter.py | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)

diff --git a/tools/perf/scripts/python/firefox-gecko-converter.py b/tools/perf/scripts/python/firefox-gecko-converter.py
index 39818a603265..6c934de1f608 100644
--- a/tools/perf/scripts/python/firefox-gecko-converter.py
+++ b/tools/perf/scripts/python/firefox-gecko-converter.py
@@ -106,11 +106,36 @@ def process_event(param_dict):
}
stringTable = []

+ def addSample(threadName, stackArray, time):
+ responsiveness = 0
+ samples['data'].append([stack, time, responsiveness])
+
+ def finish():
+ return {
+ "tid": tid,
+ "pid": pid,
+ "name": name,
+ "markers": markers,
+ "samples": samples,
+ "frameTable": frameTable,
+ "stackTable": stackTable,
+ "stringTable": stringTable,
+ "registerTime": 0,
+ "unregisterTime": None,
+ "processType": 'default'
+ }
+
+ return {
+ "addSample": addSample,
+ "finish": finish
+ }
+
def _addThreadSample(pid, tid, threadName, time_stamp, stack):
thread = thread_map.get(tid)
if not thread:
thread = _createThread(threadName, pid, tid)
thread_map[tid] = thread
+ thread['addSample'](threadName, stack, time_stamp)

# Extract relevant information from the event parameters. The event parameters
# are in a dictionary:
--
2.34.1