|
From: Masami H. <mhi...@re...> - 2009-09-11 16:19:16
|
Frederic Weisbecker wrote:
>> +static int probe_profile_enable(struct ftrace_event_call *call)
>> +{
>> + struct trace_probe *tp = (struct trace_probe *)call->data;
>> +
>> + if (atomic_inc_return(&call->profile_count))
>> + return 0;
>> +
>> + if (probe_is_return(tp)) {
>> + tp->rp.handler = kretprobe_profile_func;
>> + return enable_kretprobe(&tp->rp);
>> + } else {
>> + tp->rp.kp.pre_handler = kprobe_profile_func;
>> + return enable_kprobe(&tp->rp.kp);
>> + }
>> +}
>
>
>
> May be I misunderstood but it seems that concurrent uses of
> ftrace and perf would really mess up the result, as one would
> overwrite the handler of the other.
>
> Even though it's hard to imagine one using both at the same
> time on the same probe, but still...
Oops, it's my misunderstanding. I thought those are exclusively
enabled each other.
> Is it possible to have two kprobes having the exact same
> properties? (pointing to the same address, having the same
> probe handlers, etc...)
>
> Another solution would be to allow kprobes to have multiple
> handlers.
It could be to have multiple kprobes on same point, but I think
it's waste of the memory and time in this case.
I'd like to have a dispatcher function and flags internally :)
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division
e-mail: mhi...@re...
|