Re: [PATCH] Linux Kernel Markers

Ingo Molnar
2006-09-19T15:40:06Z

* Martin J. Bligh <mbligh@google.com> wrote:

> 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.

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.

Ingo