xref: /linux/tools/perf/python/counting.py (revision 0939bd2fcf337243133b0271335a2838857c319f)
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