public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Martin Bligh <mbligh@google.com>
To: "Frank Ch. Eigler" <fche@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	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 09:04:43 -0700	[thread overview]
Message-ID: <4510151B.5070304@google.com> (raw)
In-Reply-To: <20060919154612.GU3951@redhat.com>

Frank Ch. Eigler wrote:
> Hi -
> 
> On Tue, Sep 19, 2006 at 08:11:40AM -0700, Martin J. Bligh wrote:
> 
> 
>>[...]  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 [...]
> 
> 
> Interesting idea.  Are you imagining this instrumented copy being
> built at kernel compile time (something like building a "-g -O0"
> parallel)?  Or compiled anew from original sources after deployment?
> Or on-the-fly binary-level rewriting a la SPIN?

"compiled anew from original sources after deployment" seems the most
practical to do to me. From second hand info on using systemtap, you
seem to need the same compiler and source tree to work from anyway, so
this doesn't seem much of a burden.

>>OK, it's not completely trivial to do, but simpler than kprobes [...]
> 
> None of the three above are that easy.  Do you have an implementation
> idea?

not in detail, but given the problems that the other probe technologies
solved, it seems easy in comparison. It seems like all we'd need to do
is "list all references to function, freeze kernel, update all
references, continue", but perhaps I'm oversimplifying it ... if it's
all just straight calls, it'd seem easy. The freeze would be very short,
it's just poking a few addresses.

Having multiple hooks inside the same function pieced in at different
times, etc gets tricky, but you can always fall back on one of the other
methods if you get something complicated (or enforce some self-dicipline
in userspace on how to compound them together).

Ingo Molnar wrote:
 > yeah, this would be nice - if it werent it for function pointers,
 > and if all kernel functions were relocatable. But if you can think of
 > a method to do this, it would be nice.

Well, it doesn't have to work for everything. But would be much nicer
for when it does work, it seems to me. Which functions are not
relocatable? Function pointers are indeed a problem, for the functions
they're used on, but they're not common. Some simple markup for these
types of functions would fix it easily enough, I'd think.

A more common problem would seem to me to be instrumenting a inlined
function that was pulled into multiple places, but even that doesn't
seem particularly difficult.

M.

  reply	other threads:[~2006-09-19 16:06 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
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 [this message]
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=4510151B.5070304@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