Infrastructure for tracking driver performance events

Frank Ch. Eigler fche@redhat.com
Wed Jun 24 19:58:00 GMT 2009


Hi, Ben -

> [...]  It has been suggested[2] that this wait-event tracking
> functionality would be far more useful if we could provide stack
> backtraces all the way into user space for each wait event.  [...]

Right.

> Another option seems to be systemtap. It has already been
> documented[3] that this option could provide both user-mode and
> kernel-mode backtraces. [...]  Unfortunately, the systemtap approach
> described in [3] requires that each process have an associated
> "driver" process [...]
> [3] http://sourceware.org/ml/systemtap/2006-q4/msg00198.html

The date on the message you're referencing gives a hint that it's
obsolete.  A newer status of the relevant work (still incomplete!)  is
<http://sourceware.org/ml/systemtap/2009-q2/msg00364.html>.

Systemtap now handles user-space backtraces without such "driver"
processes.  While frame-pointer-based heuristics are available,
systemtap also uses dwarf unwind data to compute more accurate
backtraces for participating user-space processes.  These may be
composed of an identified set of shared libraries / binaries, whose
unwind data is made available to systemtap-generated probe modules for
instant reference.


> [...]  Are there any thoughts on any new generic services that the
> kernel might provide that might make this task easier? [...]

One obstacle to robust backtracing has been the inconsistent presence
of dwarf .cfi directives in all the layers of assembly code involved
in the gap between blocked userspace and some random kernel function.


- FChE



More information about the Systemtap mailing list