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