The script takes in a sample event dictionary(param_dict) and retrieves relevant data such as time stamp, PID, TID, and comm for each event. Also start time is defined as a global variable as it need to be passed to trace_end for gecko meta information field creation.
Showing the changes to tools/perf/scripts/python (1 of 1 file). Show all
Unified · Split
| @@ -20,10 +20,22 @@ sys.path.append(os.environ['PERF_EXEC_PATH'] + \ · 19 unmodified lines | |||
| 20 | from perf_trace_context import * | 20 | from perf_trace_context import * |
| 21 | from Core import * | 21 | from Core import * |
| 22 | 22 | ||
| 23 | # start_time is intialiazed only once for the all event traces. | ||
| 24 | start_time = None | ||
| 25 | |||
| 23 | # Uses perf script python interface to parse each | 26 | # Uses perf script python interface to parse each |
| 24 | # event and store the data in the thread builder. | 27 | # event and store the data in the thread builder. |
| 25 | def process_event(param_dict: Dict) -> None: | 28 | def process_event(param_dict: Dict) -> None: |
| 26 | pass | 29 | global start_time |
| 30 | global tid_to_thread | ||
| 31 | time_stamp = (param_dict['sample']['time'] // 1000) / 1000 | ||
| 32 | pid = param_dict['sample']['pid'] | ||
| 33 | tid = param_dict['sample']['tid'] | ||
| 34 | comm = param_dict['comm'] | ||
| 35 | |||
| 36 | # Start time is the time of the first sample | ||
| 37 | if not start_time: | ||
| 38 | start_time = time_stamp | ||
| 27 | 39 | ||
| 28 | # Trace_end runs at the end and will be used to aggregate | 40 | # Trace_end runs at the end and will be used to aggregate |
| 29 | # the data into the final json object and print it out to stdout. | 41 | # the data into the final json object and print it out to stdout. |