Messages in this thread Patch in this message | | | Date | Tue, 11 Jul 2023 04:43:40 +0530 | From | Anup Sharma <> | Subject | [PATCH v3 4/6] scripts: python: Add trace end processing and JSON output |
| |
Inside the trace end function the final output will be dumped to standard output in JSON gecko format. Additionally, constants such as USER_CATEGORY_INDEX, KERNEL_CATEGORY_INDEX, CATEGORIES, and PRODUCT are defined to provide contextual information.
Signed-off-by: Anup Sharma <anupnewsmail@gmail.com> --- .../scripts/python/firefox-gecko-converter.py | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-)
diff --git a/tools/perf/scripts/python/firefox-gecko-converter.py b/tools/perf/scripts/python/firefox-gecko-converter.py index 0b8a86bdcab1..39818a603265 100644 --- a/tools/perf/scripts/python/firefox-gecko-converter.py +++ b/tools/perf/scripts/python/firefox-gecko-converter.py @@ -24,8 +24,40 @@ from Core import * thread_map = {} start_time = None +# Follow Brendan Gregg's Flamegraph convention: orange for kernel and yellow for user +CATEGORIES = [ + {'name': 'User', 'color': 'yellow', 'subcategories': ['Other']}, + {'name': 'Kernel', 'color': 'orange', 'subcategories': ['Other']} +] + +# The product name is used by the profiler UI to show the Operating system and Processor. +PRODUCT = os.popen('uname -op').read().strip() + def trace_end(): - pass + thread_array = thread_map.values())) + + result = { + 'meta': { + 'interval': 1, + 'processType': 0, + 'product': PRODUCT, + 'stackwalk': 1, + 'debug': 0, + 'gcpoison': 0, + 'asyncstack': 1, + 'startTime': start_time, + 'shutdownTime': None, + 'version': 24, + 'presymbolicated': True, + 'categories': CATEGORIES, + 'markerSchema': [] + }, + 'libs': [], + 'threads': thread_array, + 'processes': [], + 'pausedRanges': [] + } + json.dump(result, sys.stdout, indent=2) def process_event(param_dict): global start_time -- 2.34.1
| |