public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Martin Bligh <mbligh@google.com>,
	"Frank Ch. Eigler" <fche@redhat.com>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	prasanna@in.ibm.com, Andrew Morton <akpm@osdl.org>,
	Paul Mundt <lethal@linux-sh.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Jes Sorensen <jes@sgi.com>, 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 Markers 0.4 (+dynamic probe loader) for 2.6.17
Date: Thu, 21 Sep 2006 06:46:03 +0200	[thread overview]
Message-ID: <20060921044603.GA2089@elte.hu> (raw)
In-Reply-To: <20060920234517.GA29171@Krystal>


* Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:

> +menu "Marker configuration"

> +config MARK_SYMBOL
> +	bool "Replace markers with symbols"
> +	  Put symbols in place of markers, useful for kprobe.
> +
> +config MARK_JUMP_CALL
> +	bool "Replace markers with a jump over an inactive function call"
> +	  Put a jump over a call in place of markers.
> +
> +config MARK_JUMP_INLINE
> +	bool "Replace markers with a jump over an inline function"
> +	  Put a jump over an inline function.

This patch still has the fundamental failure of offering 3 annotation 
methods instead of offering _one_ annotation method. I mention it again, 
distros want to have _one_ method they enable, not: "oh, by the way, LTT 
requires MARK_JUMP_CALL, so no matter how low-overhead MARK_SYMBOL is, 
you have to enable MARK_JUMP_CALL anyway".

We have to face it, tracing is a very optional infrastructure, thus it 
has to be _very low (preferably zero in most cases) overhead when 
offered by a kernel binary but kept inactive by the user_ and thus you 
/have to/ program on the edge to get it into the upstream kernel.

It wont be easy to achieve this, and you'll have to work with the other 
tracing projects (and upstream kernel folks) to get one unified markup 
mechanism agreed on, but nevertheless it's possible technologically.

and the only acceptable near-zero-overhead markup scheme proposed so far 
(and suggested by me all along) is the symbol based markup method. 
Symbol based markup also has the advantage that the coupling between the 
kernel and the tracer moves to the symbol space (from the binary 
instruction-stream space), and thus the in-kernel implementation of it 
becomes alot more flexible. Flexibility of the upstream kernel design is 
another thing that we require for 'very optional' features.

Yes, LTT will probably have to embrace kprobes/SystemTap to insert the 
tracepoints themselves, but that's the price we get for uniformity, and 
that's the price you get for _having the markers maintained upstream_.

If after that point upstream cannot optimize kprobes performance to a 
sufficient level, /then/ can we think about /perhaps/ allowing direct 
calls generated into the kernel image. But that decision /must/ be 
driven by distributions and customers. Until then, kprobes based marking 
and tracing will be 'good enough'.

It affects all tracers: SystemTap/LKST has to adapt to such a scheme 
too, because currently there's no markup scheme in the kernel. So this 
is not something 'against' LTT, but something /for/ a unified landscape 
of tracers. (and as i mentioned it before, it will be easy for you to 
offer a simple "LTT speedup patch", which distros and the upstream 
kernel can consider separately. But it must be /optional/.)

So far i have not seen any real arguments against this simple but 
fundamental upstream requirement which i pointed out for v0.1 already.

	Ingo

  parent reply	other threads:[~2006-09-21  4:54 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-20 23:45 [PATCH] Linux Markers 0.4 (+dynamic probe loader) for 2.6.17 Mathieu Desnoyers
2006-09-21  0:13 ` Jeremy Fitzhardinge
2006-09-21  1:58   ` Mathieu Desnoyers
2006-09-21  7:17     ` Jeremy Fitzhardinge
2006-09-21 14:46       ` Mathieu Desnoyers
2006-09-21  4:46 ` Ingo Molnar [this message]
2006-09-21 12:26   ` Roman Zippel
2006-09-21  6:54 ` Richard J Moore

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=20060921044603.GA2089@elte.hu \
    --to=mingo@elte.hu \
    --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=masami.hiramatsu.pt@hitachi.com \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mbligh@google.com \
    --cc=michel.dagenais@polymtl.ca \
    --cc=prasanna@in.ibm.com \
    --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