summaryrefslogtreecommitdiff
path: root/tools/perf/python
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-11-07 10:31:10 +0300
committerMax Filippov <jcmvbkbc@gmail.com>2016-11-07 10:31:10 +0300
commit712cba5d87a6c0e980ee5fad45734e189c4d7151 (patch)
treef73d73c08df83276d7775678b8f41b94a0c28fa7 /tools/perf/python
parenta4c6be5ad1d0c7af0c5421b68a00b6406b28a325 (diff)
parenta909d3e636995ba7c349e2ca5dbb528154d4ac30 (diff)
downloadlinux-712cba5d87a6c0e980ee5fad45734e189c4d7151.tar.xz
Merge tag 'v4.9-rc3' into xtensa-for-next
Linux 4.9-rc3
Diffstat (limited to 'tools/perf/python')
-rwxr-xr-xtools/perf/python/tracepoint.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint.py
new file mode 100755
index 000000000000..eb4dbed57de7
--- /dev/null
+++ b/tools/perf/python/tracepoint.py
@@ -0,0 +1,47 @@
+#! /usr/bin/python
+# -*- python -*-
+# -*- coding: utf-8 -*-
+
+import perf
+
+class tracepoint(perf.evsel):
+ def __init__(self, sys, name):
+ config = perf.tracepoint(sys, name)
+ perf.evsel.__init__(self,
+ type = perf.TYPE_TRACEPOINT,
+ config = config,
+ freq = 0, sample_period = 1, wakeup_events = 1,
+ sample_type = perf.SAMPLE_PERIOD | perf.SAMPLE_TID | perf.SAMPLE_CPU | perf.SAMPLE_RAW | perf.SAMPLE_TIME)
+
+def main():
+ tp = tracepoint("sched", "sched_switch")
+ cpus = perf.cpu_map()
+ threads = perf.thread_map(-1)
+
+ evlist = perf.evlist(cpus, threads)
+ evlist.add(tp)
+ evlist.open()
+ evlist.mmap()
+
+ while True:
+ evlist.poll(timeout = -1)
+ for cpu in cpus:
+ event = evlist.read_on_cpu(cpu)
+ if not event:
+ continue
+
+ if not isinstance(event, perf.sample_event):
+ continue
+
+ print "time %u prev_comm=%s prev_pid=%d prev_prio=%d prev_state=0x%x ==> next_comm=%s next_pid=%d next_prio=%d" % (
+ event.sample_time,
+ event.prev_comm,
+ event.prev_pid,
+ event.prev_prio,
+ event.prev_state,
+ event.next_comm,
+ event.next_pid,
+ event.next_prio)
+
+if __name__ == '__main__':
+ main()