Messages in this thread | | | Date | Wed, 2 Sep 2015 09:22:19 +0800 | From | "Wangnan (F)" <> | Subject | Re: [PATCH 28/31] perf probe: Init symbol as kprobe |
| |
On 2015/9/2 4:11, Arnaldo Carvalho de Melo wrote: > Em Sat, Aug 29, 2015 at 04:22:02AM +0000, Wang Nan escreveu: >> 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. > Masami, are you Ok with this one?
I think he would be okay with it because it is his idea :)
Please refer to: http://lkml.kernel.org/n/558E5F42.1060705@hitachi.com
Thank you. > - Arnaldo > >> 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 e720913..b94a8d7 100644 >> --- a/tools/perf/util/probe-event.c >> +++ b/tools/perf/util/probe-event.c >> @@ -2789,7 +2789,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
| |