This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
R.F.C. Should we abandon User-land probes?
- From: James Dickens <jamesd dot wi at gmail dot com>
- To: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Thu, 20 Oct 2005 13:15:59 -0500
- Subject: R.F.C. Should we abandon User-land probes?
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=lb764X5F4KoNkMeEGcjUI5LG6695r8cW6JoRjkYUCwTmLrhfoogqLVD60jb+Di6GCmEhSfFF3bfjqvv3k88ZW1amF5FbGESO/b23JZCqiDFBG4RR4q/0WmNX+Oc4DzWpbXg0cqSE1IirSVAAoR3x5eoHyQH+7nDAH097V5uEk0k=
Hi
Because of Systemtap's language lack of support for structs, unions,
typedefs, Systemtap ends up just being a counter, couldn't a userland
app be written to count the number of times a function is called.
The lack of support for those language construct is bad enough for
kernel probes, it can be worked around with pre-made tapsets, but are
we going to write custom tapsets for every app every written?
Guru-mode is no solution, do we have to disable all the work the
Systemtap coders to make Systemtap as safe as possible. Guru-mode can
never be used in a production system without lots of testing. In the
end it would be easier to use other methods, to debug the problem.
Resorting to Guru-mode makes the system unstable. You end up debugging
your script, instead of debugging the app.
Further more, the chance of having an app pass a bad pointer increases
dramatically and may even be the reason they are probing the app in
the first place. As we all know passing a bad pointer in a userland
app, crashes the app, but do the same in the kernel we get an oops, or
the system crashes. You may even write code to handle such events in
Systemtap but that isn't used in guru-mode.
The only way I see that Systemtap can be useful with userland probes
is to implement support for structs, unions and typedefs. It would be
even more helpful if you implement cpp support, so you can include
header files into scripts.
James Dickens