Yes,
LTTng does exactly all that.
Please have a look at the current LTTng patchset :
http://ltt.polymtl.ca/lttng/patch-2.6.26-0.11.tar.bz2
The interface to list markers is currently found in /proc/ltt
Commands like :
cat /proc/ltt (list markers)
And echo -n "connect marker_name default dynamic channel_name"
See the script ltt-armall.sh in the package :
http://ltt.polymtl.ca/lttng/ltt-control-0.50-17072008.tar.gz
To see how to arm all markers listed.
General information (compatibility list and quickstart guide are
available at http://ltt.polymtl.ca). Packages also useful : lttv (trace
analyser, including text dump, filtering, gui...) and a userspace marker
package (only supports x86 32/64 currently).
All these packages support any kind of custom markers, because the
marker names/types are listed in the "facilities_*" control tracefile at
trace start, so the traces are self-described. I also list other stuff
(memory maps, irq handler names, system call handler names) at trace
start so we can dynamically have these mapping, independently of the
architecture.
See :
http://ltt.polymtl.ca/packages/lttv-0.10.0-pre14-17072008.tar.gzhttp://ltt.polymtl.ca/packages/markers-userspace-0.5.tar.bz2
I'll be more than happy to answer your questions.
Mathieu
--
Mathieu Desnoyers
OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
--