linux_dsm_epyc7002/tools/perf/util
Arnaldo Carvalho de Melo b397f8468f perf evlist: Use unshare(CLONE_FS) in sb threads to let setns(CLONE_NEWNS) work
When we started using a thread to catch the PERF_RECORD_BPF_EVENT meta
data events to then ask the kernel for further info (BTF, etc) for BPF
programs shortly after they get loaded, we forgot to use
unshare(CLONE_FS) as was done in:

  868a832918 ("perf top: Support lookup of symbols in other mount namespaces.")

Do it so that we can enter the namespaces to read the build-ids at the
end of a 'perf record' session for the DSOs that had hits.

Before:

Starting a 'stress-ng --cpus 8' inside a container and then, outside the
container running:

  # perf record -a --namespaces sleep 5
  # perf buildid-list | grep stress-ng
  #

We would end up with a 'perf.data' file that had no entry in its
build-id table for the /usr/bin/stress-ng binary inside the container
that got tons of PERF_RECORD_SAMPLEs.

After:

  # perf buildid-list | grep stress-ng
  f2ed02c68341183a124b9b0f6e2e6c493c465b29 /usr/bin/stress-ng
  #

Then its just a matter of making sure that that binary debuginfo package
gets available in a place that 'perf report' will look at build-id keyed
ELF files, which, in my case, on a f30 notebook, was a matter of
installing the debuginfo file for the distro used in the container,
fedora 31:

  # rpm -ivh http://fedora.c3sl.ufpr.br/linux/development/31/Everything/x86_64/debug/tree/Packages/s/stress-ng-debuginfo-0.07.29-10.fc31.x86_64.rpm

Then, because perf currently looks for those debuginfo files (richer ELF
symtab) inside that namespace (look at the setns calls):

  openat(AT_FDCWD, "/proc/self/ns/mnt", O_RDONLY) = 137
  openat(AT_FDCWD, "/proc/13169/ns/mnt", O_RDONLY) = 139
  setns(139, CLONE_NEWNS)                 = 0
  stat("/usr/bin/stress-ng", {st_mode=S_IFREG|0755, st_size=3065416, ...}) = 0
  openat(AT_FDCWD, "/usr/bin/stress-ng", O_RDONLY) = 140
  fcntl(140, F_GETFD)                     = 0
  fstat(140, {st_mode=S_IFREG|0755, st_size=3065416, ...}) = 0
  mmap(NULL, 3065416, PROT_READ, MAP_PRIVATE, 140, 0) = 0x7ff2fdc5b000
  munmap(0x7ff2fdc5b000, 3065416)         = 0
  close(140)                              = 0
  stat("stress-ng-0.07.29-10.fc31.x86_64.debug", 0x7fff45d71260) = -1 ENOENT (No such file or directory)
  stat("/usr/bin/stress-ng-0.07.29-10.fc31.x86_64.debug", 0x7fff45d71260) = -1 ENOENT (No such file or directory)
  stat("/usr/bin/.debug/stress-ng-0.07.29-10.fc31.x86_64.debug", 0x7fff45d71260) = -1 ENOENT (No such file or directory)
  stat("/usr/lib/debug/usr/bin/stress-ng-0.07.29-10.fc31.x86_64.debug", 0x7fff45d71260) = -1 ENOENT (No such file or directory)
  stat("/root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29", 0x7fff45d711e0) = -1 ENOENT (No such file or directory)

To only then go back to the "host" namespace to look just in the users's
~/.debug cache:

  setns(137, CLONE_NEWNS)                 = 0
  chdir("/root")                          = 0
  close(137)                              = 0
  close(139)                              = 0
  stat("/root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29/elf", 0x7fff45d732e0) = -1 ENOENT (No such file or directory)

It continues to fail to resolve symbols:

  # perf report | grep stress-ng | head -5
     9.50%  stress-ng-cpu    stress-ng    [.] 0x0000000000021ac1
     8.58%  stress-ng-cpu    stress-ng    [.] 0x0000000000021ab4
     8.51%  stress-ng-cpu    stress-ng    [.] 0x0000000000021489
     7.17%  stress-ng-cpu    stress-ng    [.] 0x00000000000219b6
     3.93%  stress-ng-cpu    stress-ng    [.] 0x0000000000021478
  #

