diff options
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts-by-pid.py')
| -rw-r--r-- | tools/perf/scripts/python/syscall-counts-by-pid.py | 51 | 
1 files changed, 26 insertions, 25 deletions
| diff --git a/tools/perf/scripts/python/syscall-counts-by-pid.py b/tools/perf/scripts/python/syscall-counts-by-pid.py index daf314cc5dd3..f254e40c6f0f 100644 --- a/tools/perf/scripts/python/syscall-counts-by-pid.py +++ b/tools/perf/scripts/python/syscall-counts-by-pid.py @@ -5,6 +5,8 @@  # Displays system-wide system call totals, broken down by syscall.  # If a [comm] arg is specified, only syscalls called by [comm] are displayed. +from __future__ import print_function +  import os, sys  sys.path.append(os.environ['PERF_EXEC_PATH'] + \ @@ -31,17 +33,16 @@ if len(sys.argv) > 1:  syscalls = autodict()  def trace_begin(): -	print "Press control+C to stop and show the summary" +	print("Press control+C to stop and show the summary")  def trace_end():  	print_syscall_totals()  def raw_syscalls__sys_enter(event_name, context, common_cpu, -	common_secs, common_nsecs, common_pid, common_comm, -	common_callchain, id, args): - +		common_secs, common_nsecs, common_pid, common_comm, +		common_callchain, id, args):  	if (for_comm and common_comm != for_comm) or \ -	   (for_pid  and common_pid  != for_pid ): +		(for_pid and common_pid != for_pid ):  		return  	try:  		syscalls[common_comm][common_pid][id] += 1 @@ -49,26 +50,26 @@ def raw_syscalls__sys_enter(event_name, context, common_cpu,  		syscalls[common_comm][common_pid][id] = 1  def syscalls__sys_enter(event_name, context, common_cpu, -	common_secs, common_nsecs, common_pid, common_comm, -	id, args): +		common_secs, common_nsecs, common_pid, common_comm, +		id, args):  	raw_syscalls__sys_enter(**locals())  def print_syscall_totals(): -    if for_comm is not None: -	    print "\nsyscall events for %s:\n\n" % (for_comm), -    else: -	    print "\nsyscall events by comm/pid:\n\n", - -    print "%-40s  %10s\n" % ("comm [pid]/syscalls", "count"), -    print "%-40s  %10s\n" % ("----------------------------------------", \ -                                 "----------"), - -    comm_keys = syscalls.keys() -    for comm in comm_keys: -	    pid_keys = syscalls[comm].keys() -	    for pid in pid_keys: -		    print "\n%s [%d]\n" % (comm, pid), -		    id_keys = syscalls[comm][pid].keys() -		    for id, val in sorted(syscalls[comm][pid].iteritems(), \ -				  key = lambda(k, v): (v, k),  reverse = True): -			    print "  %-38s  %10d\n" % (syscall_name(id), val), +	if for_comm is not None: +		print("\nsyscall events for %s:\n" % (for_comm)) +	else: +		print("\nsyscall events by comm/pid:\n") + +	print("%-40s  %10s" % ("comm [pid]/syscalls", "count")) +	print("%-40s  %10s" % ("----------------------------------------", +				"----------")) + +	comm_keys = syscalls.keys() +	for comm in comm_keys: +		pid_keys = syscalls[comm].keys() +		for pid in pid_keys: +			print("\n%s [%d]" % (comm, pid)) +			id_keys = syscalls[comm][pid].keys() +			for id, val in sorted(syscalls[comm][pid].items(), +				key = lambda kv: (kv[1], kv[0]), reverse = True): +				print("  %-38s  %10d" % (syscall_name(id), val)) | 
