From: Ingo Molnar <mingo@elte.hu>
To: Karim Yaghmour <karim@opersys.com>
Cc: "Jose R. Santos" <jrs@us.ibm.com>,
Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
Roman Zippel <zippel@linux-m68k.org>,
Andrew Morton <akpm@osdl.org>,
tglx@linutronix.de, Paul Mundt <lethal@linux-sh.org>,
Jes Sorensen <jes@sgi.com>,
linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Greg Kroah-Hartman <gregkh@suse.de>,
Tom Zanussi <zanussi@us.ibm.com>,
ltt-dev@shafik.org, Michel Dagenais <michel.dagenais@polymtl.ca>
Subject: Re: [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108
Date: Sat, 16 Sep 2006 01:52:24 +0200 [thread overview]
Message-ID: <20060915235224.GA30473@elte.hu> (raw)
In-Reply-To: <450B382C.9070202@opersys.com>
* Karim Yaghmour <karim@opersys.com> wrote:
> > So you dispute that markups for dynamic tracing will be more
> > flexible and you dispute that they will be less intrusive than
> > markups for static tracing?
>
> No, I'm saying that the flexibility of the markup is not tied to the
> instrumentation "grab" mechanism (direct call or binary editing.)
> That's the "arbitrary" I'm talking about.
ok, then i'd like to dispute your point. Contrary to your statement
there is a very fundamental difference between "static tracing" (static
call, which relies on compile-time insertion of trace points) and
"dynamic tracing" (which can insert trace points almost anywhere) -
_even if both use in-source markers_.
The fundamental difference is this: dynamic tracing has full access to
the full environment of the code that it taps into _at the time of
tracepoint activation_, while static tracing has to get all its context
during compilation.
To make my point easier to understand, consider the following example:
we want to tap into the middle of a global_function():
int global_function(int arg1, int arg2, int arg3)
{
... [lots of code] ...
x = func2();
... [lots of code] ...
}
We want to trace the function right after 'x' has been assigned, and we
want to trace an event_A, with parameters: arg1, arg2, arg3 and x. This
is a pretty common scenario. Ok so far?
here is how the markup looks like under static tracing:
int global_function(int arg1, int arg2, int arg3)
{
... [lots of code] ...
x = func2();
D(event_A, arg1, arg2, arg3, x);
... [lots of code] ...
}
that's what you'd expect, right? This is pretty common too, up to this
point.
now how could the markup look like for a dynamic tracepoint:
int global_function(int arg1, int arg2, int arg3)
{
... [lots of code] ...
x = func2();
D(event_A, x);
... [lots of code] ...
}
Note: there's no (arg1, arg2, arg3) passed to the markup! Why? Because
SystemTap has full access to the function's arguments and in this
particular case it's simply not necessary to reference them explicitly.
So the markup has less of an overhead because it does not 'touch' arg1,
arg2, arg3 if the tracepoint is not active [which is the common case we
optimize for].
Furthermore, the markup is also visually less intrusive.
But better than that, the markup could look like this as well:
int global_function(int arg1, int arg2, int arg3)
{
... [lots of code] ...
x = func2();
... [lots of code] ...
}
right, no markup at all, but in a script somewhere we'd have:
insert.trace(global_function: "x = func2();", after);
or maybe even in a script, annotated in patch format, so that the
context of the tapped code is captured too.
so, as a result: the dynamic markup() does the same, but has less impact
on the compiled code (less parameters touched), and is more flexible in
terms of attachment to the source code.
Can we do any of this with the static tracepoint? We cannot,
fundamentally! So if we allowed static tracers to access that tracepoint
anytime, we could never make things more intelligent there in the
future!
Ingo
next prev parent reply other threads:[~2006-09-16 0:00 UTC|newest]
Thread overview: 284+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-14 3:38 [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108 Mathieu Desnoyers
2006-09-14 11:27 ` Ingo Molnar
2006-09-14 13:40 ` Roman Zippel
2006-09-14 13:55 ` Ingo Molnar
2006-09-14 14:33 ` Roman Zippel
2006-09-14 15:26 ` Michel Dagenais
2006-09-14 17:48 ` Ingo Molnar
2006-09-15 15:04 ` Mathieu Desnoyers
2006-09-14 18:08 ` Nick Piggin
2006-09-14 18:38 ` Karim Yaghmour
2006-09-14 17:13 ` Ingo Molnar
2006-09-14 17:55 ` Roman Zippel
2006-09-14 18:15 ` Ingo Molnar
2006-09-14 18:35 ` Mathieu Desnoyers
2006-09-14 18:54 ` Karim Yaghmour
2006-09-15 9:20 ` Jes Sorensen
2006-09-15 12:38 ` Karim Yaghmour
2006-09-15 12:32 ` Jes Sorensen
2006-09-15 14:09 ` Karim Yaghmour
2006-09-15 14:30 ` Jes Sorensen
2006-09-15 15:12 ` Karim Yaghmour
2006-09-16 10:41 ` Jes Sorensen
2006-09-16 15:28 ` Karim Yaghmour
2006-09-18 8:57 ` Jes Sorensen
2006-09-18 14:48 ` Ingo Molnar
2006-09-18 15:37 ` Karim Yaghmour
2006-09-15 13:20 ` Paul Mundt
2006-09-15 13:41 ` Roman Zippel
2006-09-15 13:44 ` Jes Sorensen
2006-09-15 14:03 ` Roman Zippel
2006-09-15 14:37 ` Alan Cox
2006-09-15 14:34 ` Roman Zippel
2006-09-15 13:57 ` Paul Mundt
2006-09-15 14:17 ` Karim Yaghmour
2006-09-15 14:13 ` Jes Sorensen
2006-09-15 14:31 ` Karim Yaghmour
2006-09-15 14:28 ` Paul Mundt
2006-09-15 14:46 ` Martin J. Bligh
2006-09-15 15:22 ` Alan Cox
2006-09-15 15:47 ` Martin J. Bligh
2006-09-15 14:51 ` Karim Yaghmour
2006-09-15 15:00 ` Thomas Gleixner
2006-09-15 15:28 ` Karim Yaghmour
2006-09-15 18:16 ` Andrew Morton
2006-09-15 18:19 ` Ingo Molnar
2006-09-15 19:26 ` Karim Yaghmour
2006-09-15 19:43 ` Roman Zippel
2006-09-15 20:05 ` Ingo Molnar
2006-09-15 20:22 ` Mathieu Desnoyers
2006-09-15 21:08 ` Jose R. Santos
2006-09-15 21:25 ` Mathieu Desnoyers
2006-09-15 22:02 ` Jose R. Santos
2006-09-15 22:03 ` Ingo Molnar
2006-09-15 22:32 ` Karim Yaghmour
2006-09-15 22:43 ` Ingo Molnar
2006-09-15 23:33 ` Karim Yaghmour
2006-09-15 23:52 ` Ingo Molnar [this message]
2006-09-16 2:24 ` Karim Yaghmour
2006-09-15 23:53 ` Ingo Molnar
2006-09-16 2:51 ` Karim Yaghmour
2006-09-15 22:59 ` Frank Ch. Eigler
2006-09-15 23:40 ` Karim Yaghmour
2006-09-15 23:17 ` Jose R. Santos
2006-09-15 21:32 ` Ingo Molnar
2006-09-15 21:58 ` Mathieu Desnoyers
2006-09-15 22:19 ` Ingo Molnar
2006-09-15 22:45 ` Karim Yaghmour
2006-09-16 9:59 ` Jes Sorensen
2006-09-16 17:24 ` Mathieu Desnoyers
2006-09-16 17:35 ` Ingo Molnar
2006-09-16 17:56 ` Mathieu Desnoyers
2006-09-16 19:10 ` Ingo Molnar
2006-09-16 19:37 ` Ingo Molnar
2006-09-16 20:29 ` [patch] kprobes: optimize branch placement Ingo Molnar
2006-09-16 20:43 ` Ingo Molnar
2006-09-16 21:44 ` Karim Yaghmour
2006-09-16 22:57 ` Andrew Morton
2006-09-16 23:24 ` Ingo Molnar
2006-09-17 2:44 ` Karim Yaghmour
2006-09-17 1:59 ` Karim Yaghmour
2006-09-17 12:15 ` Mike Galbraith
2006-09-16 22:56 ` Andrew Morton
2006-09-16 23:30 ` Ingo Molnar
2006-09-18 13:52 ` Ananth N Mavinakayanahalli
2006-09-16 22:55 ` Andrew Morton
2006-09-17 10:13 ` [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108 Frederik Deweerdt
2006-09-17 14:00 ` Ingo Molnar
2006-09-16 19:51 ` Karim Yaghmour
2006-09-16 23:40 ` Ingo Molnar
2006-09-17 5:33 ` Mathieu Desnoyers
2006-09-16 18:11 ` Karim Yaghmour
2006-09-16 17:44 ` Ingo Molnar
2006-09-16 18:15 ` Karim Yaghmour
2006-09-18 8:18 ` Jes Sorensen
2006-09-16 17:55 ` Karim Yaghmour
2006-09-18 8:21 ` Jes Sorensen
2006-09-18 8:33 ` Jes Sorensen
2006-09-18 15:01 ` Mathieu Desnoyers
2006-09-16 17:30 ` Mathieu Desnoyers
2006-09-18 8:15 ` Jes Sorensen
2006-09-18 14:53 ` Mathieu Desnoyers
2006-09-18 15:17 ` Ingo Molnar
2006-09-18 16:54 ` Mathieu Desnoyers
2006-09-15 21:12 ` Roman Zippel
2006-09-15 21:08 ` Ingo Molnar
2006-09-15 20:13 ` Andrew Morton
2006-09-15 21:49 ` Jose R. Santos
2006-09-16 10:19 ` Jes Sorensen
2006-09-16 16:05 ` Karim Yaghmour
2006-09-17 4:54 ` Ganesan Rajagopal
2006-09-18 8:13 ` Jes Sorensen
2006-09-18 14:46 ` Mathieu Desnoyers
2006-09-18 17:06 ` Martin Bligh
2006-09-20 14:17 ` Jes Sorensen
2006-09-15 19:35 ` Thomas Gleixner
2006-09-15 19:40 ` Ingo Molnar
2006-09-15 19:56 ` Karim Yaghmour
2006-09-15 20:23 ` Thomas Gleixner
2006-09-15 20:40 ` Roman Zippel
2006-09-15 20:48 ` Ingo Molnar
2006-09-15 21:17 ` Karim Yaghmour
2006-09-15 21:15 ` Ingo Molnar
2006-09-15 21:56 ` Karim Yaghmour
2006-09-15 21:27 ` Roman Zippel
2006-09-15 21:51 ` Ingo Molnar
2006-09-15 22:15 ` Karim Yaghmour
2006-09-15 22:53 ` Roman Zippel
2006-09-15 23:14 ` Ingo Molnar
2006-09-15 23:49 ` Nicholas Miell
2006-09-15 23:57 ` Ingo Molnar
2006-09-16 0:41 ` Nicholas Miell
2006-09-16 0:31 ` Roman Zippel
2006-09-16 8:20 ` Ingo Molnar
2006-09-16 8:21 ` Ingo Molnar
2006-09-16 8:21 ` Ingo Molnar
2006-09-16 8:22 ` Ingo Molnar
2006-09-16 19:58 ` Roman Zippel
2006-09-16 22:50 ` Ingo Molnar
2006-09-16 23:00 ` Ingo Molnar
2006-09-17 1:15 ` Roman Zippel
2006-09-17 8:42 ` Ingo Molnar
2006-09-17 15:16 ` Roman Zippel
2006-09-17 15:25 ` Ingo Molnar
2006-09-17 16:02 ` Roman Zippel
2006-09-17 16:45 ` Ingo Molnar
2006-09-17 16:59 ` Nick Piggin
2006-09-17 17:26 ` Roman Zippel
2006-09-17 17:56 ` Nick Piggin
2006-09-17 18:59 ` Roman Zippel
2006-09-17 21:23 ` Ingo Molnar
2006-09-17 21:52 ` Roman Zippel
2006-09-17 22:27 ` Ingo Molnar
2006-09-17 21:40 ` Ingo Molnar
2006-09-18 8:43 ` Jes Sorensen
2006-09-17 21:32 ` Ingo Molnar
2006-09-17 19:23 ` Ingo Molnar
2006-09-17 19:45 ` Roman Zippel
2006-09-17 20:56 ` Ingo Molnar
2006-09-17 21:36 ` Roman Zippel
2006-09-17 22:13 ` Ingo Molnar
2006-09-16 23:14 ` Ingo Molnar
2006-09-17 14:19 ` Frank Ch. Eigler
2006-09-17 15:31 ` Ingo Molnar
2006-09-17 17:15 ` Mathieu Desnoyers
[not found] ` <y0mu036eglz.fsf@ton.toronto.redhat.com>
2006-09-17 15:00 ` Ingo Molnar
2006-09-16 8:23 ` Ingo Molnar
2006-09-16 8:23 ` Ingo Molnar
2006-09-16 8:23 ` Ingo Molnar
2006-09-15 21:05 ` Karim Yaghmour
2006-09-15 21:17 ` Thomas Gleixner
2006-09-15 21:31 ` Karim Yaghmour
2006-09-15 20:00 ` Mathieu Desnoyers
2006-09-15 20:27 ` Jose R. Santos
2006-09-15 20:37 ` Alan Cox
2006-09-15 20:26 ` Mathieu Desnoyers
2006-09-15 20:51 ` Karim Yaghmour
2006-09-17 17:53 ` Mathieu Desnoyers
2006-09-17 19:35 ` printk instrumentation with LTTng Mathieu Desnoyers
2006-09-15 15:24 ` [PATCH 0/11] LTTng-core (basic tracing infrastructure) 0.5.108 Alan Cox
2006-09-15 15:23 ` Karim Yaghmour
2006-09-15 14:39 ` Jes Sorensen
2006-09-15 15:04 ` Karim Yaghmour
2006-09-14 19:40 ` Tim Bird
2006-09-14 20:00 ` Ingo Molnar
2006-09-14 20:46 ` Karim Yaghmour
2006-09-19 12:05 ` Christoph Hellwig
2006-09-14 21:02 ` Roman Zippel
2006-09-15 11:40 ` Alan Cox
2006-09-15 11:46 ` Roman Zippel
2006-09-15 12:38 ` Alan Cox
2006-09-15 12:39 ` Roman Zippel
2006-09-15 13:41 ` Alan Cox
2006-09-15 13:34 ` Roman Zippel
2006-09-15 14:41 ` Alan Cox
2006-09-15 14:35 ` Karim Yaghmour
2006-09-15 14:58 ` Alan Cox
2006-09-15 14:57 ` Karim Yaghmour
2006-09-15 17:49 ` Andrew Morton
2006-09-15 18:20 ` Karim Yaghmour
2006-09-15 17:01 ` Tim Bird
2006-09-15 17:08 ` Frank Ch. Eigler
2006-09-15 17:57 ` Andrew Morton
2006-09-15 18:31 ` Alan Cox
2006-09-15 18:12 ` Ingo Molnar
2006-09-15 19:10 ` Roman Zippel
2006-09-15 19:10 ` Ingo Molnar
2006-09-15 20:05 ` Thomas Gleixner
2006-09-15 20:35 ` Roman Zippel
2006-09-15 21:44 ` Tim Bird
2006-09-19 12:29 ` Christoph Hellwig
2006-09-19 13:17 ` Roman Zippel
2006-09-15 18:24 ` Frank Ch. Eigler
2006-09-15 18:23 ` Ingo Molnar
2006-09-15 18:18 ` Martin Bligh
2006-09-15 18:10 ` Jose R. Santos
2006-09-15 19:49 ` Mathieu Desnoyers
2006-09-15 20:54 ` Jose R. Santos
2006-09-15 21:42 ` Karim Yaghmour
2006-09-15 21:46 ` Mathieu Desnoyers
2006-09-19 15:05 ` Jose R. Santos
2006-09-19 15:30 ` Mathieu Desnoyers
2006-09-19 16:39 ` Jose R. Santos
2006-09-19 18:03 ` Mathieu Desnoyers
2006-09-15 17:45 ` Andrew Morton
2006-09-15 18:16 ` Karim Yaghmour
2006-09-15 19:20 ` Jose R. Santos
2006-09-15 19:59 ` Andrew Morton
2006-09-15 20:24 ` Karim Yaghmour
2006-09-15 20:25 ` Thomas Gleixner
2006-09-14 19:47 ` Roman Zippel
2006-09-14 20:24 ` Ingo Molnar
2006-09-14 20:54 ` Roman Zippel
2006-09-14 21:08 ` Daniel Walker
2006-09-14 21:30 ` Roman Zippel
2006-09-14 22:15 ` Ingo Molnar
2006-09-14 23:39 ` Roman Zippel
2006-09-14 23:43 ` Ingo Molnar
2006-09-15 0:27 ` Roman Zippel
2006-09-15 1:47 ` Mathieu Desnoyers
2006-09-15 5:47 ` Vara Prasad
2006-09-14 18:12 ` Karim Yaghmour
2006-09-14 20:25 ` Martin Bligh
2006-09-14 20:34 ` Ingo Molnar
2006-09-14 20:55 ` Martin Bligh
2006-09-14 21:31 ` Ingo Molnar
2006-09-14 22:25 ` Martin Bligh
2006-09-14 22:36 ` Ingo Molnar
2006-09-14 22:59 ` Martin Bligh
2006-09-14 23:19 ` Ingo Molnar
2006-09-15 0:19 ` Nicholas Miell
2006-09-15 1:04 ` Martin J. Bligh
2006-09-15 12:38 ` Ingo Molnar
2006-09-15 7:00 ` Vara Prasad
2006-09-15 15:37 ` Michel Dagenais
2006-09-19 12:08 ` Christoph Hellwig
2006-09-14 21:07 ` Roman Zippel
2006-09-15 9:29 ` Jes Sorensen
2006-09-14 17:51 ` Karim Yaghmour
2006-09-14 15:19 ` Mathieu Desnoyers
2006-09-14 19:39 ` Frank Ch. Eigler
2006-09-15 17:13 ` Jose R. Santos
2006-09-14 15:02 ` Mathieu Desnoyers
2006-09-14 15:14 ` Martin J. Bligh
2006-09-14 17:43 ` Ingo Molnar
2006-09-14 18:25 ` Karim Yaghmour
2006-09-14 20:03 ` Martin Bligh
2006-09-14 20:14 ` Ingo Molnar
2006-09-14 20:40 ` Martin Bligh
2006-09-14 21:05 ` Michel Dagenais
2006-09-14 22:23 ` Ingo Molnar
2006-09-14 22:46 ` Martin Bligh
2006-09-14 22:56 ` Ingo Molnar
2006-09-14 19:03 ` grundig
2006-09-14 19:21 ` Karim Yaghmour
2006-09-14 19:48 ` Frank Ch. Eigler
2006-09-15 16:32 ` Jose R. Santos
2006-09-19 11:59 ` Christoph Hellwig
-- strict thread matches above, loose matches on Subject: below --
2006-09-15 3:10 James Dickens
2006-09-15 9:17 Richard J Moore
2006-09-15 17:14 Chuck Ebbert
2006-09-15 18:32 ` Alan Cox
2006-09-16 10:46 ` Jes Sorensen
2006-09-25 15:20 Chuck Ebbert
2006-09-25 15:39 ` Ingo Molnar
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=20060915235224.GA30473@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@osdl.org \
--cc=gregkh@suse.de \
--cc=hch@infradead.org \
--cc=jes@sgi.com \
--cc=jrs@us.ibm.com \
--cc=karim@opersys.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ltt-dev@shafik.org \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=michel.dagenais@polymtl.ca \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=zanussi@us.ibm.com \
--cc=zippel@linux-m68k.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox