UST marker.h
authorDavid Goulet <david.goulet@polymtl.ca>
Wed, 23 Jun 2010 21:17:39 +0000 (17:17 -0400)
committerPierre-Marc Fournier <pierre-marc.fournier@polymtl.ca>
Mon, 5 Jul 2010 19:49:14 +0000 (15:49 -0400)
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 <david.goulet@polymtl.ca>
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

include/ust/marker.h

index 0ed119273c182778cbb8655e5b5dc413c0edd26d..d0b06f50e813a7b6461caa08f24b5b00ae064786 100644 (file)
@@ -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, &regs, ## args);                          \
This page took 0.027014 seconds and 4 git commands to generate.