diff options
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
| -rw-r--r-- | tools/perf/scripts/python/export-to-postgresql.py | 16 | 
1 files changed, 10 insertions, 6 deletions
| diff --git a/tools/perf/scripts/python/export-to-postgresql.py b/tools/perf/scripts/python/export-to-postgresql.py index 0564dd7377f2..390a351d15ea 100644 --- a/tools/perf/scripts/python/export-to-postgresql.py +++ b/tools/perf/scripts/python/export-to-postgresql.py @@ -394,7 +394,8 @@ if perf_db_export_calls:  		'call_id	bigint,'  		'return_id	bigint,'  		'parent_call_path_id	bigint,' -		'flags		integer)') +		'flags		integer,' +		'parent_id	bigint)')  do_query(query, 'CREATE VIEW machines_view AS '  	'SELECT ' @@ -478,8 +479,9 @@ if perf_db_export_calls:  			'branch_count,'  			'call_id,'  			'return_id,' -			'CASE WHEN flags=1 THEN \'no call\' WHEN flags=2 THEN \'no return\' WHEN flags=3 THEN \'no call/return\' ELSE \'\' END AS flags,' -			'parent_call_path_id' +			'CASE WHEN flags=0 THEN \'\' WHEN flags=1 THEN \'no call\' WHEN flags=2 THEN \'no return\' WHEN flags=3 THEN \'no call/return\' WHEN flags=6 THEN \'jump\' ELSE CAST ( flags AS VARCHAR(6) ) END AS flags,' +			'parent_call_path_id,' +			'calls.parent_id'  		' FROM calls INNER JOIN call_paths ON call_paths.id = call_path_id')  do_query(query, 'CREATE VIEW samples_view AS ' @@ -575,6 +577,7 @@ def trace_begin():  	sample_table(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)  	if perf_db_export_calls or perf_db_export_callchains:  		call_path_table(0, 0, 0, 0) +		call_return_table(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)  unhandled_count = 0 @@ -657,6 +660,7 @@ def trace_end():  					'ADD CONSTRAINT returnfk    FOREIGN KEY (return_id)    REFERENCES samples    (id),'  					'ADD CONSTRAINT parent_call_pathfk FOREIGN KEY (parent_call_path_id) REFERENCES call_paths (id)')  		do_query(query, 'CREATE INDEX pcpid_idx ON calls (parent_call_path_id)') +		do_query(query, 'CREATE INDEX pid_idx ON calls (parent_id)')  	if (unhandled_count):  		print datetime.datetime.today(), "Warning: ", unhandled_count, " unhandled events" @@ -728,7 +732,7 @@ def call_path_table(cp_id, parent_id, symbol_id, ip, *x):  	value = struct.pack(fmt, 4, 8, cp_id, 8, parent_id, 8, symbol_id, 8, ip)  	call_path_file.write(value) -def call_return_table(cr_id, thread_id, comm_id, call_path_id, call_time, return_time, branch_count, call_id, return_id, parent_call_path_id, flags, *x): -	fmt = "!hiqiqiqiqiqiqiqiqiqiqii" -	value = struct.pack(fmt, 11, 8, cr_id, 8, thread_id, 8, comm_id, 8, call_path_id, 8, call_time, 8, return_time, 8, branch_count, 8, call_id, 8, return_id, 8, parent_call_path_id, 4, flags) +def call_return_table(cr_id, thread_id, comm_id, call_path_id, call_time, return_time, branch_count, call_id, return_id, parent_call_path_id, flags, parent_id, *x): +	fmt = "!hiqiqiqiqiqiqiqiqiqiqiiiq" +	value = struct.pack(fmt, 12, 8, cr_id, 8, thread_id, 8, comm_id, 8, call_path_id, 8, call_time, 8, return_time, 8, branch_count, 8, call_id, 8, return_id, 8, parent_call_path_id, 4, flags, 8, parent_id)  	call_file.write(value) | 
