Re: Perf tool regression from 07d369857808

From: Masami Hiramatsu
Date: Thu Feb 27 2020 - 10:26:01 EST


Hi,

On Thu, 27 Feb 2020 13:23:19 +0100
Alexandre Ghiti <alex@xxxxxxxx> wrote:

> 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.

Hm...

>
> 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").

Ah, OK. Hmm, actually, the reason why reverted it was the actuall
address of symbol is unclear if the DIE only has address range.
OK, at first try to find entrypc and if not, try dwlf_module_addrsym().
That will be better idea.

Thank you,


--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>