To overcome that we use:

  # perf buildid-cache -v --add /usr/lib/debug/usr/bin/stress-ng-0.07.29-10.fc31.x86_64.debug
  Adding f2ed02c68341183a124b9b0f6e2e6c493c465b29 /usr/lib/debug/usr/bin/stress-ng-0.07.29-10.fc31.x86_64.debug: Ok
  #
  # ls -la /root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29/elf
  -rw-r--r--. 3 root root 2401184 Jul 27 07:03 /root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29/elf
  # file /root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29/elf
  /root/.debug/.build-id/f2/ed02c68341183a124b9b0f6e2e6c493c465b29/elf: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter \004, BuildID[sha1]=f2ed02c68341183a124b9b0f6e2e6c493c465b29, for GNU/Linux 3.2.0, with debug_info, not stripped, too many notes (256)
  #

Now it finally works:

  # perf report | grep stress-ng | head -5
    23.59%  stress-ng-cpu    stress-ng    [.] ackermann
    23.33%  stress-ng-cpu    stress-ng    [.] is_prime
    17.36%  stress-ng-cpu    stress-ng    [.] stress_cpu_sieve
     6.08%  stress-ng-cpu    stress-ng    [.] stress_cpu_correlate
     3.55%  stress-ng-cpu    stress-ng    [.] queens_try
  #

I'll make sure that it looks for the build-id keyed files in both the
"host" namespace (the namespace the user running 'perf record' was a the
time of the recording) and in the container namespace, as it shouldn't
matter where a content based key lookup finds the ELF file to use in
resolving symbols, etc.

