Messages in this thread Patch in this message | | | From | "Naveen N. Rao" <> | Subject | [RFC PATCH 2/8] perf probe powerpc: Fix symbol fixup issues due to ELF type | Date | Tue, 9 Dec 2014 23:04:00 +0530 |
| |
If using the symbol table, symbol addresses are not being fixed up properly, resulting in probes being placed at wrong addresses:
# perf probe do_fork Added new event: probe:do_fork (on do_fork)
You can now use it in all perf tools, such as:
perf record -e probe:do_fork -aR sleep 1
# cat /sys/kernel/debug/tracing/kprobe_events p:probe/do_fork _text+635952 # printf "%x" 635952 9b430 # grep do_fork /boot/System.map c0000000000ab430 T .do_fork
Fix by checking for ELF type ET_DYN used by ppc64 kernels.
Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> --- tools/perf/util/symbol-elf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c index 1e23a5b..67e4392 100644 --- a/tools/perf/util/symbol-elf.c +++ b/tools/perf/util/symbol-elf.c @@ -629,7 +629,8 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name, NULL) != NULL); } else { ss->adjust_symbols = ehdr.e_type == ET_EXEC || - ehdr.e_type == ET_REL; + ehdr.e_type == ET_REL || + ehdr.e_type == ET_DYN; } ss->name = strdup(name); -- 2.1.3
| |