Comhaid
rocm-systems/script/parse_trace.py
T

48 línte
1.5 KiB
Python
Amh Amharc Gnáth Stair

2020-01-31 11:01:11 -05:00
#!/usr/bin/python
import os, sys, re
import argparse
events_count = {}
2020-02-07 17:00:50 -05:00
events_order = {}
2020-01-31 11:01:11 -05:00
def parse_trace(tracefile,cnt,order):
with open(tracefile) as f:
for line in f:
2020-02-07 17:00:50 -05:00
event_pattern = re.compile(r'<(\w+)\s+id\(\d+\)\s+.*tid\((\d+)\)>|\d+:\d+\s+\d+:\d+\s+(\w+)')
2020-01-31 11:01:11 -05:00
m = event_pattern.match(line)
if m:
event = m.group(1)
2020-02-03 17:25:28 -05:00
if not event:
2020-02-07 17:00:50 -05:00
event = m.group(3)
tid = m.group(2)
2020-01-31 11:01:11 -05:00
if cnt:
if event in events_count:
events_count[event] = events_count[event] + 1
else:
events_count[event] = 1
if order:
2020-02-07 17:00:50 -05:00
if tid:
if tid in events_order.keys():
events_order[tid].append(event)
else:
events_order[tid] = [event]
2020-01-31 11:01:11 -05:00
if cnt:
for event,count in events_count.items():
print event + ": count " + str(count)
if order:
2020-02-07 17:00:50 -05:00
for tid in sorted (events_order.keys()) :
print str(events_order[tid])
2020-01-31 11:01:11 -05:00
parser = argparse.ArgumentParser(description='parse_trace.py: reads roctracer trace file and parses it.')
parser.add_argument('-or', action='store_true',help='Generates ordered events')
2020-02-07 17:00:50 -05:00
parser.add_argument('-cn', action='store_true',help='Generates events count')
2020-01-31 11:01:11 -05:00
requiredNamed = parser.add_argument_group('Required arguments')
requiredNamed.add_argument('-in', metavar='file', help='Trace file', required=True)
args = vars(parser.parse_args())
if __name__ == '__main__':
parse_trace(args['in'],args['cn'],args['or'])