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