1*59df607bSGautam Menghani#!/usr/bin/env python3 2*59df607bSGautam Menghani# SPDX-License-Identifier: GPL-2.0 3*59df607bSGautam Menghani# -*- python -*- 4*59df607bSGautam Menghani# -*- coding: utf-8 -*- 5*59df607bSGautam Menghani 6*59df607bSGautam Menghaniimport argparse 7*59df607bSGautam Menghaniimport perf 8*59df607bSGautam Menghani 9*59df607bSGautam Menghanidef main(event: str): 10*59df607bSGautam Menghani evlist = perf.parse_events(event) 11*59df607bSGautam Menghani 12*59df607bSGautam Menghani for evsel in evlist: 13*59df607bSGautam Menghani evsel.read_format = perf.FORMAT_TOTAL_TIME_ENABLED | perf.FORMAT_TOTAL_TIME_RUNNING 14*59df607bSGautam Menghani 15*59df607bSGautam Menghani evlist.open() 16*59df607bSGautam Menghani evlist.enable() 17*59df607bSGautam Menghani 18*59df607bSGautam Menghani count = 100000 19*59df607bSGautam Menghani while count > 0: 20*59df607bSGautam Menghani count -= 1 21*59df607bSGautam Menghani 22*59df607bSGautam Menghani evlist.disable() 23*59df607bSGautam Menghani 24*59df607bSGautam Menghani for evsel in evlist: 25*59df607bSGautam Menghani for cpu in evsel.cpus(): 26*59df607bSGautam Menghani for thread in evsel.threads(): 27*59df607bSGautam Menghani counts = evsel.read(cpu, thread) 28*59df607bSGautam Menghani print(f"For {evsel} val: {counts.val} enable: {counts.ena} run: {counts.run}") 29*59df607bSGautam Menghani 30*59df607bSGautam Menghani evlist.close() 31*59df607bSGautam Menghani 32*59df607bSGautam Menghaniif __name__ == '__main__': 33*59df607bSGautam Menghani ap = argparse.ArgumentParser() 34*59df607bSGautam Menghani ap.add_argument('-e', '--event', help="Events to open", default="cpu-clock,task-clock") 35*59df607bSGautam Menghani args = ap.parse_args() 36*59df607bSGautam Menghani main(args.event) 37