Back to home page

OSCL-LXR

 
 

    


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)