Messages in this thread | | | Date | Wed, 1 Jul 2015 09:31:35 +0800 | From | "Wangnan (F)" <> | Subject | Re: [RFC PATCH v9 49/50 -fix] perf probe: Init symbol as kprobe if any event is kprobe |
| |
On 2015/6/30 22:37, Arnaldo Carvalho de Melo wrote: > 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@huawei.com> >>>> --- >>> 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 >
Which is /usr/include/linux/bpf.h if you only apply 2/50, and becomes /path/to/kernel/include/uapi/linux/bpf.h for libbpf after appling 3/50, and for perf after applying 23/50.
I'll post a v10 series with 2/50 and 3/50 merged together to reduce your confusion.
Thank you.
> >> 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
| |