[PATCH 09/10] perf python: Add tracepoint example
To show how to open tracepoint and access its fields. Reported-and-tested-by: Jiri PirkoLink: http://lkml.kernel.org/n/tip-7xt9nvyl45qwbg9237f46...@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/python/tracepoint.py | 47 + 1 file changed, 47 insertions(+) create mode 100755 tools/perf/python/tracepoint.py diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint.py new file mode 100755 index ..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() -- 2.4.11
[PATCH 09/10] perf python: Add tracepoint example
To show how to open tracepoint and access its fields. Reported-and-tested-by: Jiri Pirko Link: http://lkml.kernel.org/n/tip-7xt9nvyl45qwbg9237f46...@git.kernel.org Signed-off-by: Jiri Olsa --- tools/perf/python/tracepoint.py | 47 + 1 file changed, 47 insertions(+) create mode 100755 tools/perf/python/tracepoint.py diff --git a/tools/perf/python/tracepoint.py b/tools/perf/python/tracepoint.py new file mode 100755 index ..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() -- 2.4.11