Re: [PATCH] Linux Kernel Markers 0.5 for Linux 2.6.17 (with probe management)

Mathieu Desnoyers
2006-09-21T21:48:05Z

* Ingo Molnar (mingo@elte.hu) wrote:

> "As an example, LTTng traces the page fault handler, when kprobes just
> can't instrument it."
>
> but tracing a raw pagefault at the arch level is a bad idea anyway, we
> want to trace __handle_mm_fault(). That way you can avoid having to
> modify every architecture's pagefault handler ...
>

Then you lose the ability to trace in-kernel minor page faults.

> but the other points remained unanswered as far as i can see.
>

Hi Ingo,

I clearly expressed my position in the previous emails, so did you. You argued
about a use of tracing that is not relevant to my vision of reality, which is :

- Embedded systems developers won't want a breakpoint-based probe
- High performance computing users won't want a breakpoint-based probe
- djprobe is far away from being in an acceptable state on architectures with
very inconvenient erratas (x86).
- kprobe and djprobe cannot access local variables in every cases

For those reasons, I prefer a jump-over-call approach which lets gcc give us the
local variables. No need of DWARF or SystemTAP macro Kung Fu. Just C and a
loadable module.

By no means is it a replacement for a completely dynamic breakpoint-based
instrumentation mechanism. I really think that both mechanism should coexist.

This is my position : I let the distribution/user decide what is appropriate for
their use. My goal is to provide them a flexible mechanism that takes the
multiple variety of uses in account without performance impact if they are not
willing to pay it to benefit from tracing.

With all due respect, yes, there are Linux users different from the typical
Redhat client. If your vision is still limited to this scope after a 500
emails debate, I am afraid that there is very little I can do about it in
one more.

Mathieu

OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68