diff options
| author | Ingo Molnar <[email protected]> | 2010-11-18 13:22:14 +0100 | 
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2010-11-18 13:22:26 +0100 | 
| commit | 92fd4d4d67b945c0766416284d4ab236b31542c4 (patch) | |
| tree | 00b8b5f90748f752ccaba3dddbe271091d93543a /tools/perf/scripts/python/failed-syscalls-by-pid.py | |
| parent | fe7de49f9d4e53f24ec9ef762a503f70b562341c (diff) | |
| parent | e53beacd23d9cb47590da6a7a7f6d417b941a994 (diff) | |
Merge commit 'v2.6.37-rc2' into sched/core
Merge reason: Move to a .37-rc base.
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/failed-syscalls-by-pid.py')
| -rw-r--r-- | tools/perf/scripts/python/failed-syscalls-by-pid.py | 21 | 
1 files changed, 13 insertions, 8 deletions
diff --git a/tools/perf/scripts/python/failed-syscalls-by-pid.py b/tools/perf/scripts/python/failed-syscalls-by-pid.py index 0ca02278fe69..acd7848717b3 100644 --- a/tools/perf/scripts/python/failed-syscalls-by-pid.py +++ b/tools/perf/scripts/python/failed-syscalls-by-pid.py @@ -13,21 +13,26 @@ sys.path.append(os.environ['PERF_EXEC_PATH'] + \  from perf_trace_context import *  from Core import * +from Util import * -usage = "perf trace -s syscall-counts-by-pid.py [comm]\n"; +usage = "perf trace -s syscall-counts-by-pid.py [comm|pid]\n";  for_comm = None +for_pid = None  if len(sys.argv) > 2:  	sys.exit(usage)  if len(sys.argv) > 1: -	for_comm = sys.argv[1] +	try: +		for_pid = int(sys.argv[1]) +	except: +		for_comm = sys.argv[1]  syscalls = autodict()  def trace_begin(): -	pass +	print "Press control+C to stop and show the summary"  def trace_end():  	print_error_totals() @@ -35,9 +40,9 @@ def trace_end():  def raw_syscalls__sys_exit(event_name, context, common_cpu,  	common_secs, common_nsecs, common_pid, common_comm,  	id, ret): -	if for_comm is not None: -		if common_comm != for_comm: -			return +	if (for_comm and common_comm != for_comm) or \ +	   (for_pid  and common_pid  != for_pid ): +		return  	if ret < 0:  		try: @@ -62,7 +67,7 @@ def print_error_totals():  		    print "\n%s [%d]\n" % (comm, pid),  		    id_keys = syscalls[comm][pid].keys()  		    for id in id_keys: -			    print "  syscall: %-16d\n" % (id), +			    print "  syscall: %-16s\n" % syscall_name(id),  			    ret_keys = syscalls[comm][pid][id].keys()  			    for ret, val in sorted(syscalls[comm][pid][id].iteritems(), key = lambda(k, v): (v, k),  reverse = True): -				    print "    err = %-20d  %10d\n" % (ret, val), +				    print "    err = %-20s  %10d\n" % (strerror(ret), val),  |