[ltt-dev] [RFC] UST instrumentation API

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Wed Apr 13 16:59:08 EDT 2011


OK, so I took care of most of the instrumentation API, but some
questions need discussion.

* Tracepoints:

 - Currently handled:

#include <ust/tracepoint.h>

tracepoint(name, ...)
register_tracepoint(name, ...)
unregister_tracepoint(name, ...)
TRACEPOINT_LIB

- Questions/suggestions:

About:
DECLARE_TRACE()
DEFINE_TRACE()

-> given that the API presented to users will be "TRACE_EVENT()" (which
we should rename to something else to eliminate confusion), it might
make sense to make both of DECLARE_TRACE and DEFINE_TRACE internal to
tracepoints and don't expose them to the users.

TRACE_EVENT() could be the macro replacing these, but I would recommend
using a name like "TRACEPOINT_TEMPLATE()", which is what it really is.

TP_PARAMS()
TP_PROTO()
TP_ARGS()

I recommend to merge all these into "TP_PARAMS()". Through the
"TRACEPOINT_TEMPLATE()" macro, these will all become internal anyway, so
not exposed to the users.


UST Markers (main API members):

#include <ust/marker.h>

ust_marker(name, "fmt", ...)
UST_MARKER_NOARGS
GET_UST_MARKER()
DEFINE_UST_MARKER(name, ...)
ust_marker_probe_unregister()
ust_marker_probe_register()
ust_marker_synchronize_unregister()
UST_MARKER_LIB

Will be eventually phased-out with the new TRACEPOINT_TEMPLATE() and CTF:
DEFINE_UST_MARKER_TP()
ust_marker_tp()

Feedback is welcome,

Thanks,

Mathieu

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list