Re: [PATCH 2/4] perf-probe: Fix wrong variable warning when the probe point is not found

From: Andi Kleen
Date: Thu Jul 09 2020 - 10:45:28 EST


On Thu, Jul 09, 2020 at 05:07:12PM +0900, Masami Hiramatsu wrote:
> Fix a wrong "variable not found" warning when the probe point is
> not found in the debuginfo.
> Since the debuginfo__find_probes() can return 0 even if it does not
> find given probe point in the debuginfo, fill_empty_trace_arg() can
> be called with tf.ntevs == 0 and it can warn a wrong warning.
> To fix this, reject ntevs == 0 in fill_empty_trace_arg().
>
> E.g. without this patch;
>
> # perf probe -x /lib64/libc-2.30.so -a "memcpy arg1=%di"
> Failed to find the location of the '%di' variable at this address.
> Perhaps it has been optimized out.
> Use -V with the --range option to show '%di' location range.
> Added new events:
> probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di)
> probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_libc:memcpy -aR sleep 1
>
> With this;
>
> # perf probe -x /lib64/libc-2.30.so -a "memcpy arg1=%di"
> Added new events:
> probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di)
> probe_libc:memcpy (on memcpy in /usr/lib64/libc-2.30.so with arg1=%di)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_libc:memcpy -aR sleep 1
>
>
> Reported-by: Andi Kleen <andi@xxxxxxxxxxxxxx>
> Fixes: cb4027308570 ("perf probe: Trace a magic number if variable is not found")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>

Tested-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>

Except for the minor nit on the message all patches look good to me.

-Andi