From: Masami Hiramatsu <mhiramat@redhat.com>
To: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Takashi Nishiie <t-nishiie@np.css.fujitsu.com>,
"'Alexey Dobriyan'" <adobriyan@gmail.com>,
"'Peter Zijlstra'" <peterz@infradead.org>,
"'Steven Rostedt'" <rostedt@goodmis.org>,
"'Frank Ch. Eigler'" <fche@redhat.com>,
"'Ingo Molnar'" <mingo@elte.hu>,
"'LKML'" <linux-kernel@vger.kernel.org>,
"'systemtap-ml'" <systemtap@sources.redhat.com>,
"'Hideo AOKI'" <haoki@redhat.com>
Subject: Re: [RFC PATCH] Kernel Tracepoints
Date: Mon, 30 Jun 2008 15:58:51 -0400 [thread overview]
Message-ID: <48693AFB.1020304@redhat.com> (raw)
In-Reply-To: <20080630154002.GE17388@Krystal>
Hi Mathieu,
Mathieu Desnoyers wrote:
> * Masami Hiramatsu (mhiramat@redhat.com) wrote:
>> Mathieu Desnoyers wrote:
>>> * Masami Hiramatsu (mhiramat@redhat.com) wrote:
>>> >
>>>>> Implementation of kernel tracepoints. Inspired from the Linux Kernel Markers.
>>>> What would you think redesigning markers on tracepoints? because most of the
>>>> logic (scaning sections, multiple probe and activation) seems very similar
>>>> to markers.
>>>>
>>> We could, although markers, because they use var args, allow to put the
>>> iteration on the multi probe array out-of-line. Tracepoints cannot
>>> afford this and the iteration must be done at the initial call-site.
>>>
>>> From what I see in your proposal, it's mostly to extract the if() call()
>>> code from the inner __trace_mark() macro and to put it in a separate
>>> macro, am I correct ? This would make the macro more readable.
>> Sure, I think marker and tracepoint can share below functions;
>> - definition of static local variables in specific sections
>
> Given that we could want to keep activation of tracepoints and markers
> separate (so they don't share the same namespace), declaring the static
> variables in separated sections seems to make sense to me.
Sorry, I'm not sure what is "separate activation".
As far as I can see, both tracepoints and markers are activated
when its probe handlers are registered on each tracepoint/marker.
Aren't it separated?
I did not mean integrating registering interfaces, but
I think that they can share base(internal) functions.
for example, both of them has XXX_update_range/_module_XXX_update etc.
IMHO, current code is not so good for maintenance. there are
many code duplications (ex. kernel/module.c, I think
that both of them (and imv too?) can share the code for
handling its section and iterating entries). I'm not sure those
duplications are acceptable.
>> - probe activation code (if() call())
>> - multi probe handling
>
> Hrm, the thing here is that because markers allow to do the iteration on
> the multiple probe callbacks within an internal wrapper (instead of
> doing it on-site as in the tracepoints), it allows to do some further
> optimizations (less memory allocation and less pointer dereference in
> the single probe case, not having to prepare the va_args in the
> MARK_NOARGS case) which are only done because it does not have to add
> code to the instrumentation site. However, tracepoints cannot have such
> "generic" wrapper and we have to do the iteration on callbacks in the
> code added to the instrumented object. Therefore, I keep it as small as
> possible in terms of bytes of instructions.
OK, I see. So, __tracepoint_block() macro can specify handler function.
what would you think about it?
Thank you,
--
Masami Hiramatsu
Software Engineer
Hitachi Computer Products (America) Inc.
Software Solutions Division
e-mail: mhiramat@redhat.com
next prev parent reply other threads:[~2008-06-30 20:00 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-20 17:03 [RFC][Patch 2/2] markers: example of irq regular kernel markers Masami Hiramatsu
2008-06-20 17:45 ` Mathieu Desnoyers
2008-06-20 19:34 ` Masami Hiramatsu
2008-06-21 10:12 ` KOSAKI Motohiro
2008-06-21 14:36 ` Steven Rostedt
2008-06-21 14:53 ` Frank Ch. Eigler
2008-06-21 15:07 ` Steven Rostedt
2008-06-21 16:13 ` Peter Zijlstra
2008-06-21 18:02 ` Frank Ch. Eigler
2008-06-22 4:31 ` Masami Hiramatsu
2008-06-23 2:19 ` KOSAKI Motohiro
2008-06-21 19:39 ` Frank Ch. Eigler
2008-06-22 4:00 ` Masami Hiramatsu
2008-06-20 20:07 ` Peter Zijlstra
2008-06-22 17:11 ` [RFC] Tracepoint proposal Mathieu Desnoyers
2008-06-22 17:59 ` Alexey Dobriyan
2008-06-22 18:27 ` Mathieu Desnoyers
2008-06-24 0:20 ` Alexey Dobriyan
2008-06-24 4:01 ` Masami Hiramatsu
2008-06-24 7:15 ` Takashi Nishiie
2008-06-24 11:55 ` Frank Ch. Eigler
2008-06-24 16:04 ` Masami Hiramatsu
2008-06-24 16:21 ` KOSAKI Motohiro
2008-06-24 17:01 ` Masami Hiramatsu
2008-06-24 17:46 ` Mathieu Desnoyers
2008-06-25 23:52 ` [RFC PATCH] Kernel Tracepoints Mathieu Desnoyers
2008-06-26 21:02 ` Masami Hiramatsu
2008-06-27 13:14 ` Mathieu Desnoyers
2008-06-27 22:45 ` Masami Hiramatsu
2008-06-30 15:43 ` Mathieu Desnoyers
2008-06-27 13:15 ` Mathieu Desnoyers
2008-06-30 19:38 ` Masami Hiramatsu
2008-06-27 13:30 ` Mathieu Desnoyers
2008-06-27 20:58 ` Masami Hiramatsu
2008-06-30 15:40 ` Mathieu Desnoyers
2008-06-30 19:58 ` Masami Hiramatsu [this message]
2008-07-03 15:12 ` Mathieu Desnoyers
2008-07-03 18:51 ` Masami Hiramatsu
2008-06-27 13:36 ` [RFC PATCH] Kernel Tracepoints (update) Mathieu Desnoyers
2008-07-03 15:27 ` Masami Hiramatsu
2008-07-03 15:47 ` Mathieu Desnoyers
2008-07-03 18:18 ` Mathieu Desnoyers
2008-07-03 18:46 ` Masami Hiramatsu
2008-06-25 23:55 ` [RFC PATCH] Tracepoint sched probes Mathieu Desnoyers
2008-06-24 3:09 ` [RFC] Tracepoint proposal Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48693AFB.1020304@redhat.com \
--to=mhiramat@redhat.com \
--cc=adobriyan@gmail.com \
--cc=fche@redhat.com \
--cc=haoki@redhat.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=systemtap@sources.redhat.com \
--cc=t-nishiie@np.css.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.