From: David Goulet Date: Wed, 23 Jun 2010 21:17:39 +0000 (-0400) Subject: UST marker.h X-Git-Tag: v0.6~13 X-Git-Url: http://git.lttng.org/?p=ust.git;a=commitdiff_plain;h=b2cc3e5040b641716daa51b863ac5e17ac1a6774 UST marker.h Modification nécessaire pour faire des custom probes avec trace_mark_tp. Sous la recommandation de Michel et Mathieu, il était mieux d'utiliser cela pour les tests de profilage que des trace_mark ou des tracepoints. Ceci étant dit, les résultats avec un test de profilage que j'ai monté, contenant 3 tracepoints, le average perevent était de ~65ns. Maintenant, résultats préliminaires avec les custom probes sur le même test suite que les trace_mark et tracepoints : Average time per event : 0.0000000159 (sec), 0.00002 (msec), 0.01587 (usec), 15.86718 (nsec) Best time [RUN 5] : 0.0000000154 (sec), 0.00002 (msec), 0.01536 (usec), 15.35519 (nsec) Worst time [RUN 6] : 0.0000000166 (sec), 0.00002 (msec), 0.01659 (usec), 16.59236 (nsec) Standard Deviation : 0.0000000004 (sec), 0.00000 (msec), 0.00038 (usec), 0.38116 (nsec) Quand même! ;) Bref, je continue mais si tu veux commenter ou proposer des tests, fait moi signe. A plus David From e1fc903e0cedfc21895b2ad952bb6127d0b3b853 Mon Sep 17 00:00:00 2001 From: David Goulet Date: Wed, 23 Jun 2010 17:04:45 -0400 Subject: [PATCH] Fixed __trace_mark_tp_counter with the usage of DEFINE_MARKER_TP macro. Down to 5 arguments instead of 7 and added registers struct missing. Now, custom probes can be used within UST with trace_mark_tp function --- diff --git a/include/ust/marker.h b/include/ust/marker.h index 0ed1192..d0b06f5 100644 --- a/include/ust/marker.h +++ b/include/ust/marker.h @@ -188,12 +188,12 @@ struct marker { #define __trace_mark_tp_counter(channel, name, unique, call_private, tp_name, tp_cb, format, args...) \ do { \ - struct marker m; \ + struct registers regs; \ void __check_tp_type(void) \ { \ register_trace_##tp_name(tp_cb); \ } \ - DEFINE_MARKER_TP(channel, name, tp_name, tp_cb, format, unique, m);\ + DEFINE_MARKER_TP(channel, name, tp_name, tp_cb, format);\ __mark_check_format(format, ## args); \ (*__mark_##channel##_##name.call)(&__mark_##channel##_##name, \ call_private, ®s, ## args); \