xref: /aosp_15_r20/external/bcc/tools/old/syncsnoop.py (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard Worker#!/usr/bin/python
2*387f9dfdSAndroid Build Coastguard Worker# @lint-avoid-python-3-compatibility-imports
3*387f9dfdSAndroid Build Coastguard Worker#
4*387f9dfdSAndroid Build Coastguard Worker# syncsnoop Trace sync() syscall.
5*387f9dfdSAndroid Build Coastguard Worker#           For Linux, uses BCC, eBPF. Embedded C.
6*387f9dfdSAndroid Build Coastguard Worker#
7*387f9dfdSAndroid Build Coastguard Worker# Written as a basic example of BCC trace & reformat. See
8*387f9dfdSAndroid Build Coastguard Worker# examples/hello_world.py for a BCC trace with default output example.
9*387f9dfdSAndroid Build Coastguard Worker#
10*387f9dfdSAndroid Build Coastguard Worker# Copyright (c) 2015 Brendan Gregg.
11*387f9dfdSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License")
12*387f9dfdSAndroid Build Coastguard Worker#
13*387f9dfdSAndroid Build Coastguard Worker# 13-Aug-2015   Brendan Gregg   Created this.
14*387f9dfdSAndroid Build Coastguard Worker
15*387f9dfdSAndroid Build Coastguard Workerfrom __future__ import print_function
16*387f9dfdSAndroid Build Coastguard Workerfrom bcc import BPF
17*387f9dfdSAndroid Build Coastguard Worker
18*387f9dfdSAndroid Build Coastguard Worker# load BPF program
19*387f9dfdSAndroid Build Coastguard Workerb = BPF(text="""
20*387f9dfdSAndroid Build Coastguard Workervoid kprobe__sys_sync(void *ctx) {
21*387f9dfdSAndroid Build Coastguard Worker    bpf_trace_printk("sync()\\n");
22*387f9dfdSAndroid Build Coastguard Worker};
23*387f9dfdSAndroid Build Coastguard Worker""")
24*387f9dfdSAndroid Build Coastguard Worker
25*387f9dfdSAndroid Build Coastguard Worker# header
26*387f9dfdSAndroid Build Coastguard Workerprint("%-18s %s" % ("TIME(s)", "CALL"))
27*387f9dfdSAndroid Build Coastguard Worker
28*387f9dfdSAndroid Build Coastguard Worker# format output
29*387f9dfdSAndroid Build Coastguard Workerwhile 1:
30*387f9dfdSAndroid Build Coastguard Worker    (task, pid, cpu, flags, ts, msg) = b.trace_fields()
31*387f9dfdSAndroid Build Coastguard Worker    print("%-18.9f %s" % (ts, msg))
32