xref: /openbmc/linux/tools/perf/Documentation/perf.data-directory-format.txt (revision c95baf12f5077419db01313ab61c2aac007d40cd)
146e201efSAdrian Hunterperf.data directory format
246e201efSAdrian Hunter
346e201efSAdrian HunterDISCLAIMER This is not ABI yet and is subject to possible change
446e201efSAdrian Hunter           in following versions of perf. We will remove this
546e201efSAdrian Hunter           disclaimer once the directory format soaks in.
646e201efSAdrian Hunter
746e201efSAdrian Hunter
846e201efSAdrian HunterThis document describes the on-disk perf.data directory format.
946e201efSAdrian Hunter
1046e201efSAdrian HunterThe layout is described by HEADER_DIR_FORMAT feature.
1146e201efSAdrian HunterCurrently it holds only version number (0):
1246e201efSAdrian Hunter
1346e201efSAdrian Hunter  HEADER_DIR_FORMAT = 24
1446e201efSAdrian Hunter
1546e201efSAdrian Hunter  struct {
1646e201efSAdrian Hunter     uint64_t version;
1746e201efSAdrian Hunter  }
1846e201efSAdrian Hunter
1946e201efSAdrian HunterThe current only version value 0 means that:
2046e201efSAdrian Hunter  - there is a single perf.data file named 'data' within the directory.
2146e201efSAdrian Hunter  e.g.
2246e201efSAdrian Hunter
2346e201efSAdrian Hunter    $ tree -ps perf.data
2446e201efSAdrian Hunter    perf.data
2546e201efSAdrian Hunter    └── [-rw-------       25912]  data
2646e201efSAdrian Hunter
2746e201efSAdrian HunterFuture versions are expected to describe different data files
2846e201efSAdrian Hunterlayout according to special needs.
29*eeb399b5SAdrian Hunter
30*eeb399b5SAdrian HunterCurrently the only 'perf record' option to output to a directory is
31*eeb399b5SAdrian Hunterthe --kcore option which puts a copy of /proc/kcore into the directory.
32*eeb399b5SAdrian Huntere.g.
33*eeb399b5SAdrian Hunter
34*eeb399b5SAdrian Hunter  $ sudo perf record --kcore uname
35*eeb399b5SAdrian Hunter  Linux
36*eeb399b5SAdrian Hunter  [ perf record: Woken up 1 times to write data ]
37*eeb399b5SAdrian Hunter  [ perf record: Captured and wrote 0.015 MB perf.data (9 samples) ]
38*eeb399b5SAdrian Hunter  $ sudo tree -ps perf.data
39*eeb399b5SAdrian Hunter  perf.data
40*eeb399b5SAdrian Hunter  ├── [-rw-------       23744]  data
41*eeb399b5SAdrian Hunter  └── [drwx------        4096]  kcore_dir
42*eeb399b5SAdrian Hunter      ├── [-r--------     6731125]  kallsyms
43*eeb399b5SAdrian Hunter      ├── [-r--------    40230912]  kcore
44*eeb399b5SAdrian Hunter      └── [-r--------        5419]  modules
45*eeb399b5SAdrian Hunter
46*eeb399b5SAdrian Hunter  1 directory, 4 files
47*eeb399b5SAdrian Hunter  $ sudo perf script -v
48*eeb399b5SAdrian Hunter  build id event received for vmlinux: 1eaa285996affce2d74d8e66dcea09a80c9941de
49*eeb399b5SAdrian Hunter  build id event received for [vdso]: 8bbaf5dc62a9b644b4d4e4539737e104e4a84541
50*eeb399b5SAdrian Hunter  build id event received for /lib/x86_64-linux-gnu/libc-2.28.so: 5b157f49586a3ca84d55837f97ff466767dd3445
51*eeb399b5SAdrian Hunter  Samples for 'cycles' event do not have CPU attribute set. Skipping 'cpu' field.
52*eeb399b5SAdrian Hunter  Using CPUID GenuineIntel-6-8E-A
53*eeb399b5SAdrian Hunter  Using perf.data/kcore_dir/kcore for kernel data
54*eeb399b5SAdrian Hunter  Using perf.data/kcore_dir/kallsyms for symbols
55*eeb399b5SAdrian Hunter              perf 15316 2060795.480902:          1 cycles:  ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
56*eeb399b5SAdrian Hunter              perf 15316 2060795.480906:          1 cycles:  ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
57*eeb399b5SAdrian Hunter              perf 15316 2060795.480908:          7 cycles:  ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
58*eeb399b5SAdrian Hunter              perf 15316 2060795.480910:        119 cycles:  ffffffffa2caa54a native_write_msr+0xa (vmlinux)
59*eeb399b5SAdrian Hunter              perf 15316 2060795.480912:       2109 cycles:  ffffffffa2c9b7b0 native_apic_msr_write+0x0 (vmlinux)
60*eeb399b5SAdrian Hunter              perf 15316 2060795.480914:      37606 cycles:  ffffffffa2f121fe perf_event_addr_filters_exec+0x2e (vmlinux)
61*eeb399b5SAdrian Hunter             uname 15316 2060795.480924:     588287 cycles:  ffffffffa303a56d page_counter_try_charge+0x6d (vmlinux)
62*eeb399b5SAdrian Hunter             uname 15316 2060795.481067:    2261945 cycles:  ffffffffa301438f kmem_cache_free+0x4f (vmlinux)
63*eeb399b5SAdrian Hunter             uname 15316 2060795.481643:    2172167 cycles:      7f1a48c393c0 _IO_un_link+0x0 (/lib/x86_64-linux-gnu/libc-2.28.so)
64