1c25ce589SFinn Behrens#! /usr/bin/env python 2b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0 39881d7dfSJiri Olsa# -*- python -*- 49881d7dfSJiri Olsa# -*- coding: utf-8 -*- 59881d7dfSJiri Olsa 69881d7dfSJiri Olsaimport perf 79881d7dfSJiri Olsa 89881d7dfSJiri Olsaclass tracepoint(perf.evsel): 99881d7dfSJiri Olsa def __init__(self, sys, name): 109881d7dfSJiri Olsa config = perf.tracepoint(sys, name) 119881d7dfSJiri Olsa perf.evsel.__init__(self, 129881d7dfSJiri Olsa type = perf.TYPE_TRACEPOINT, 139881d7dfSJiri Olsa config = config, 149881d7dfSJiri Olsa freq = 0, sample_period = 1, wakeup_events = 1, 159881d7dfSJiri Olsa sample_type = perf.SAMPLE_PERIOD | perf.SAMPLE_TID | perf.SAMPLE_CPU | perf.SAMPLE_RAW | perf.SAMPLE_TIME) 169881d7dfSJiri Olsa 179881d7dfSJiri Olsadef main(): 189881d7dfSJiri Olsa tp = tracepoint("sched", "sched_switch") 199881d7dfSJiri Olsa cpus = perf.cpu_map() 209881d7dfSJiri Olsa threads = perf.thread_map(-1) 219881d7dfSJiri Olsa 229881d7dfSJiri Olsa evlist = perf.evlist(cpus, threads) 239881d7dfSJiri Olsa evlist.add(tp) 249881d7dfSJiri Olsa evlist.open() 259881d7dfSJiri Olsa evlist.mmap() 269881d7dfSJiri Olsa 279881d7dfSJiri Olsa while True: 289881d7dfSJiri Olsa evlist.poll(timeout = -1) 299881d7dfSJiri Olsa for cpu in cpus: 309881d7dfSJiri Olsa event = evlist.read_on_cpu(cpu) 319881d7dfSJiri Olsa if not event: 329881d7dfSJiri Olsa continue 339881d7dfSJiri Olsa 349881d7dfSJiri Olsa if not isinstance(event, perf.sample_event): 359881d7dfSJiri Olsa continue 369881d7dfSJiri Olsa 37*7e2022afSTanu M 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" % ( 389881d7dfSJiri Olsa event.sample_time, 399881d7dfSJiri Olsa event.prev_comm, 409881d7dfSJiri Olsa event.prev_pid, 419881d7dfSJiri Olsa event.prev_prio, 429881d7dfSJiri Olsa event.prev_state, 439881d7dfSJiri Olsa event.next_comm, 449881d7dfSJiri Olsa event.next_pid, 45*7e2022afSTanu M event.next_prio)) 469881d7dfSJiri Olsa 479881d7dfSJiri Olsaif __name__ == '__main__': 489881d7dfSJiri Olsa main() 49