Re: [PATCH tracing/kprobes 4/7] tracing/kprobes: Add event profilingsupport

From: Masami Hiramatsu
Date: Mon Sep 14 2009 - 15:34:18 EST


Frederic Weisbecker wrote:
On Mon, Sep 14, 2009 at 12:54:24PM -0400, Masami Hiramatsu wrote:
I'd like to have a dispatcher function and flags internally :)


You mean kprobes that could support multiple probes?
That would be a nice solution IMHO...

Yeah, actually kprobes could support multiple probes on the
same point. But kprobe structure has many extensions which
kprobe-tracer doesn't need, e.g. post_handler/break_handler,
opcode, arch sprcific instructions.
Kretprobe consumes more memories for storing return points :(.

Thus, if we know there are two functions to be called on the
same probe point, I think it is better to have a dispatcher.
(Especially, in this case, we can call fixed functions, so
it's easier way.)


Yeah, you could union the post_handler with profile_handler
or something like that.

No, you can't do that, because kprobes calls post_handler if
it is not NULL.


It depends if kprobes may need one day to support an undeterminate
number of probes.

Kprobes itself is supporting those multiple kprobes on the same
address. I meant that we don't need to have multiple kprobes on
the same "kprobe-tracer's event". Even if introducing a dispatcher,
kprobe-tracer can support multiple trace-event at the same location.

Also, is the post_handler called at the same location than the normal
probe?

No, post_handler is called after single-stepping.

And is a post handler called even if there is no normal handler?

Yes, it is.

Hmm, I assume I have told about kprobes infrastructure, and have you
told about kprobe-tracer?:)

There might be some of such factors that would force you to handle a
lot of corner cases, things that you wouldn't need to worry about
if you just had to maintain a simple rcu list of probes to call.


Anyway, I never see who are using post_handler:). I'm not sure why
it is needed...

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division

e-mail: mhiramat@xxxxxxxxxx

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