Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 218671
b: refs/heads/master
c: a64fa19
h: refs/heads/master
i:
  218669: dd0b2f6
  218667: c42945a
  218663: 04a4177
  218655: ed68a60
v: v3
  • Loading branch information
Arnaldo Carvalho de Melo committed Oct 25, 2010
1 parent c436d97 commit 5b11eda
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 9 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2e7d1e3fb8043380a2fc5d759eb357bf05acf935
refs/heads/master: a64fa198ba1cd232871710c37476e006ed5516ed
21 changes: 13 additions & 8 deletions trunk/tools/perf/scripts/python/syscall-counts-by-pid.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,44 @@
# Displays system-wide system call totals, broken down by syscall.
# If a [comm] arg is specified, only syscalls called by [comm] are displayed.

import os
import sys
import os, sys

sys.path.append(os.environ['PERF_EXEC_PATH'] + \
'/scripts/python/Perf-Trace-Util/lib/Perf/Trace')

from perf_trace_context import *
from Core import *
from Util import syscall_name

usage = "perf trace -s syscall-counts-by-pid.py [comm]\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_syscall_totals()

def raw_syscalls__sys_enter(event_name, context, common_cpu,
common_secs, common_nsecs, common_pid, common_comm,
id, args):
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
try:
syscalls[common_comm][common_pid][id] += 1
except TypeError:
Expand All @@ -61,4 +66,4 @@ def print_syscall_totals():
id_keys = syscalls[comm][pid].keys()
for id, val in sorted(syscalls[comm][pid].iteritems(), \
key = lambda(k, v): (v, k), reverse = True):
print " %-38d %10d\n" % (id, val),
print " %-38s %10d\n" % (syscall_name(id), val),

0 comments on commit 5b11eda

Please sign in to comment.