lkml.org 
[lkml]   [2015]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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




\
 
 \ /
  Last update: 2015-07-01 04:01    [W:0.135 / U:1.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site