162306a36Sopenharmony_ciperf.data directory format 262306a36Sopenharmony_ci 362306a36Sopenharmony_ciDISCLAIMER This is not ABI yet and is subject to possible change 462306a36Sopenharmony_ci in following versions of perf. We will remove this 562306a36Sopenharmony_ci disclaimer once the directory format soaks in. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciThis document describes the on-disk perf.data directory format. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciThe layout is described by HEADER_DIR_FORMAT feature. 1162306a36Sopenharmony_ciCurrently it holds only version number (0): 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci HEADER_DIR_FORMAT = 24 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci struct { 1662306a36Sopenharmony_ci uint64_t version; 1762306a36Sopenharmony_ci } 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ciThe current only version value 0 means that: 2062306a36Sopenharmony_ci - there is a single perf.data file named 'data' within the directory. 2162306a36Sopenharmony_ci e.g. 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci $ tree -ps perf.data 2462306a36Sopenharmony_ci perf.data 2562306a36Sopenharmony_ci └── [-rw------- 25912] data 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ciFuture versions are expected to describe different data files 2862306a36Sopenharmony_cilayout according to special needs. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciCurrently the only 'perf record' option to output to a directory is 3162306a36Sopenharmony_cithe --kcore option which puts a copy of /proc/kcore into the directory. 3262306a36Sopenharmony_cie.g. 3362306a36Sopenharmony_ci 3462306a36Sopenharmony_ci $ sudo perf record --kcore uname 3562306a36Sopenharmony_ci Linux 3662306a36Sopenharmony_ci [ perf record: Woken up 1 times to write data ] 3762306a36Sopenharmony_ci [ perf record: Captured and wrote 0.015 MB perf.data (9 samples) ] 3862306a36Sopenharmony_ci $ sudo tree -ps perf.data 3962306a36Sopenharmony_ci perf.data 4062306a36Sopenharmony_ci ├── [-rw------- 23744] data 4162306a36Sopenharmony_ci └── [drwx------ 4096] kcore_dir 4262306a36Sopenharmony_ci ├── [-r-------- 6731125] kallsyms 4362306a36Sopenharmony_ci ├── [-r-------- 40230912] kcore 4462306a36Sopenharmony_ci └── [-r-------- 5419] modules 4562306a36Sopenharmony_ci 4662306a36Sopenharmony_ci 1 directory, 4 files 4762306a36Sopenharmony_ci $ sudo perf script -v 4862306a36Sopenharmony_ci build id event received for vmlinux: 1eaa285996affce2d74d8e66dcea09a80c9941de 4962306a36Sopenharmony_ci build id event received for [vdso]: 8bbaf5dc62a9b644b4d4e4539737e104e4a84541 5062306a36Sopenharmony_ci build id event received for /lib/x86_64-linux-gnu/libc-2.28.so: 5b157f49586a3ca84d55837f97ff466767dd3445 5162306a36Sopenharmony_ci Samples for 'cycles' event do not have CPU attribute set. Skipping 'cpu' field. 5262306a36Sopenharmony_ci Using CPUID GenuineIntel-6-8E-A 5362306a36Sopenharmony_ci Using perf.data/kcore_dir/kcore for kernel data 5462306a36Sopenharmony_ci Using perf.data/kcore_dir/kallsyms for symbols 5562306a36Sopenharmony_ci perf 15316 2060795.480902: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux) 5662306a36Sopenharmony_ci perf 15316 2060795.480906: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux) 5762306a36Sopenharmony_ci perf 15316 2060795.480908: 7 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux) 5862306a36Sopenharmony_ci perf 15316 2060795.480910: 119 cycles: ffffffffa2caa54a native_write_msr+0xa (vmlinux) 5962306a36Sopenharmony_ci perf 15316 2060795.480912: 2109 cycles: ffffffffa2c9b7b0 native_apic_msr_write+0x0 (vmlinux) 6062306a36Sopenharmony_ci perf 15316 2060795.480914: 37606 cycles: ffffffffa2f121fe perf_event_addr_filters_exec+0x2e (vmlinux) 6162306a36Sopenharmony_ci uname 15316 2060795.480924: 588287 cycles: ffffffffa303a56d page_counter_try_charge+0x6d (vmlinux) 6262306a36Sopenharmony_ci uname 15316 2060795.481067: 2261945 cycles: ffffffffa301438f kmem_cache_free+0x4f (vmlinux) 6362306a36Sopenharmony_ci uname 15316 2060795.481643: 2172167 cycles: 7f1a48c393c0 _IO_un_link+0x0 (/lib/x86_64-linux-gnu/libc-2.28.so) 64