From: "Martin J. Bligh" <mbligh@google.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
"Frank Ch. Eigler" <fche@redhat.com>,
Paul Mundt <lethal@linux-sh.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Jes Sorensen <jes@sgi.com>, Andrew Morton <akpm@osdl.org>,
Tom Zanussi <zanussi@us.ibm.com>,
Richard J Moore <richardj_moore@uk.ibm.com>,
Michel Dagenais <michel.dagenais@polymtl.ca>,
Christoph Hellwig <hch@infradead.org>,
Greg Kroah-Hartman <gregkh@suse.de>,
Thomas Gleixner <tglx@linutronix.de>,
William Cohen <wcohen@redhat.com>,
ltt-dev@shafik.org, systemtap@sources.redhat.com,
Alan Cox <alan@lxorguk.ukuu.org.uk>
Subject: Re: [PATCH] Linux Kernel Markers
Date: Tue, 19 Sep 2006 08:11:40 -0700 [thread overview]
Message-ID: <451008AC.6030006@google.com> (raw)
In-Reply-To: <20060919081124.GA30394@elte.hu>
Ingo Molnar wrote:
> * Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
>
>> +choice
>> + prompt "MARK code marker behavior"
>
>> +config MARK_KPROBE
>> +config MARK_JPROBE
>> +config MARK_FPROBE
>> + Change markers for a function call.
>> +config MARK_PRINT
>
> as indicated before in great detail, NACK on this profileration of
> marker options, especially the function call one. I'd like to see _one_
> marker mechanism that distros could enable, preferably with zero (or at
> most one NOP) in-code overhead. (You can of course patch whatever
> extension ontop of it, in out-of-tree code, to gain further performance
> advantage by generating direct system-calls.)
>
> There might be a hodgepodge of methods and tools in userspace to do
> debugging, but in the kernel we should get our act together and only
> take _one_ (or none at all), and then spend all our efforts on improving
> that primary method of debug instrumentation. As kprobes/SystemTap has
> proven, it is possible to have zero-overhead inactive probes.
>
> Furthermore, for such a patch to make sense in the upstream kernel,
> downstream tracing code has to make actual use of that NOP-marker. I.e.
> a necessary (but not sufficient) requirement for upstream inclusion (in
> my view) would be for this mechanism to be used by LTT and LKST. (again,
> you can patch LTT for your own purposes in your own patchset if you
> think the performance overhead of probes is too much)
You know ... it strikes me that there's another way to do this, that's
zero overhead when not enabled, and gets rid of the inflexibility in
kprobes. It might not work well in all cases, but at least for simple
non-inlined functions, it'd seem to.
Why don't we just copy the whole damned function somewhere else, and
make an instrumented copy (as a kernel module)? Then reroute all the
function calls through it, instead of the original version. OK, it's
not completely trivial to do, but simpler than kprobes (probably
doing the switchover atomically is the hard part, but not impossible).
There's NO overhead when not using, and much lower than probes when
you are.
That way we can do whatever the hell we please with internal variables,
however GCC optimises it, can write flexible instrumenting code to just
about anything, program in C as God intended, etc, etc. No, it probably
won't fix every case under the sun, but hopefully most of them, and we
can still use kprobes/djprobes/bodilyprobes for the rest of the cases.
M.
next prev parent reply other threads:[~2006-09-19 15:13 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-18 23:45 [PATCH] Linux Kernel Markers Mathieu Desnoyers
2006-09-19 0:41 ` Alan Cox
2006-09-19 1:10 ` Dave Jones
2006-09-19 8:11 ` Ingo Molnar
2006-09-19 8:13 ` Ingo Molnar
2006-09-19 15:11 ` Martin J. Bligh [this message]
2006-09-19 15:31 ` Ingo Molnar
2006-09-20 11:19 ` Andi Kleen
2006-09-19 15:46 ` Frank Ch. Eigler
2006-09-19 16:04 ` Martin Bligh
2006-09-19 16:39 ` Andrew Morton
2006-09-19 16:41 ` Martin Bligh
2006-09-19 6:38 ` S. P. Prasanna
2006-09-19 17:17 ` Martin Bligh
2006-09-19 7:05 ` S. P. Prasanna
2006-09-19 18:02 ` Martin Bligh
2006-09-19 21:04 ` Karim Yaghmour
2006-09-20 13:27 ` Masami Hiramatsu
2006-09-20 17:21 ` Karim Yaghmour
2006-09-20 17:15 ` Mathieu Desnoyers
2006-09-20 17:35 ` Karim Yaghmour
2006-09-20 18:08 ` Frank Ch. Eigler
2006-09-20 18:22 ` Martin Bligh
2006-09-20 18:50 ` Karim Yaghmour
2006-09-20 19:22 ` Martin Bligh
2006-09-20 19:43 ` Karim Yaghmour
2006-09-20 19:40 ` Martin Bligh
2006-09-20 19:58 ` Karim Yaghmour
2006-09-20 18:25 ` Karim Yaghmour
2006-09-20 17:41 ` Karim Yaghmour
2006-09-19 17:54 ` Mathieu Desnoyers
2006-09-19 18:01 ` Martin Bligh
2006-09-19 18:11 ` Mathieu Desnoyers
2006-09-20 0:08 ` Alan Cox
2006-09-20 0:52 ` Karim Yaghmour
2006-09-20 10:44 ` Alan Cox
2006-09-20 23:00 ` Richard J Moore
2006-09-23 15:34 ` score-boarding [was Re: [PATCH] Linux Kernel Markers] Hugh Dickins
2006-09-26 8:43 ` Richard J Moore
2006-09-20 1:08 ` [PATCH] Linux Kernel Markers S. P. Prasanna
2006-09-20 8:18 ` Richard J Moore
2006-09-20 10:32 ` Alan Cox
2006-09-20 11:50 ` Andi Kleen
2006-09-20 13:45 ` Richard J Moore
2006-09-22 12:33 ` Pavel Machek
2006-09-20 1:09 ` Mathieu Desnoyers
2006-09-19 19:13 ` Vara Prasad
2006-09-19 19:16 ` Mathieu Desnoyers
2006-09-19 19:24 ` Martin Bligh
2006-09-19 22:27 ` Satoshi Oshima
2006-09-19 19:26 ` Martin Bligh
2006-09-19 9:30 ` S. P. Prasanna
2006-09-19 20:12 ` Mathieu Desnoyers
2006-09-20 11:00 ` Masami Hiramatsu
2006-09-20 9:39 ` Helge Hafting
2006-09-20 10:30 ` Alan Cox
2006-09-20 13:23 ` Masami Hiramatsu
2006-09-19 16:36 ` Ingo Molnar
2006-09-19 16:41 ` Richard J Moore
2006-09-19 16:49 ` Frank Ch. Eigler
2006-09-19 16:52 ` Martin Bligh
2006-09-19 17:02 ` Frank Ch. Eigler
2006-09-19 16:06 ` Vara Prasad
2006-09-19 16:14 ` Martin Bligh
2006-09-19 17:43 ` Mathieu Desnoyers
2006-09-19 16:23 ` Karim Yaghmour
2006-09-19 16:17 ` Martin Bligh
2006-09-19 16:29 ` Karim Yaghmour
2006-09-19 16:55 ` Karim Yaghmour
2006-09-19 17:41 ` Mathieu Desnoyers
2006-09-20 17:33 ` Karim Yaghmour
2006-09-19 15:21 ` Frank Ch. Eigler
2006-09-20 13:20 ` Masami Hiramatsu
2006-09-20 13:32 ` Mathieu Desnoyers
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=451008AC.6030006@google.com \
--to=mbligh@google.com \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=fche@redhat.com \
--cc=gregkh@suse.de \
--cc=hch@infradead.org \
--cc=jes@sgi.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@elte.hu \
--cc=richardj_moore@uk.ibm.com \
--cc=systemtap@sources.redhat.com \
--cc=tglx@linutronix.de \
--cc=wcohen@redhat.com \
--cc=zanussi@us.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox