Messages in this thread | | | Date | Tue, 19 Sep 2006 17:31:07 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH] Linux Kernel Markers |
| |
* 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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |