Perf tool regression from 07d369857808

From: Alexandre Ghiti
Date: Thu Feb 27 2020 - 07:23:27 EST


Hi Masami,

The commit 07d369857808 ("perf probe: Fix wrong address verification) found its way in kernel 4.19.98 (and debian 10) and I observed some regressions when I try to add probes in shared libraries.
The symptoms are:

$ perf probe -f --exec=/home/aghiti/lib/libdpuhw.so --add 'log_rank_path=log_rank_path rank path:string'
Failed to find symbol at 0x3bf0
Error: Failed to add events.

Whereas when I revert this patch, on the same shared library:

$ perf probe -f --exec=/home/aghiti/lib/libdpuhw.so --add 'log_rank_path=log_rank_path rank path:string'
Added new event:
probe_libdpuhw:log_rank_path_4 (on log_rank_path in /home/aghiti/lib/libdpuhw.so.2020.1.0 with rank path:string)

You can now use it in all perf tools, such as:

perf record -e probe_libdpuhw:log_rank_path_4 -aR sleep 1

Actually, I noted that this patch reverts a previous patch that stated that dwfl_module_addrsym could fail on shared libraries 664fee3dc379 ("perf probe: Do not use dwfl_module_addrsym if dwarf_diename finds symbol name").

Let me know if I can be of any help,

Thanks,

Alexandre Ghiti