Merge "sysinfo metadata" into amd-master
This commit is contained in:
+8
-5
@@ -164,14 +164,17 @@ class SQLiteDB:
|
||||
def metadata_json(self, jsonfile, sysinfo_file):
|
||||
params = gen_params(sysinfo_file);
|
||||
with open(jsonfile, mode='a') as fd:
|
||||
cnt = 0
|
||||
fd.write('],\n')
|
||||
fd.write('"otherData": {\n')
|
||||
cnt = 0
|
||||
for key in params:
|
||||
if cnt != 0: fd.write(',\n')
|
||||
fd.write(' "' + key + '": "' + params[key] + '"')
|
||||
for nkey in sorted(params.keys()):
|
||||
key = nkey[1]
|
||||
cnt = cnt + 1
|
||||
fd.write('\n }\n')
|
||||
if cnt == len(params):
|
||||
fd.write(' "' + key + '": "' + params[nkey] + '"\n')
|
||||
else:
|
||||
fd.write(' "' + key + '": "' + params[nkey] + '",\n')
|
||||
fd.write(' }\n')
|
||||
|
||||
def dump_json(self, table_name, data_name, file_name):
|
||||
if not re.search(r'\.json$', file_name):
|
||||
|
||||
+16
-12
@@ -31,6 +31,7 @@ import os, sys, re
|
||||
# "Agent2_PoolInfo_ISAInfo_ISA1_WorkgroupMaxSizeperDimension_x": "1024(0x400)",
|
||||
def gen_params(txtfile):
|
||||
fields = {}
|
||||
counter = 0
|
||||
parent_field = ''
|
||||
nbr_indent = 0
|
||||
nbr_indent_prev = 0
|
||||
@@ -48,7 +49,8 @@ def gen_params(txtfile):
|
||||
if mv:
|
||||
key = 'HCCclangversion'
|
||||
val = mv.group(1)
|
||||
fields[key] = val
|
||||
counter = counter + 1
|
||||
fields[(counter,key)] = val
|
||||
continue
|
||||
# Variable 'check_for_dims' is True for text like this:
|
||||
# Workgroup Max Size per Dimension:
|
||||
@@ -60,15 +62,16 @@ def gen_params(txtfile):
|
||||
if mc:
|
||||
key_sav = mc.group(1)
|
||||
if parent_field != '':
|
||||
key = parent_field + '_' + mc.group(1)
|
||||
key = parent_field + '.' + mc.group(1)
|
||||
else:
|
||||
key = mc.group(1)
|
||||
val = re.sub(r"\s+", "", mc.group(2))
|
||||
fields[key] = val
|
||||
counter = counter + 1
|
||||
fields[(counter,key)] = val
|
||||
if key_sav == 'z':
|
||||
check_for_dims = False
|
||||
nbr_indent_prev = nbr_indent
|
||||
mi = re.search(r'^(\s+)\w+', line)
|
||||
mi = re.search(r'^(\s+)\w+.*', line)
|
||||
md = re.search(':', line)
|
||||
if mi:
|
||||
nbr_indent = len(mi.group(1)) / 2 #indentation cnt
|
||||
@@ -77,13 +80,13 @@ def gen_params(txtfile):
|
||||
tmp = re.sub(r"\s+", "", line)
|
||||
if tmp.isalnum():
|
||||
parent_field = tmp
|
||||
continue
|
||||
|
||||
if nbr_indent < nbr_indent_prev:
|
||||
pos = parent_field.rfind('_')
|
||||
if pos != -1:
|
||||
parent_field = parent_field[:pos]
|
||||
|
||||
go_back_parent=(nbr_indent_prev-nbr_indent)
|
||||
for i in range(go_back_parent): #decrease as many levels up as needed
|
||||
pos = parent_field.rfind('.')
|
||||
if pos != -1:
|
||||
parent_field = parent_field[:pos]
|
||||
# Process lines such as :
|
||||
# Segment: GLOBAL; FLAGS: KERNARG, FINE GRAINED
|
||||
# Size: 131897644(0x7dc992c) KB
|
||||
@@ -93,16 +96,17 @@ def gen_params(txtfile):
|
||||
if m:
|
||||
key, val = m.group(1), m.group(2)
|
||||
if parent_field != '':
|
||||
key = parent_field + '_' + key
|
||||
key = parent_field + '.' + key
|
||||
if val == '':
|
||||
mk = re.match(r'.*Dimension',key)
|
||||
if mk: # expect x,y,z on next 3 lines
|
||||
check_for_dims = True
|
||||
parent_field = key
|
||||
else:
|
||||
fields[key] = val
|
||||
counter = counter + 1
|
||||
fields[(counter,key)] = val
|
||||
else:
|
||||
if nbr_indent != nbr_indent_prev and not check_for_dims :
|
||||
parent_field = parent_field + '_' + lin.replace(':','')
|
||||
parent_field = parent_field + '.' + lin.replace(':','')
|
||||
|
||||
return fields
|
||||
|
||||
Reference in New Issue
Block a user