From cb428330fe9d290fed381df74d9a0939028b93db Mon Sep 17 00:00:00 2001 From: Evgeny Date: Thu, 31 Jan 2019 00:51:35 -0600 Subject: [PATCH] fixing stats without hsa trace Change-Id: Ic582175189be187acb30133b843f76fe69996191 --- bin/sqlitedb.py | 29 ++++++++++++++++++++--------- bin/tblextr.py | 34 +++++++++++++++++++++------------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/bin/sqlitedb.py b/bin/sqlitedb.py index f3fb69001c..bfcf12fae9 100644 --- a/bin/sqlitedb.py +++ b/bin/sqlitedb.py @@ -1,10 +1,11 @@ -import csv, sqlite3, re +import csv, sqlite3, re, sys # SQLite Database class class SQLiteDB: def __init__(self, file_name): self.connection = sqlite3.connect(file_name) self.tables = {} + self.json_arg_list_enabled = 0 def __del__(self): self.connection.close() @@ -71,6 +72,9 @@ class SQLiteDB: def _get_raws(self, table_name): cursor = self.connection.execute('SELECT * FROM ' + table_name) return cursor.fetchall() + def _get_raws_indexed(self, table_name): + cursor = self.connection.execute('SELECT * FROM ' + table_name + ' order by "Index" asc;') + return cursor.fetchall() def _get_raw_by_id(self, table_name, req_id): cursor = self.connection.execute('SELECT * FROM ' + table_name + ' WHERE "Index"=?', (req_id,)) raws = cursor.fetchall() @@ -128,31 +132,38 @@ class SQLiteDB: name_ptrn = re.compile(r'(name|Name)') table_fields = self._get_fields(table_name) - table_raws = self._get_raws(table_name) + table_raws = self._get_raws_indexed(table_name) data_fields = self._get_fields(data_name) + data_raws = self._get_raws_indexed(data_name) with open(file_name, mode='a') as fd: - for raw_index in range(len(table_raws)): - values = list(table_raws[raw_index]) + table_raws_len = len(table_raws) + for raw_index in range(table_raws_len): + if (raw_index == table_raws_len - 1) or (raw_index % 1000 == 0): + sys.stdout.write( \ + "\rdump json " + str(raw_index) + ":" + str(len(table_raws)) + " "*100 \ + ) + vals_list = [] - raw_id = 0; + values = list(table_raws[raw_index]) for value_index in range(len(values)): label = table_fields[value_index] value = values[value_index] if name_ptrn.search(label): value = sub_ptrn.sub(r'', value) - if label == '"Index"': raw_id = value - else: vals_list.append('%s:"%s"' % (label, value)) + if label != '"Index"': vals_list.append('%s:"%s"' % (label, value)) - data = self._get_raw_by_id(data_name, raw_id) args_list = [] + data = list(data_raws[raw_index]) for value_index in range(len(data)): label = data_fields[value_index] value = data[value_index] if name_ptrn.search(label): value = sub_ptrn.sub(r'', value) - args_list.append('%s:"%s"' % (label, value)) + if label != '"Index"': args_list.append('%s:"%s"' % (label, value)) fd.write(',{"ph":"%s",%s,\n "args":{\n %s\n }\n}\n' % ('X', ','.join(vals_list), ',\n '.join(args_list))) + sys.stdout.write('\n') + # execute query on DB def execute(self, cmd): cursor = self.connection.cursor() diff --git a/bin/tblextr.py b/bin/tblextr.py index c732283f29..aff6d6a880 100755 --- a/bin/tblextr.py +++ b/bin/tblextr.py @@ -186,6 +186,8 @@ def fill_hsa_db(table_name, db, indir): ptrn_val = re.compile(r'(\d+):(\d+) (\d+):(\d+) ([^\(]+)(\(.*)$') ptrn_ac = re.compile(r'hsa_amd_memory_async_copy') + if not os.path.isfile(file_name): return 0 + if not COPY_PID in dep_dict: dep_dict[COPY_PID] = {} dep_tid_list = [] dep_from_us_list = [] @@ -226,6 +228,8 @@ def fill_hsa_db(table_name, db, indir): dep_dict[COPY_PID]['tid'] = dep_tid_list dep_dict[COPY_PID]['from'] = dep_from_us_list + + return 1 ############################################################# # fill COPY DB @@ -266,7 +270,6 @@ if (len(sys.argv) < 3): fatal("Usage: " + sys.argv[0] + "