xref: /aosp_15_r20/external/bcc/tools/filelife_example.txt (revision 387f9dfdfa2baef462e92476d413c7bc2470293e)
1*387f9dfdSAndroid Build Coastguard WorkerDemonstrations of filelife, the Linux eBPF/bcc version.
2*387f9dfdSAndroid Build Coastguard Worker
3*387f9dfdSAndroid Build Coastguard Worker
4*387f9dfdSAndroid Build Coastguard Workerfilelife traces short-lived files: those that have been created and then
5*387f9dfdSAndroid Build Coastguard Workerdeleted while tracing. For example:
6*387f9dfdSAndroid Build Coastguard Worker
7*387f9dfdSAndroid Build Coastguard Worker# ./filelife
8*387f9dfdSAndroid Build Coastguard WorkerTIME     PID    COMM             AGE(s)  FILE
9*387f9dfdSAndroid Build Coastguard Worker05:57:59 8556   gcc              0.04    ccCB5EDe.s
10*387f9dfdSAndroid Build Coastguard Worker05:57:59 8560   rm               0.02    .entry_64.o.d
11*387f9dfdSAndroid Build Coastguard Worker05:57:59 8563   gcc              0.02    cc5UFHXf.s
12*387f9dfdSAndroid Build Coastguard Worker05:57:59 8567   rm               0.01    .thunk_64.o.d
13*387f9dfdSAndroid Build Coastguard Worker05:57:59 8578   rm               0.02    .syscall_64.o.d
14*387f9dfdSAndroid Build Coastguard Worker05:58:00 8589   rm               0.03    .common.o.d
15*387f9dfdSAndroid Build Coastguard Worker05:58:00 8596   rm               0.01    .8592.tmp
16*387f9dfdSAndroid Build Coastguard Worker05:58:00 8601   rm               0.01    .8597.tmp
17*387f9dfdSAndroid Build Coastguard Worker05:58:00 8606   rm               0.01    .8602.tmp
18*387f9dfdSAndroid Build Coastguard Worker05:58:00 8639   rm               0.02    .vma.o.d
19*387f9dfdSAndroid Build Coastguard Worker05:58:00 8650   rm               0.02    .vdso32-setup.o.d
20*387f9dfdSAndroid Build Coastguard Worker05:58:00 8656   rm               0.00    .vdso.lds.d
21*387f9dfdSAndroid Build Coastguard Worker05:58:00 8659   gcc              0.01    ccveeJAz.s
22*387f9dfdSAndroid Build Coastguard Worker05:58:00 8663   rm               0.01    .vdso-note.o.d
23*387f9dfdSAndroid Build Coastguard Worker05:58:00 8674   rm               0.02    .vclock_gettime.o.d
24*387f9dfdSAndroid Build Coastguard Worker05:58:01 8684   rm               0.01    .vgetcpu.o.d
25*387f9dfdSAndroid Build Coastguard Worker05:58:01 8690   collect2         0.00    ccvKMxdm.ld
26*387f9dfdSAndroid Build Coastguard Worker
27*387f9dfdSAndroid Build Coastguard WorkerThis has caught short-lived files that were created during a Linux kernel
28*387f9dfdSAndroid Build Coastguard Workerbuild. The PID shows the process ID that finally deleted the file, and COMM
29*387f9dfdSAndroid Build Coastguard Workeris its process name. The AGE(s) column shows the age of the file, in seconds,
30*387f9dfdSAndroid Build Coastguard Workerwhen it was deleted. These are all short-lived, and existed for less than
31*387f9dfdSAndroid Build Coastguard Workerone tenth of a second.
32*387f9dfdSAndroid Build Coastguard Worker
33*387f9dfdSAndroid Build Coastguard WorkerCreating, populating, and then deleting files as part of another process can
34*387f9dfdSAndroid Build Coastguard Workerbe an inefficient method of inter-process communication. It can cause disk I/O
35*387f9dfdSAndroid Build Coastguard Workeras files are closed and their file descriptors flushed, only later to be
36*387f9dfdSAndroid Build Coastguard Workerdeleted. As such, short-lived files can be a target of performance
37*387f9dfdSAndroid Build Coastguard Workeroptimizations.
38*387f9dfdSAndroid Build Coastguard Worker
39*387f9dfdSAndroid Build Coastguard WorkerUSAGE message:
40*387f9dfdSAndroid Build Coastguard Worker
41*387f9dfdSAndroid Build Coastguard Worker# ./filelife -h
42*387f9dfdSAndroid Build Coastguard Workerusage: filelife [-h] [-p PID]
43*387f9dfdSAndroid Build Coastguard Worker
44*387f9dfdSAndroid Build Coastguard WorkerTrace stat() syscalls
45*387f9dfdSAndroid Build Coastguard Worker
46*387f9dfdSAndroid Build Coastguard Workeroptional arguments:
47*387f9dfdSAndroid Build Coastguard Worker  -h, --help         show this help message and exit
48*387f9dfdSAndroid Build Coastguard Worker  -p PID, --pid PID  trace this PID only
49*387f9dfdSAndroid Build Coastguard Worker
50*387f9dfdSAndroid Build Coastguard Workerexamples:
51*387f9dfdSAndroid Build Coastguard Worker    ./filelife           # trace all stat() syscalls
52*387f9dfdSAndroid Build Coastguard Worker    ./filelife -p 181    # only trace PID 181
53