lkml.org 
[lkml]   [2015]   [Aug]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 26/29] perf probe: Init symbol as kprobe
    Date
    Before this patch, add_perf_probe_events() init symbol maps only for
    uprobe if the first 'struct perf_probe_event' passed to it is a uprobe
    event. This is a trick because 'perf probe''s command line syntax
    constrains the first elements of the probe_event arrays must be kprobes
    if there is one kprobe there.

    However, with the incoming BPF uprobe support, that constrain is not
    hold since 'perf record' will also probe on k/u probes through BPF
    object, and is possible to pass an array with kprobe but the first
    element is uprobe.

    This patch init symbol maps for kprobes even if all of events are
    uprobes, because the extra cost should be small enough.

    Signed-off-by: Wang Nan <wangnan0@huawei.com>
    Cc: Alexei Starovoitov <ast@plumgrid.com>
    Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: He Kuang <hekuang@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kaixu Xia <xiakaixu@huawei.com>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Zefan Li <lizefan@huawei.com>
    Cc: pi3orama@163.com
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Link: http://lkml.kernel.org/n/1436445342-1402-39-git-send-email-wangnan0@huawei.com
    ---
    tools/perf/util/probe-event.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
    index ffc0113..f173372 100644
    --- a/tools/perf/util/probe-event.c
    +++ b/tools/perf/util/probe-event.c
    @@ -2632,7 +2632,7 @@ int add_perf_probe_events(struct perf_probe_event *pevs, int npevs,
    {
    int i, ret;

    - ret = init_symbol_maps(pevs->uprobes);
    + ret = init_symbol_maps(false);
    if (ret < 0)
    return ret;

    --
    2.1.0


    \
     
     \ /
      Last update: 2015-08-21 12:21    [W:2.362 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site