Re: [RFC PATCH v9 49/50 -fix] perf probe: Init symbol as kprobe if any event is kprobe

From: Arnaldo Carvalho de Melo
Date: Tue Jun 30 2015 - 10:37:35 EST


Em Tue, Jun 30, 2015 at 09:38:26AM +0800, Wangnan (F) escreveu:
>
>
> On 2015/6/29 22:33, Arnaldo Carvalho de Melo wrote:
> >Em Sat, Jun 27, 2015 at 12:25:45PM +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.
> >>
> >>However, with the incoming BPF uprobe support, the 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@xxxxxxxxxx>
> >>---
> >Please add more info here, i.e. is this to be applied on top of the
> >original 49/50? I guess so, but please state this in the future to speed
> >things up.
> >
> >- Arnaldo
>
> You should replace the original 49/50, and also for the other -fix patches
> sent
> by me. Sorry for the lacking of information.

Ok, figured that out, applied the first two patches before starting to
test the userspace ones, till I got stuck on not know what was required
to satisfy the bpf test expectation, i.e. what bpf.h file was supposed
to be used.

- Arnaldo



> I posted the modified patches only because I don't want to be noisy. If
> posting
> them all makes your work easier I'll do that next time.
>
> Thank you.
>
> >> 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 ea08015..e74ca8f 100644
> >>--- a/tools/perf/util/probe-event.c
> >>+++ b/tools/perf/util/probe-event.c
> >>@@ -2804,7 +2804,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;
> >>--
> >>1.8.3.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/