All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Frank Ch. Eigler" <fche@redhat.com>
To: Karim Yaghmour <karim@opersys.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>,
	Andrew Morton <akpm@osdl.org>, Ingo Molnar <mingo@redhat.com>,
	Greg Kroah-Hartman <gregkh@suse.de>,
	Thomas Gleixner <tglx@linutronix.de>,
	Douglas Niehaus <niehaus@eecs.ku.edu>,
	Tom Zanussi <zanussi@us.ibm.com>,
	Paul Mundt <lethal@linux-sh.org>, Jes Sorensen <jes@sgi.com>,
	Richard J Moore <richardj_moore@uk.ibm.com>,
	William Cohen <wcohen@redhat.com>,
	"Martin J. Bligh" <mbligh@mbligh.org>,
	Michel Dagenais <michel.dagenais@polymtl.ca>,
	systemtap@sources.redhat.com, ltt-dev@shafik.org
Subject: Re: [PATCH] Linux Kernel Markers 0.2 for Linux 2.6.17
Date: Wed, 20 Sep 2006 09:20:08 -0400	[thread overview]
Message-ID: <20060920132008.GF18646@redhat.com> (raw)
In-Reply-To: <45106B20.6020600@opersys.com>

[-- Attachment #1: Type: text/plain, Size: 1458 bytes --]

Hi -

> > [...]  For the static part of the instrumentation, a
> > marker that could be hooked up to either type of probing system was
> > desirable, which implies some sort of run-time changeability.
> 
> Ok. So if I get what you're saying here, you'd like to be able to
> overload a marker? 

Sort of.  Remember, we discussed markers as *marking* places and
things, with the intent that they be decoupled from the actual
*action* that is taken when the marker is hit.

> Can you suggest a macro that can do what you'd like. [...]

Compare the kind of marker I showed at OLS and presently supported by
systemtap.  Its unparametrized version looks like this:

#define STAP_MARK(name) do { \
   static void (*__mark_##name##_)(); \
   if (unlikely (__mark_##name##_)) \
   (void) (__mark_##name##_()); \
} while (0)

A tracing/probing tool would hook up to a particular and specific
marker at run time by locating the __mark_NAME static variable (a
function pointer) in the data segment, for example using the ordinary
symbol table, and swapping into it the address of a compatible
back-end handler function.  When a particular tracing/probing session
ends, the function pointer is reset to null.

Note that this technique:

- operates at run time
- is portable
- in its parametrized variants, is type-safe
- does not require any future technology
- does impose some overhead even when a marker is not active


- FChE

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2006-09-20 13:21 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-19 18:34 [PATCH] Linux Kernel Markers 0.2 for Linux 2.6.17 Mathieu Desnoyers
2006-09-19  8:39 ` S. P. Prasanna
2006-09-19 20:05   ` Mathieu Desnoyers
2006-09-19 18:51 ` Randy.Dunlap
2006-09-19 19:13   ` Mathieu Desnoyers
2006-09-19 19:23 ` Frank Ch. Eigler
2006-09-19 19:36   ` Mathieu Desnoyers
2006-09-19 19:45     ` Frank Ch. Eigler
2006-09-19 20:28       ` Mathieu Desnoyers
2006-09-19 21:07         ` Frank Ch. Eigler
2006-09-19 22:11           ` Karim Yaghmour
2006-09-20 13:20             ` Frank Ch. Eigler [this message]
2006-09-20 13:38               ` Mathieu Desnoyers
2006-09-20 14:57                 ` Mathieu Desnoyers
2006-09-20 15:53                   ` Frank Ch. Eigler
2006-09-20 16:37                     ` Mathieu Desnoyers
2006-09-20 17:14                     ` Mathieu Desnoyers
2006-09-20 13:46               ` 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=20060920132008.GF18646@redhat.com \
    --to=fche@redhat.com \
    --cc=akpm@osdl.org \
    --cc=gregkh@suse.de \
    --cc=hch@infradead.org \
    --cc=jes@sgi.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=mbligh@mbligh.org \
    --cc=michel.dagenais@polymtl.ca \
    --cc=mingo@redhat.com \
    --cc=niehaus@eecs.ku.edu \
    --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 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.