xref: /aosp_15_r20/external/bcc/libbpf-tools/drsnoop_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of drsnoop, the Linux BPF CO-RE version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard Workerdrsnoop traces the direct reclaim system-wide, and prints various details.
5*387f9dfdSAndroid Build Coastguard WorkerExample output:
6*387f9dfdSAndroid Build Coastguard Worker
7*387f9dfdSAndroid Build Coastguard Worker# drsnoop
8*387f9dfdSAndroid Build Coastguard Worker
9*387f9dfdSAndroid Build Coastguard WorkerTracing direct reclaim events... Hit Ctrl-C to end.
10*387f9dfdSAndroid Build Coastguard WorkerTIME     COMM             TID     LAT(ms) PAGES
11*387f9dfdSAndroid Build Coastguard Worker14:56:43 in:imklog        268     106.637    39
12*387f9dfdSAndroid Build Coastguard Worker14:56:43 systemd-udevd    232     110.708    53
13*387f9dfdSAndroid Build Coastguard Worker14:56:43 systemd-journal  19531   106.083    62
14*387f9dfdSAndroid Build Coastguard Worker^C
15*387f9dfdSAndroid Build Coastguard Worker
16*387f9dfdSAndroid Build Coastguard WorkerWhile tracing, the processes alloc pages due to insufficient memory available
17*387f9dfdSAndroid Build Coastguard Workerin the system, direct reclaim events happened, which will increase the waiting
18*387f9dfdSAndroid Build Coastguard Workerdelay of the processes.
19*387f9dfdSAndroid Build Coastguard Worker
20*387f9dfdSAndroid Build Coastguard Workerdrsnoop can be useful for discovering when allocstall(/proc/vmstat) continues
21*387f9dfdSAndroid Build Coastguard Workerto increase, whether it is caused by some critical processes or not.
22*387f9dfdSAndroid Build Coastguard Worker
23*387f9dfdSAndroid Build Coastguard WorkerThe -p option can be used to filter on a PID, which is filtered in-kernel.
24*387f9dfdSAndroid Build Coastguard Worker
25*387f9dfdSAndroid Build Coastguard Worker# drsnoop -p 17491
26*387f9dfdSAndroid Build Coastguard Worker
27*387f9dfdSAndroid Build Coastguard WorkerTracing direct reclaim events... Hit Ctrl-C to end.
28*387f9dfdSAndroid Build Coastguard WorkerTIME     COMM             TID     LAT(ms) PAGES
29*387f9dfdSAndroid Build Coastguard Worker14:59:56 summond          17491      0.24    50
30*387f9dfdSAndroid Build Coastguard Worker14:59:56 summond          17491      0.26    38
31*387f9dfdSAndroid Build Coastguard Worker14:59:56 summond          17491      0.36    72
32*387f9dfdSAndroid Build Coastguard Worker^C
33*387f9dfdSAndroid Build Coastguard Worker
34*387f9dfdSAndroid Build Coastguard WorkerThis shows the summond process allocs pages, and direct reclaim events happening,
35*387f9dfdSAndroid Build Coastguard Workerand the delays are not affected much.
36*387f9dfdSAndroid Build Coastguard Worker
37*387f9dfdSAndroid Build Coastguard WorkerA maximum tracing duration can be set with the -d option. For example, to trace
38*387f9dfdSAndroid Build Coastguard Workerfor 2 seconds:
39*387f9dfdSAndroid Build Coastguard Worker
40*387f9dfdSAndroid Build Coastguard Worker# drsnoop -d 2
41*387f9dfdSAndroid Build Coastguard Worker
42*387f9dfdSAndroid Build Coastguard WorkerTracing direct reclaim events for 2 secs.
43*387f9dfdSAndroid Build Coastguard WorkerTIME     COMM             TID     LAT(ms) PAGES
44*387f9dfdSAndroid Build Coastguard Worker15:02:16 head             21715      0.15   195
45*387f9dfdSAndroid Build Coastguard Worker
46*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
47*387f9dfdSAndroid Build Coastguard Worker
48*387f9dfdSAndroid Build Coastguard Worker# drsnoop --help
49*387f9dfdSAndroid Build Coastguard Worker
50*387f9dfdSAndroid Build Coastguard WorkerUsage: drsnoop [OPTION...]
51*387f9dfdSAndroid Build Coastguard WorkerTrace direct reclaim latency.
52*387f9dfdSAndroid Build Coastguard Worker
53*387f9dfdSAndroid Build Coastguard WorkerUSAGE: drsnoop [--help] [-p PID] [-t TID] [-d DURATION] [-e]
54*387f9dfdSAndroid Build Coastguard Worker
55*387f9dfdSAndroid Build Coastguard WorkerEXAMPLES:
56*387f9dfdSAndroid Build Coastguard Worker    drsnoop         # trace all direct reclaim events
57*387f9dfdSAndroid Build Coastguard Worker    drsnoop -p 123  # trace pid 123
58*387f9dfdSAndroid Build Coastguard Worker    drsnoop -t 123  # trace tid 123 (use for threads only)
59*387f9dfdSAndroid Build Coastguard Worker    drsnoop -d 10   # trace for 10 seconds only
60*387f9dfdSAndroid Build Coastguard Worker    drsnoop -e      # trace all direct reclaim events with extended faileds
61*387f9dfdSAndroid Build Coastguard Worker
62*387f9dfdSAndroid Build Coastguard Worker  -d, --duration=DURATION    Total duration of trace in seconds
63*387f9dfdSAndroid Build Coastguard Worker  -e, --extended             Extended fields output
64*387f9dfdSAndroid Build Coastguard Worker  -p, --pid=PID              Process PID to trace
65*387f9dfdSAndroid Build Coastguard Worker  -t, --tid=TID              Thread TID to trace
66*387f9dfdSAndroid Build Coastguard Worker  -v, --verbose              Verbose debug output
67*387f9dfdSAndroid Build Coastguard Worker  -?, --help                 Give this help list
68*387f9dfdSAndroid Build Coastguard Worker      --usage                Give a short usage message
69*387f9dfdSAndroid Build Coastguard Worker  -V, --version              Print program version
70*387f9dfdSAndroid Build Coastguard Worker
71*387f9dfdSAndroid Build Coastguard WorkerReport bugs to <[email protected]>.
72