• Kim Phillips's avatar
    perf probe arm64: Fix symbol fixup issues due to ELF type · f1031c8d
    Kim Phillips authored
    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 d2332098 ("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: default avatarKim 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.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    f1031c8d
sym-handling.c 542 Bytes