aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/scripts/python/syscall-counts-by-pid.py
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2019-04-11 08:36:30 -0400
committerTakashi Iwai <tiwai@suse.de>2019-04-11 08:36:30 -0400
commit9b0dcd0e5a27958b57e3e390f63c098d63a055da (patch)
treede778d683f121d3062df316994e9c4cf195eb12c /tools/perf/scripts/python/syscall-counts-by-pid.py
parentd7a181da2dfa3190487c446042ba01e07d851c74 (diff)
parentac71317e6be01812cc0c54d8be6d3c1139c8380b (diff)
Merge tag 'asoc-fix-v5.1-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v5.1 A few core fixes along with the driver specific ones, mainly fixing small issues that only affect x86 platforms for various reasons (their unusual machine enumeration mechanisms mainly, plus a fix for error handling in topology). There's some of the driver fixes that look larger than they are, like the hdmi-codec changes which resulted in an indentation change, and most of the other large changes are for new drivers like the STM32 changes.
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts-by-pid.py')
-rw-r--r--tools/perf/scripts/python/syscall-counts-by-pid.py51
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 @@
5# Displays system-wide system call totals, broken down by syscall. 5# Displays system-wide system call totals, broken down by syscall.
6# If a [comm] arg is specified, only syscalls called by [comm] are displayed. 6# If a [comm] arg is specified, only syscalls called by [comm] are displayed.
7 7
8from __future__ import print_function
9
8import os, sys 10import os, sys
9 11
10sys.path.append(os.environ['PERF_EXEC_PATH'] + \ 12sys.path.append(os.environ['PERF_EXEC_PATH'] + \
@@ -31,17 +33,16 @@ if len(sys.argv) > 1:
31syscalls = autodict() 33syscalls = autodict()
32 34
33def trace_begin(): 35def trace_begin():
34 print "Press control+C to stop and show the summary" 36 print("Press control+C to stop and show the summary")
35 37
36def trace_end(): 38def trace_end():
37 print_syscall_totals() 39 print_syscall_totals()
38 40
39def raw_syscalls__sys_enter(event_name, context, common_cpu, 41def raw_syscalls__sys_enter(event_name, context, common_cpu,
40 common_secs, common_nsecs, common_pid, common_comm, 42 common_secs, common_nsecs, common_pid, common_comm,
41 common_callchain, id, args): 43 common_callchain, id, args):
42
43 if (for_comm and common_comm != for_comm) or \ 44 if (for_comm and common_comm != for_comm) or \
44 (for_pid and common_pid != for_pid ): 45 (for_pid and common_pid != for_pid ):
45 return 46 return
46 try: 47 try:
47 syscalls[common_comm][common_pid][id] += 1 48 syscalls[common_comm][common_pid][id] += 1
@@ -49,26 +50,26 @@ def raw_syscalls__sys_enter(event_name, context, common_cpu,
49 syscalls[common_comm][common_pid][id] = 1 50 syscalls[common_comm][common_pid][id] = 1
50 51
51def syscalls__sys_enter(event_name, context, common_cpu, 52def syscalls__sys_enter(event_name, context, common_cpu,
52 common_secs, common_nsecs, common_pid, common_comm, 53 common_secs, common_nsecs, common_pid, common_comm,
53 id, args): 54 id, args):
54 raw_syscalls__sys_enter(**locals()) 55 raw_syscalls__sys_enter(**locals())
55 56
56def print_syscall_totals(): 57def print_syscall_totals():
57 if for_comm is not None: 58 if for_comm is not None:
58 print "\nsyscall events for %s:\n\n" % (for_comm), 59 print("\nsyscall events for %s:\n" % (for_comm))
59 else: 60 else:
60 print "\nsyscall events by comm/pid:\n\n", 61 print("\nsyscall events by comm/pid:\n")
61 62
62 print "%-40s %10s\n" % ("comm [pid]/syscalls", "count"), 63 print("%-40s %10s" % ("comm [pid]/syscalls", "count"))
63 print "%-40s %10s\n" % ("----------------------------------------", \ 64 print("%-40s %10s" % ("----------------------------------------",
64 "----------"), 65 "----------"))
65 66
66 comm_keys = syscalls.keys() 67 comm_keys = syscalls.keys()
67 for comm in comm_keys: 68 for comm in comm_keys:
68 pid_keys = syscalls[comm].keys() 69 pid_keys = syscalls[comm].keys()
69 for pid in pid_keys: 70 for pid in pid_keys:
70 print "\n%s [%d]\n" % (comm, pid), 71 print("\n%s [%d]" % (comm, pid))
71 id_keys = syscalls[comm][pid].keys() 72 id_keys = syscalls[comm][pid].keys()
72 for id, val in sorted(syscalls[comm][pid].iteritems(), \ 73 for id, val in sorted(syscalls[comm][pid].items(),
73 key = lambda(k, v): (v, k), reverse = True): 74 key = lambda kv: (kv[1], kv[0]), reverse = True):
74 print " %-38s %10d\n" % (syscall_name(id), val), 75 print(" %-38s %10d" % (syscall_name(id), val))