diff options
| author | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2022-04-01 16:12:31 +0100 | 
|---|---|---|
| committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2022-04-01 16:12:31 +0100 | 
| commit | de4fb176622d54a82ea3ceb7362392aaf5ff0b5a (patch) | |
| tree | 8b510763d14d89b97cd719e79834c84e095932d7 /tools/perf/scripts/python/intel-pt-events.py | |
| parent | 9be4c88bb7924f68f88cfd47d925c2d046f51a73 (diff) | |
| parent | 9c6d6652e950fb34295f446676a811f6df5b8561 (diff) | |
Merge branches 'fixes' and 'misc' into for-linus
Diffstat (limited to 'tools/perf/scripts/python/intel-pt-events.py')
| -rw-r--r-- | tools/perf/scripts/python/intel-pt-events.py | 23 | 
1 files changed, 13 insertions, 10 deletions
diff --git a/tools/perf/scripts/python/intel-pt-events.py b/tools/perf/scripts/python/intel-pt-events.py index 1d3a189a9a54..66452a8ec358 100644 --- a/tools/perf/scripts/python/intel-pt-events.py +++ b/tools/perf/scripts/python/intel-pt-events.py @@ -32,8 +32,7 @@ try:  except:  	broken_pipe_exception = IOError -glb_switch_str		= None -glb_switch_printed	= True +glb_switch_str		= {}  glb_insn		= False  glb_disassembler	= None  glb_src			= False @@ -70,6 +69,7 @@ def trace_begin():  	ap = argparse.ArgumentParser(usage = "", add_help = False)  	ap.add_argument("--insn-trace", action='store_true')  	ap.add_argument("--src-trace", action='store_true') +	ap.add_argument("--all-switch-events", action='store_true')  	global glb_args  	global glb_insn  	global glb_src @@ -256,10 +256,6 @@ def print_srccode(comm, param_dict, sample, symbol, dso, with_insn):  	print(start_str, src_str)  def do_process_event(param_dict): -	global glb_switch_printed -	if not glb_switch_printed: -		print(glb_switch_str) -		glb_switch_printed = True  	event_attr = param_dict["attr"]  	sample	   = param_dict["sample"]  	raw_buf	   = param_dict["raw_buf"] @@ -274,6 +270,11 @@ def do_process_event(param_dict):  	dso    = get_optional(param_dict, "dso")  	symbol = get_optional(param_dict, "symbol") +	cpu = sample["cpu"] +	if cpu in glb_switch_str: +		print(glb_switch_str[cpu]) +		del glb_switch_str[cpu] +  	if name[0:12] == "instructions":  		if glb_src:  			print_srccode(comm, param_dict, sample, symbol, dso, True) @@ -336,8 +337,6 @@ def auxtrace_error(typ, code, cpu, pid, tid, ip, ts, msg, cpumode, *x):  		sys.exit(1)  def context_switch(ts, cpu, pid, tid, np_pid, np_tid, machine_pid, out, out_preempt, *x): -	global glb_switch_printed -	global glb_switch_str  	if out:  		out_str = "Switch out "  	else: @@ -350,6 +349,10 @@ def context_switch(ts, cpu, pid, tid, np_pid, np_tid, machine_pid, out, out_pree  		machine_str = ""  	else:  		machine_str = "machine PID %d" % machine_pid -	glb_switch_str = "%16s %5d/%-5d [%03u] %9u.%09u %5d/%-5d %s %s" % \ +	switch_str = "%16s %5d/%-5d [%03u] %9u.%09u %5d/%-5d %s %s" % \  		(out_str, pid, tid, cpu, ts / 1000000000, ts %1000000000, np_pid, np_tid, machine_str, preempt_str) -	glb_switch_printed = False +	if glb_args.all_switch_events: +		print(switch_str); +	else: +		global glb_switch_str +		glb_switch_str[cpu] = switch_str  | 
