]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: add tracepoints for pthread run, stop
authorQuentin Young <qlyoung@nvidia.com>
Tue, 15 Sep 2020 04:28:55 +0000 (00:28 -0400)
committerQuentin Young <qlyoung@nvidia.com>
Fri, 23 Oct 2020 19:13:51 +0000 (15:13 -0400)
Signed-off-by: Quentin Young <qlyoung@nvidia.com>
lib/frr_pthread.c
lib/trace.h

index da9594ed808c12d9f3b34ad33d5bee085ad902ed..82d0c8c49f4ddf58fc9b59fb0fd38a497a89abc3 100644 (file)
@@ -28,6 +28,7 @@
 #include "memory.h"
 #include "linklist.h"
 #include "zlog.h"
+#include "trace.h"
 
 DEFINE_MTYPE_STATIC(LIB, FRR_PTHREAD, "FRR POSIX Thread")
 DEFINE_MTYPE_STATIC(LIB, PTHREAD_PRIM, "POSIX sync primitives")
@@ -167,6 +168,8 @@ int frr_pthread_run(struct frr_pthread *fpt, const pthread_attr_t *attr)
        sigfillset(&blocksigs);
        pthread_sigmask(SIG_BLOCK, &blocksigs, &oldsigs);
 
+       tracepoint(frr_libfrr, frr_pthread_run, fpt->name);
+
        fpt->rcu_thread = rcu_thread_prepare();
        ret = pthread_create(&fpt->thread, attr, frr_pthread_inner, fpt);
 
@@ -204,6 +207,8 @@ void frr_pthread_notify_running(struct frr_pthread *fpt)
 
 int frr_pthread_stop(struct frr_pthread *fpt, void **result)
 {
+       tracepoint(frr_libfrr, frr_pthread_stop, fpt->name);
+
        int ret = (*fpt->attr.stop)(fpt, result);
        memset(&fpt->thread, 0x00, sizeof(fpt->thread));
        return ret;
index d605cad0c4b9ccf32685bfe18cd4d5b0ef93d2b4..e6d0f115e4aeccd844017e57b6c2f33c9a385e63 100644 (file)
@@ -104,6 +104,28 @@ THREAD_OPERATION_TRACEPOINT_INSTANCE(thread_cancel)
 THREAD_OPERATION_TRACEPOINT_INSTANCE(thread_cancel_async)
 THREAD_OPERATION_TRACEPOINT_INSTANCE(thread_call)
 
+TRACEPOINT_EVENT(
+       frr_libfrr,
+       frr_pthread_run,
+       TP_ARGS(
+               char *, name
+       ),
+       TP_FIELDS(
+               ctf_string(frr_pthread_name, name)
+       )
+)
+
+TRACEPOINT_EVENT(
+       frr_libfrr,
+       frr_pthread_stop,
+       TP_ARGS(
+               char *, name
+       ),
+       TP_FIELDS(
+               ctf_string(frr_pthread_name, name)
+       )
+)
+
 /* clang-format on */
 
 #include <lttng/tracepoint-event.h>