[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