6 trace = json.load(sys.stdin)
8 events = trace["traceEvents"]
11 events.sort(key=lambda event: event["ts"])
13 jobs = int(sys.argv[1])
22 for slot in range(jobs):
31 for slot in range(jobs):
47 if phase == "M" and event["name"] == "thread_name":
48 name[pid] = args["name"]
52 if phase == "B" or phase == "S":
54 elif phase == "E" or phase == "F":
64 slot_events.append(event)
66 slot_events.sort(key=lambda event: event["tid"])
68 for event in slot_events:
69 if event["cat"] == "program":
70 event["cat"] = "ccache"
71 if event["tid"] in name:
72 event["name"] = name[event["tid"]]
73 elif event["tid"] in name:
74 event["name"] = event["name"] + ":" + name[event["tid"]]
76 if event["ph"] == "S":
78 elif event["ph"] == "F":
81 for slot in range(jobs):
88 "name": "process_name",
89 "args": {"name": "Job %d" % slot},
93 json.dump({"traceEvents": slot_events}, sys.stdout, indent=4)