On Wed, 2007-04-11 at 15:21 -0400, Mathieu Desnoyers wrote:Markers are not a substitute or preference over kprobes, they augment kprobes by enabling additional functionality.
* Andrew Morton (akpm@xxxxxxxxxxxxxxxxxxxx) wrote:
On Wed, 11 Apr 2007 13:51:11 -0400Quoting Frank Ch. Eigler, from the SystemTAP team :
Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx> wrote:
I am told that the systemtap developers plan to (or are) using thisWhat's this marker stuff about?Hi Russel,
Here is an overview :
infrastructure.
"The LTTng user-space programs use it today. Systemtap used to support
the earlier marker prototype and will be rapidly ported over to this
new API upon acceptance."
If correct: what is their reason for preferring it over kprobes?
Jim's above stated reason is not a consideration for markers. We don't plan to convert the current tapsets to use markers. We do need to augment tapsets with a few markers in the kernel code where it is not easy to put a kprobe in a maintainable fashion -- e.g in the middle of a function.I will let them answer on this one..
I'll take a shot at this one.
First of all, kprobes remains a vital foundation for SystemTap. But
markers are attactive as an alternate source of trace/debug info.
Here's why:
1. Markers will live in the kernel and presumably be kept up to date by
the maintainers of the enclosing code. We have a growing set of tapsets
(probe libraries), each of which "knows" the source code for a certain
area of the kernel. Whenever the underlying kernel code changes (e.g.,
a function or one of its args disappears or is renamed), there's a
chance that the tapset will become invalid until we bring it back in
sync with the kernel. As you can imagine, maintaining tapsets separate
from the kernel source is a maintenance headache. Markers could
mitigate this.
2. Because the kernel code is highly optimized, the kernel's dwarf infoAgreed
doesn't always accurately reflect which variables have which values on
which lines (sometimes even upon entry to a function). A marker is a
way to ensure that values of interest are available to SystemTap at
marked points.
3. Sometimes the overhead of a kprobe probepoint is too much (either inAgreed
terms of time or locking) for the particular hotspot we want to probe.
Jimbye,