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

From: Arnaldo Carvalho de Melo
Date: Mon Jun 29 2015 - 10:33:43 EST


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

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