[PATCH 0/5] perf record: Put a copy of kcore into the perf.data directory

From: Adrian Hunter
Date: Fri Oct 04 2019 - 04:32:45 EST


Hi

Here are patches to add a new 'perf record' option '--kcore' which will put
a copy of /proc/kcore, kallsyms and modules into a perf.data directory.
Note, that without the --kcore option, output goes to a file as previously.
The tools' -o and -i options work with either a file name or directory
name.

Example:

$ sudo perf record --kcore uname

$ sudo tree perf.data
perf.data
âââ kcore_dir
â âââ kallsyms
â âââ kcore
â âââ modules
âââ data

$ sudo perf script -v
build id event received for vmlinux: 1eaa285996affce2d74d8e66dcea09a80c9941de
build id event received for [vdso]: 8bbaf5dc62a9b644b4d4e4539737e104e4a84541
Samples for 'cycles' event do not have CPU attribute set. Skipping 'cpu' field.
Using CPUID GenuineIntel-6-8E-A
Using perf.data/kcore_dir/kcore for kernel data
Using perf.data/kcore_dir/kallsyms for symbols
perf 19058 506778.423729: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
perf 19058 506778.423733: 1 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
perf 19058 506778.423734: 7 cycles: ffffffffa2caa548 native_write_msr+0x8 (vmlinux)
perf 19058 506778.423736: 117 cycles: ffffffffa2caa54a native_write_msr+0xa (vmlinux)
perf 19058 506778.423738: 2092 cycles: ffffffffa2c9b7b0 native_apic_msr_write+0x0 (vmlinux)
perf 19058 506778.423740: 37380 cycles: ffffffffa2f121d0 perf_event_addr_filters_exec+0x0 (vmlinux)
uname 19058 506778.423751: 582673 cycles: ffffffffa303a407 propagate_protected_usage+0x147 (vmlinux)
uname 19058 506778.423892: 2241841 cycles: ffffffffa2cae0c9 unwind_next_frame.part.5+0x79 (vmlinux)
uname 19058 506778.424430: 2457397 cycles: ffffffffa3019232 check_memory_region+0x52 (vmlinux)


Adrian Hunter (5):
perf data: Correctly identify directory data files
perf data: Move perf_dir_version into data.h
perf data: Rename directory "header" file to "data"
perf tools: Support single perf.data file directory
perf record: Put a copy of kcore into the perf.data directory

tools/perf/Documentation/perf-record.txt | 3 ++
.../Documentation/perf.data-directory-format.txt | 63 ++++++++++++++++++++++
tools/perf/builtin-record.c | 54 ++++++++++++++++++-
tools/perf/util/data.c | 46 ++++++++++++++--
tools/perf/util/data.h | 12 +++++
tools/perf/util/header.h | 4 --
tools/perf/util/record.h | 1 +
tools/perf/util/session.c | 4 ++
tools/perf/util/util.c | 19 ++++++-
9 files changed, 197 insertions(+), 9 deletions(-)
create mode 100644 tools/perf/Documentation/perf.data-directory-format.txt


Regards
Adrian