kernel_optimize_test/tools/perf
Kim Phillips f1031c8d33 perf probe arm64: Fix symbol fixup issues due to ELF type
On an arm64 machine running a CONFIG_RANDOMIZE_BASE=y kernel, perf
kernel symbol resolution fails.  Debugging saw symsrc_init calling the
default elf__needs_adjust_symbols() where checks for an ET_DYN (3)
ehdr.e_type failed when they should have succeeded.

Fix by adopting powerpc version of the weak elf__needs_adjust_symbols()
function, as done in commit d233209833 ("perf probe ppc: Fix symbol
fixup issues due to ELF type").

Prior to this patch, perf test 1 would fail:

  $ sudo oldperf test -v 1 |& head
   1: vmlinux symtab matches kallsyms                       :
  test child forked, pid 33374
  Looking at the vmlinux_path (8 entries long)
  Using /usr/lib/debug/boot/vmlinux for symbols
  ERR : 0xfffe0000100f1000: do_undefinstr not on kallsyms
  ERR : 0xfffe0000100f1320: do_sysinstr not on kallsyms
  ERR : 0xfffe0000100f13b0: do_debug_exception not on kallsyms
  ERR : 0xfffe0000100f1498: do_mem_abort not on kallsyms
  ERR : 0xfffe0000100f1580: do_sp_pc_abort not on kallsyms
  ...

After applying this patch, perf test 1 now succeeds:

  $ sudo ./newperf test -v 1 |& head
   1: vmlinux symtab matches kallsyms                       :
  test child forked, pid 33378
  Looking at the vmlinux_path (8 entries long)
  Using /usr/lib/debug/boot/vmlinux for symbols
  WARN: 0xffff000008081000: diff name v: do_undefinstr k: __exception_text_start
  WARN: 0xffff0000080819e8: diff name v: __irqentry_text_end k: __softirqentry_text_start
  WARN: 0xffff000008081d08: diff name v: __entry_text_start k: __softirqentry_text_end
  WARN: 0xffff00000809db5c: diff name v: flush_icache_range k: __flush_cache_user_range
  WARN: 0xffff000008101908: diff name v: sys_ni_syscall k: sys_vm86old
  ...

Signed-off-by: Kim Phillips <kim.phillips@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Link: http://lkml.kernel.org/r/20171214175242.e30450f17f93ad675d968fa3@arm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-12-27 12:15:58 -03:00
..
arch perf probe arm64: Fix symbol fixup issues due to ELF type 2017-12-27 12:15:58 -03:00
bench perf perf: Remove duplicate includes 2017-12-27 12:15:49 -03:00
Documentation perf probe: Support escaped character in parser 2017-12-27 12:15:55 -03:00
jvmti perf jvmti: Generate correct debug information for inlined code 2017-12-18 11:54:08 -03:00
pmu-events perf vendor events: Use more flexible pattern matching for CPU identification for mapfile.csv 2017-12-05 15:43:55 -03:00
python
scripts
tests perf test shell: Fix check open filename arg using 'perf trace' 2017-12-27 12:15:56 -03:00
trace tools headers: Syncronize mman.h ABI header 2017-11-28 14:31:56 -03:00
ui perf annotate: Get the cpuid from evsel->evlist->env in symbol__annotate() 2017-12-27 12:15:51 -03:00
util perf evsel: Enable ignore_missing_thread for pid option 2017-12-27 12:15:58 -03:00
.gitignore
Build
builtin-annotate.c
builtin-bench.c
builtin-buildid-cache.c perf buildid-cache: Update help text for purge command 2017-11-16 14:49:54 -03:00
builtin-buildid-list.c
builtin-c2c.c perf perf: Remove duplicate includes 2017-12-27 12:15:49 -03:00
builtin-config.c
builtin-data.c
builtin-diff.c
builtin-evlist.c
builtin-ftrace.c
builtin-help.c perf help: Fix a bug during strstart() conversion 2017-11-28 14:21:18 -03:00
builtin-inject.c
builtin-kallsyms.c
builtin-kmem.c mm: remove __GFP_COLD 2017-11-15 18:21:06 -08:00
builtin-kvm.c perf evlist: Remove 'overwrite' parameter from perf_evlist__mmap 2017-12-05 15:43:53 -03:00
builtin-list.c
builtin-lock.c
builtin-mem.c
builtin-probe.c
builtin-record.c perf evsel: Enable ignore_missing_thread for pid option 2017-12-27 12:15:58 -03:00
builtin-report.c perf report: Set browser mode right before setup_browser() 2017-12-05 15:43:56 -03:00
builtin-sched.c
builtin-script.c perf utils: Move is_directory() to path.h 2017-12-27 12:15:48 -03:00
builtin-stat.c perf perf: Remove duplicate includes 2017-12-27 12:15:49 -03:00
builtin-timechart.c
builtin-top.c perf annotate: Get the cpuid from evsel->evlist->env in symbol__annotate() 2017-12-27 12:15:51 -03:00
builtin-trace.c perf evlist: Remove 'overwrite' parameter from perf_evlist__mmap 2017-12-05 15:43:53 -03:00
builtin-version.c
builtin.h
check-headers.sh tools include s390: Grab a copy of arch/s390/include/uapi/asm/unistd.h 2017-12-27 12:15:49 -03:00
command-list.txt
CREDITS
design.txt
Makefile
Makefile.config perf s390: Always build with -fPIC 2017-12-27 12:15:57 -03:00
Makefile.perf
MANIFEST
perf-archive.sh
perf-completion.sh License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
perf-read-vdso.c
perf-sys.h
perf-with-kcore.sh
perf.c
perf.h