Reported-by: Karl Rister <krister@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Krister Johansen <kjlx@templeofstupid.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Stanislav Fomichev <sdf@google.com>
Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
Fixes: 657ee55319 ("perf evlist: Introduce side band thread")
Link: https://lkml.kernel.org/n/tip-g79k0jz41adiaeuqud742t2l@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2019-08-29 08:36:12 -03:00
..
c++ perf clang: Delete needless util-cxx.h header 2019-08-28 18:14:57 -03:00
cs-etm-decoder tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
include perf tools: Remove old baggage that is util/include/linux/ctype.h 2019-06-25 18:31:12 -03:00
intel-pt-decoder tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
libunwind
scripting-engines libperf: Add perf_thread_map__nr/perf_thread_map__pid functions 2019-08-22 17:16:57 -03:00
annotate.c perf srcline: Add missing srcline.h header to files needing its defs 2019-08-26 11:58:29 -03:00
annotate.h libperf: Add nr_entries to struct perf_evlist 2019-07-29 18:34:45 -03:00
archinsn.h perf script: Support insn output for normal samples 2019-03-11 11:56:02 -03:00
arm-spe-pkt-decoder.c
arm-spe-pkt-decoder.h
arm-spe.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
arm-spe.h
auxtrace.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
auxtrace.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
block-range.c perf block-range: Add missing headers 2019-01-25 15:12:09 +01:00
block-range.h perf block-range: Add missing headers 2019-01-25 15:12:09 +01:00
bpf_map.c perf bpf: Add bpf_map dumper 2019-02-19 16:11:56 -03:00
bpf_map.h perf bpf: Add bpf_map dumper 2019-02-19 16:11:56 -03:00
bpf-event.c perf tool: Rename perf_tool::bpf_event to bpf 2019-08-26 19:39:11 -03:00
bpf-event.h perf tool: Rename perf_tool::bpf_event to bpf 2019-08-26 19:39:11 -03:00
bpf-loader.c perf clang: Delete needless util-cxx.h header 2019-08-28 18:14:57 -03:00
bpf-loader.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
bpf-prologue.c docs: Fix some broken references 2018-06-15 18:10:01 -03:00
bpf-prologue.h
branch.c
branch.h perf tools: Move branch structs to branch.h 2019-01-25 15:12:08 +01:00
Build perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
build-id.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
build-id.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
cache.h
cacheline.c perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
cacheline.h perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
call-path.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
call-path.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
callchain.c perf sort: Remove needless headers from sort.h, provide fwd struct decls 2019-08-26 11:58:29 -03:00
callchain.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
cap.c perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
cap.h perf tools: Add CAP_SYSLOG define for older systems 2019-08-14 10:59:59 -03:00
cgroup.c libperf: Include perf_evlist in evlist object 2019-07-29 18:34:44 -03:00
cgroup.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
cloexec.c perf tools: Remove needless asm/unistd.h include fixing build in some places 2019-05-02 16:00:20 -04:00
cloexec.h
color_config.c perf utils: Move perf_config using routines from color.c to separate object 2019-01-21 17:38:56 -03:00
color.c perf utils: Move perf_config using routines from color.c to separate object 2019-01-21 17:38:56 -03:00
color.h perf color: Add missing stdarg.g to color.h 2019-01-25 15:12:08 +01:00
comm.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
comm.h perf comm: Remove needless headers from comm.h 2019-01-25 15:12:09 +01:00
compress.h perf report: Implement perf.data record decompression 2019-05-15 16:36:49 -03:00
config.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
config.h perf config: Call perf_config__init() lazily 2018-05-16 16:11:09 -03:00
counts.c perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
counts.h perf counts: Add missing headers needed for types used 2019-08-22 17:16:56 -03:00
cpu-set-sched.h perf tools: Add fallback versions for CPU_{OR,EQUAL}() 2019-02-06 10:00:39 -03:00
cpumap.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
cpumap.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
cputopo.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
cputopo.h perf header: Add die information in CPU topology 2019-06-10 15:50:02 -03:00
cs-etm.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
cs-etm.h perf cs-etm: Remove duplicate GENMASK() define, use linux/bits.h instead 2019-06-10 16:20:11 -03:00
data-convert-bt.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
data-convert-bt.h
data-convert.h
data.c perf tools: Remove duplicate headers 2019-08-26 11:58:29 -03:00
data.h perf record: Allow to limit number of reported perf.data files 2019-03-19 11:56:20 -03:00
db-export.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
db-export.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
debug.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
debug.h
demangle-java.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
demangle-java.h
demangle-rust.c
demangle-rust.h
dso.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
dso.h perf symbols: Introduce DSO_BINARY_TYPE__BPF_PROG_INFO 2019-03-19 16:52:07 -03:00
dump-insn.c perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
dump-insn.h perf script: Fix LBR skid dump problems in brstackinsn 2018-12-28 16:33:02 -03:00
dwarf-aux.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
dwarf-aux.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
dwarf-regs.c
env.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
env.h perf cpu_map: Rename struct cpu_map to struct perf_cpu_map 2019-07-29 18:34:42 -03:00
event.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
event.h libperf: Move 'enum perf_user_event_type' to perf/event.h 2019-08-29 08:36:12 -03:00
evlist.c perf evlist: Use unshare(CLONE_FS) in sb threads to let setns(CLONE_NEWNS) work 2019-08-29 08:36:12 -03:00
evlist.h perf evlist: Remove needless util.h from evlist.h 2019-08-28 17:19:35 -03:00
evsel_fprintf.c libperf: Move nr_members from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:46 -03:00
evsel.c perf evlist: Remove needless util.h from evlist.h 2019-08-28 17:19:35 -03:00
evsel.h perf evsel: Rename perf_missing_features::bpf_event to ::bpf 2019-08-26 19:39:11 -03:00
evswitch.c perf evswitch: Add hint when not finding specified on/off events 2019-08-15 12:26:13 -03:00
evswitch.h perf evswitch: Introduce init() method to set the on/off evsels from the command line 2019-08-15 12:25:55 -03:00
expr.h
expr.y
find-map.c perf tools: Make find_vdso_map() more modular 2019-01-08 13:28:13 -03:00
genelf_debug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 479 2019-06-19 17:09:51 +02:00
genelf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 251 2019-06-05 17:30:26 +02:00
genelf.h perf jitdump: Add Sparc support. 2018-10-18 11:16:38 -03:00
generate-cmdlist.sh perf tools: Rename HAVE_SYSCALL_TABLE to HAVE_SYSCALL_TABLE_SUPPORT 2018-04-12 10:33:31 -03:00
get_current_dir_name.c perf tools: Remove duplicate headers 2019-08-26 11:58:29 -03:00
get_current_dir_name.h perf tools: Move get_current_dir_name() cond prototype out of util.h 2019-07-09 10:13:26 -03:00
group.h
header.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
header.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
help-unknown-cmd.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
help-unknown-cmd.h
hist.c perf top: Fix event group with more than two events 2019-08-28 18:15:03 -03:00
hist.h perf top: Fix event group with more than two events 2019-08-28 18:15:03 -03:00
intel-bts.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
intel-bts.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intel-pt.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
intel-pt.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 2019-06-05 17:36:37 +02:00
intlist.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 2019-06-05 17:37:04 +02:00
intlist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
jit.h
jitdump.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
jitdump.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 480 2019-06-19 17:09:51 +02:00
kvm-stat.h perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
levenshtein.c
levenshtein.h
llvm-utils.c perf tools: Use zfree() where applicable 2019-07-09 10:13:27 -03:00
llvm-utils.h perf llvm: Allow passing options to llc in addition to clang 2018-08-20 08:54:58 -03:00
lzma.c perf tools: Add lzma_is_compressed function 2018-08-20 08:54:59 -03:00
machine.c perf tool: Rename perf_tool::bpf_event to bpf 2019-08-26 19:39:11 -03:00
machine.h perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
map_groups.h perf unwind: Fix libunwind when tid != pid 2019-08-16 12:25:57 -03:00
map_symbol.h perf symbols: Introduce map_symbol.h 2019-02-06 10:00:38 -03:00
map.c perf unwind: Fix libunwind when tid != pid 2019-08-16 12:25:57 -03:00
map.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
mem2node.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
mem2node.h perf tools: Add mem2node object 2018-03-16 13:52:37 -03:00
mem-events.c perf mem/c2c: Fix perf_mem_events to support powerpc 2019-02-04 11:32:14 -03:00
mem-events.h
memswap.c
memswap.h
metricgroup.c perf metricgroup: Remove needless includes from metricgroup.h 2019-08-22 17:16:56 -03:00
metricgroup.h perf metricgroup: Remove needless includes from metricgroup.h 2019-08-22 17:16:56 -03:00
mmap.c perf tools: Use perf_cpu_map__nr instead of cpu_map__nr 2019-08-22 11:14:54 -03:00
mmap.h perf record: Implement compression for AIO trace streaming 2019-05-15 16:36:49 -03:00
namespaces.c libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix 2019-08-26 19:39:11 -03:00
namespaces.h libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix 2019-08-26 19:39:11 -03:00
ordered-events.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
ordered-events.h perf ordered_events: Add first_time() method 2018-12-17 15:02:17 -03:00
parse-branch-options.c perf record: Enable LBR callstack capture jointly with thread stack 2019-08-20 12:18:58 -03:00
parse-branch-options.h
parse-events.c perf tools: Add aux-output config term 2019-08-14 10:59:59 -03:00
parse-events.h perf tools: Add aux-output config term 2019-08-14 10:59:59 -03:00
parse-events.l perf tools: Add aux-output config term 2019-08-14 10:59:59 -03:00
parse-events.y perf parse-events: Remove unused variable: error 2019-07-09 10:13:27 -03:00
parse-regs-options.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
parse-regs-options.h perf parse-regs: Split parse_regs 2019-05-15 16:36:49 -03:00
path.c
path.h
perf_regs.c perf parse-regs: Add generic support for arch__intr/user_reg_mask() 2019-05-16 14:17:12 -03:00
perf_regs.h perf record: Allow mixing --user-regs with --call-graph=dwarf 2019-06-05 09:47:54 -03:00
perf-hooks-list.h
perf-hooks.c
perf-hooks.h
PERF-VERSION-GEN perf version: Append 12 git SHA chars to the version string 2019-05-28 18:37:44 -03:00
pmu.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
pmu.h perf cpu_map: Rename struct cpu_map to struct perf_cpu_map 2019-07-29 18:34:42 -03:00
pmu.l
pmu.y
print_binary.c tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
print_binary.h
probe-event.c perf/urgent fixes: 2019-07-23 23:41:33 +02:00
probe-event.h perf-probe: Add user memory access attribute support 2019-05-25 23:04:42 -04:00
probe-file.c The main changes in this release include: 2019-07-18 11:51:00 -07:00
probe-file.h perf-probe: Add user memory access attribute support 2019-05-25 23:04:42 -04:00
probe-finder.c The main changes in this release include: 2019-07-18 11:51:00 -07:00
probe-finder.h tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
pstack.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
pstack.h
python-ext-sources perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
python.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
rb_resort.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
rblist.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 2019-06-05 17:37:04 +02:00
rblist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
record.c perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
record.h perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
rlimit.c perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rlimit.h perf tools: Introduce rlimit__bump_memlock() helper 2019-07-09 14:59:11 -03:00
rwsem.c
rwsem.h
s390-cpumcf-kernel.h perf report: Display arch specific diagnostic counter sets, starting with s390 2019-01-21 17:00:48 -03:00
s390-cpumsf-kernel.h perf report: Add raw report support for s390 auxiliary trace 2018-08-08 15:26:48 -03:00
s390-cpumsf.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
s390-cpumsf.h perf auxtrace: Support for perf report -D for s390 2018-08-03 10:34:18 -03:00
s390-sample-raw.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
sample-raw.c perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
sample-raw.h perf evlist: Rename struct perf_evlist to struct evlist 2019-07-29 18:34:42 -03:00
session.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
session.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
setns.c perf namespaces: Move the conditional setns() prototype to namespaces.h 2019-07-09 10:13:26 -03:00
setup.py perf tools: Add helpers to use capabilities if present 2019-08-14 10:48:39 -03:00
smt.c perf tools: Apply new CPU topology sysfs attributes 2019-06-10 16:20:11 -03:00
smt.h
sort.c perf report: Use timestamp__scnprintf_nsec() for time sort key 2019-08-26 11:58:29 -03:00
sort.h perf sort: Remove needless headers from sort.h, provide fwd struct decls 2019-08-26 11:58:29 -03:00
srccode.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
srccode.h perf srccode: Move struct definition from map.h to srccode.h 2019-02-06 10:00:38 -03:00
srcline.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
srcline.h perf callchain: Use cached rbtrees 2019-01-25 15:12:09 +01:00
stat-display.c perf tools: Remove duplicate headers 2019-08-26 11:58:29 -03:00
stat-shadow.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
stat.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
stat.h perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
strbuf.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strbuf.h
strfilter.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strfilter.h
string2.h tools lib: Move argv_{split,free} from tools/perf/util/ 2019-07-01 22:50:40 -03:00
string.c tools lib: Move argv_{split,free} from tools/perf/util/ 2019-07-01 22:50:40 -03:00
strlist.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
strlist.h perf util: Use cached rbtree for rblists 2019-01-25 15:12:10 +01:00
svghelper.c perf cpumap: Remove needless includes from cpumap.h 2019-08-22 17:16:57 -03:00
svghelper.h
symbol_conf.h perf diff: Print the basic block cycles diff 2019-07-02 13:20:51 -03:00
symbol_fprintf.c perf symbols: Use cached rbtrees 2019-01-25 15:12:10 +01:00
symbol-elf.c perf tools: Use list_del_init() more thorougly 2019-07-09 10:13:27 -03:00
symbol-minimal.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
symbol.c perf symbols: Use CAP_SYSLOG with kptr_restrict checks 2019-08-28 17:19:19 -03:00
symbol.h perf annotate: Fix s390 gap between kernel end and module start 2019-08-08 15:41:25 -03:00
syscalltbl.c perf trace: Preallocate the syscall table 2019-07-29 18:34:42 -03:00
syscalltbl.h perf trace: Preallocate the syscall table 2019-07-29 18:34:42 -03:00
target.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
target.h
term.c
term.h
thread_map.c libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread_map.h libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix 2019-08-29 08:36:12 -03:00
thread-stack.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
thread-stack.h perf/core improvements and fixes: 2019-06-17 20:48:14 +02:00
thread.c libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix 2019-08-26 19:39:11 -03:00
thread.h libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix 2019-08-26 19:39:11 -03:00
time-utils.c perf time-utils: Use skip_spaces() 2019-06-25 21:39:18 -03:00
time-utils.h perf time-utils: Add utility function to print time stamps in nanoseconds 2019-03-11 11:56:02 -03:00
tool.h perf tool: Rename perf_tool::bpf_event to bpf 2019-08-26 19:39:11 -03:00
top.c libperf: Add cpus to struct perf_evlist 2019-07-29 18:34:45 -03:00
top.h perf record: Move record_opts and other record decls out of perf.h 2019-08-26 11:58:22 -03:00
trace-event-info.c libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel 2019-07-29 18:34:45 -03:00
trace-event-parse.c tools perf: Move from sane_ctype.h obtained from git to the Linux's original 2019-06-25 21:02:47 -03:00
trace-event-read.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 393 2019-06-05 17:37:11 +02:00
trace-event-scripting.c perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
trace-event.c tools tools, tools lib traceevent: Make traceevent APIs more consistent 2019-04-01 15:18:09 -03:00
trace-event.h perf evsel: Rename struct perf_evsel to struct evsel 2019-07-29 18:34:42 -03:00
trigger.h
tsc.c
tsc.h
units.c
units.h
unwind-libdw.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
unwind-libdw.h
unwind-libunwind-local.c perf unwind: Fix libunwind when tid != pid 2019-08-16 12:25:57 -03:00
unwind-libunwind.c perf unwind: Remove unnecessary test 2019-08-16 12:30:14 -03:00
unwind.h perf unwind: Fix libunwind when tid != pid 2019-08-16 12:25:57 -03:00
usage.c perf tools: Add missing headers, mostly stdlib.h 2019-07-09 10:13:22 -03:00
util.c perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
util.h perf cacheline: Move cacheline related routines to separate files 2019-08-26 11:58:29 -03:00
values.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
values.h
vdso.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
vdso.h
xyarray.c tools lib: Adopt zalloc()/zfree() from tools/perf 2019-07-09 10:13:26 -03:00
zlib.c perf tools: Remove duplicate headers 2019-01-21 15:15:57 -03:00
zstd.c perf session: Fix loading of compressed data split across adjacent records 2019-07-23 09:04:03 -03:00