android_kernel_sony_sdm845/tools/perf/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jiri Olsa f97276ccfd perf tests: Use arch__compare_symbol_names to compare symbols
[ Upstream commit ab6e9a99345131cd8e54268d1d0dc04a33f7ed11 ]

The symbol search called by machine__find_kernel_symbol_by_name is using
internally arch__compare_symbol_names function to compare 2 symbol
names, because different archs have different ways of comparing symbols.
Mostly for skipping '.' prefixes and similar.

In test 1 when we try to find matching symbols in kallsyms and vmlinux,
by address and by symbol name. When either is found we compare the pair
symbol names  by simple strcmp, which is not good enough for reasons
explained in previous paragraph.

On powerpc this can cause lockup, because even thought we found the
pair, the compared names are different and don't match simple strcmp.
Following code path is executed, that leads to lockup:

   - we find the pair in kallsyms by sym->start
next_pair:
   - we compare the names and it fails
   - we find the pair by sym->name
   - the pair addresses match so we call goto next_pair
     because we assume the names match in this case

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Fixes: 031b84c407 ("perf probe ppc: Enable matching against dot symbols automatically")
Link: http://lkml.kernel.org/r/20180215122635.24029-10-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-30 07:50:50 +02:00
..
attr perf tests: Fix attr tests 2015-04-08 10:49:53 -03:00
.gitignore perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
attr.c perf test attr: Fix ignored test case result 2017-12-09 22:01:49 +01:00
attr.py perf tools: Remove EOL whitespaces 2015-01-21 13:24:31 -03:00
backward-ring-buffer.c perf tools: Fix typo: "ehough" -> "enough" 2016-08-23 17:06:38 -03:00
bitmap.c perf tests: Add test for bitmap_scnprintf function 2016-08-02 16:33:27 -03:00
bp_signal.c perf tests: Fix build on older systems where 'signal' is reserved 2016-02-15 17:33:26 -03:00
bp_signal_overflow.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
bpf-script-example.c perf tests bpf: Use SyS_epoll_wait alias 2016-08-03 19:40:48 -03:00
bpf-script-test-kbuild.c perf test: Enhance the LLVM tests: add kbuild test 2015-11-06 17:49:50 -03:00
bpf-script-test-prologue.c perf test: Test the BPF prologue adding infrastructure 2015-11-18 17:51:04 -03:00
bpf-script-test-relocation.c perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
bpf.c perf test bpf: Fix typo: "ehough" -> "enough" 2016-08-23 17:06:39 -03:00
Build perf tools: Fix build with ARCH=x86_64 2018-01-23 19:57:07 +01:00
builtin-test.c perf tests: Add test for bitmap_scnprintf function 2016-08-02 16:33:27 -03:00
code-reading.c Revert "perf tests: Decompress kernel module before objdump" 2018-04-20 08:21:06 +02:00
cpumap.c perf tests cpumap: Add missing headers 2016-07-12 15:19:56 -03:00
dso-data.c perf tools: Allow to reset open files counter 2016-06-30 18:27:44 -03:00
dwarf-unwind.c perf tests: Add dwarf unwind test for powerpc 2016-09-29 11:18:21 -03:00
event-times.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
event_update.c perf tests: Replace assignment with comparison on assert check 2016-04-25 20:24:26 -03:00
evsel-roundtrip-name.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
evsel-tp-sched.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
fdarray.c perf test fdarray: Add missing poll.h header 2016-07-12 15:19:56 -03:00
hists_common.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
hists_common.h perf tests: Define and use symbolic names for fake symbols 2014-06-01 14:35:11 +02:00
hists_cumulate.c perf tests: Fix hist accumulation test 2016-07-04 19:39:01 -03:00
hists_filter.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_link.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_output.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
is_printable_array.c perf tests: Add is_printable_array test 2016-07-18 19:50:35 -03:00
keep-tracking.c perf evsel: Do not use globals in config() 2016-04-11 22:18:20 -03:00
kmod-path.c perf tests kmod-path: Don't fail if compressed modules aren't supported 2018-03-24 11:00:22 +01:00
llvm.c perf tools: Remove needless includes from cache.h 2016-07-12 15:19:58 -03:00
llvm.h perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
make perf build: Add sdt feature detection 2016-07-13 23:09:09 -03:00
mmap-basic.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
mmap-thread-lookup.c perf test: Use machine__new_host in mmap thread lookup test 2015-12-07 18:12:54 -03:00
openat-syscall-all-cpus.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
openat-syscall-tp-fields.c perf tests openat-syscall-tp-fields: Add some conditional defines 2016-07-12 15:19:54 -03:00
openat-syscall.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
parse-events.c perf tests: Avoid possible truncation with dirent->d_name + snprintf 2017-07-15 12:16:13 +02:00
parse-no-sample-id-all.c perf evlist: Destructors should accept NULL 2016-06-22 10:01:48 -03:00
perf-record.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
perf-targz-src-pkg perf tests: Fix tarpkg build test error output redirection 2016-03-24 12:26:41 -03:00
pmu.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
python-use.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
sample-parsing.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
sdt.c perf test: Add a test case for SDT event 2016-07-13 23:09:10 -03:00
stat.c perf tools: Add stat round event synthesize function 2015-12-17 14:55:44 -03:00
sw-clock.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
switch-tracking.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
task-exit.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
tests.h perf tests: Add test for bitmap_scnprintf function 2016-08-02 16:33:27 -03:00
thread-map.c perf tests: Fix thread map test for -F option 2016-06-30 18:27:44 -03:00
thread-mg-share.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
topology.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
vmlinux-kallsyms.c perf tests: Use arch__compare_symbol_names to compare symbols 2018-05-30 07:50:50 +02:00