0001 perf.data directory format
0002
0003 DISCLAIMER This is not ABI yet and is subject to possible change
0004 in following versions of perf. We will remove this
0005 disclaimer once the directory format soaks in.
0006
0007
0008 This document describes the on-disk perf.data directory format.
0009
0010 The layout is described by HEADER_DIR_FORMAT feature.
0011 Currently it holds only version number (0):
0012
0013 HEADER_DIR_FORMAT = 24
0014
0015 struct {
0016 uint64_t version;
0017 }
0018
0019 The current only version value 0 means that:
0020 - there is a single perf.data file named 'data' within the directory.
0021 e.g.
0022
0023 $ tree -ps perf.data
0024 perf.data
0025 └── [-rw------- 25912] data
0026
0027 Future versions are expected to describe different data files
0028 layout according to special needs.
0029
0030 Currently the only 'perf record' option to output to a directory is
0031 the --kcore option which puts a copy of /proc/kcore into the directory.
0032 e.g.
0033
0034 $ sudo perf record --kcore uname
0035 Linux
0036 [ perf record: Woken up 1 times to write data ]
0037 [ perf record: Captured and wrote 0.015 MB perf.data (9 samples) ]
0038 $ sudo tree -ps perf.data
0039 perf.data
0040 ├── [-rw------- 23744] data
0041 └── [drwx------ 4096] kcore_dir
0042 ├── [-r-------- 6731125] kallsyms
0043 ├── [-r-------- 40230912] kcore
0044 └── [-r-------- 5419] modules
0045
0046 1 directory, 4 files
0047 $ sudo perf script -v
0048 build id event received for vmlinux: 1eaa285996affce2d74d8e66dcea09a80c9941de
0049 build id event received for [vdso]: 8bbaf5dc62a9b644b4d4e4539737e104e4a84541
0050 build id event received for /lib/x86_64-linux-gnu/libc-2.28.so: 5b157f49586a3ca84d55837f97ff466767dd3445
0051 Samples for 'cycles' event do not have CPU attribute set. Skipping 'cpu' field.
0052 Using CPUID GenuineIntel-6-8E-A
0053 Using perf.data/kcore_dir/kcore for kernel data
0054 Using perf.data/kcore_dir/kallsyms for symbols
0055 perf 15316 2060795.480902: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
0056 perf 15316 2060795.480906: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
0057 perf 15316 2060795.480908: 7 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
0058 perf 15316 2060795.480910: 119 cycles: ffffffffa2caa54a native_write_msr+0xa (vmlinux)
0059 perf 15316 2060795.480912: 2109 cycles: ffffffffa2c9b7b0 native_apic_msr_write+0x0 (vmlinux)
0060 perf 15316 2060795.480914: 37606 cycles: ffffffffa2f121fe perf_event_addr_filters_exec+0x2e (vmlinux)
0061 uname 15316 2060795.480924: 588287 cycles: ffffffffa303a56d page_counter_try_charge+0x6d (vmlinux)
0062 uname 15316 2060795.481067: 2261945 cycles: ffffffffa301438f kmem_cache_free+0x4f (vmlinux)
0063 uname 15316 2060795.481643: 2172167 cycles: 7f1a48c393c0 _IO_un_link+0x0 (/lib/x86_64-linux-gnu/libc-2.28.so)