lkml.org 
[lkml]   [2020]   [Aug]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.8 102/232] perf probe: Fix wrong variable warning when the probe point is not found
    Date
    From: Masami Hiramatsu <mhiramat@kernel.org>

    commit 11fd3eb874e73ee8069bcfd54e3c16fa7ce56fe6 upstream.

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

    Fixes: cb4027308570 ("perf probe: Trace a magic number if variable is not found")
    Reported-by: Andi Kleen <andi@firstfloor.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Tested-by: Andi Kleen <ak@linux.intel.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: stable@vger.kernel.org
    Link: http://lore.kernel.org/lkml/159438667364.62703.2200642186798763202.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    tools/perf/util/probe-finder.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/tools/perf/util/probe-finder.c
    +++ b/tools/perf/util/probe-finder.c
    @@ -1408,6 +1408,9 @@ static int fill_empty_trace_arg(struct p
    char *type;
    int i, j, ret;

    + if (!ntevs)
    + return -ENOENT;
    +
    for (i = 0; i < pev->nargs; i++) {
    type = NULL;
    for (j = 0; j < ntevs; j++) {

    \
     
     \ /
      Last update: 2020-08-20 15:45    [W:4.083 / U:0.248 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site