laforge has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/dahdi-linux/+/42008?usp=email )


Change subject: WIP: attempt to introduce tracepoints to dahdi (trunkdev)
......................................................................

WIP: attempt to introduce tracepoints to dahdi (trunkdev)

Change-Id: I800cdd6f6d44752ebf2171e8beeb8fd646e00774
---
M drivers/dahdi/trunkdev/trunkdev.c
A include/dahdi/dahdi_trace.h
2 files changed, 50 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/dahdi-linux refs/changes/08/42008/1

diff --git a/drivers/dahdi/trunkdev/trunkdev.c 
b/drivers/dahdi/trunkdev/trunkdev.c
index 6518109..1d5a8a5 100644
--- a/drivers/dahdi/trunkdev/trunkdev.c
+++ b/drivers/dahdi/trunkdev/trunkdev.c
@@ -63,6 +63,9 @@
        } dahdi;
 };

+#define CREATE_TRACE_POINTS
+#include <dahdi/dahdi_trace.h>
+
 /* process one incoming E1 frame (32 bytes; one for each TS) */
 static void _span_demux_one_frame(struct dahdi_trunkdev *td, const uint8_t 
*data)
 {
@@ -202,6 +205,8 @@
         * _dahdi_receive() via _span_demux_one_frame(), this would lead to 
re-entrancy */
        BUG_ON(is_master);

+       trace_trunkdev_tick(td);
+
        /* trigger transmission + reception of E1 frames */
        for (i = 0; i < DAHDI_CHUNKSIZE; i++) {
                uint8_t frame[32];
@@ -537,9 +542,10 @@
                if (rc < 0) {
                        /* insufficient data available */
                        if (file->f_flags & O_NONBLOCK) {
-                               if (copied == 0)
+                               if (copied == 0) {
+                                       trace_trunkdev_read_eagain(td);
                                        return -EAGAIN;
-                               else
+                               } else
                                        return copied;
                        }
                        /* blocking wait for frames in FIFO or for device 
disappearing */
diff --git a/include/dahdi/dahdi_trace.h b/include/dahdi/dahdi_trace.h
new file mode 100644
index 0000000..0a4443a
--- /dev/null
+++ b/include/dahdi/dahdi_trace.h
@@ -0,0 +1,42 @@
+
+#if !defined(_TRACE_DAHDI_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_DAHDI_H
+
+#include <linux/tracepoint.h>
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM dahdi
+
+TRACE_EVENT(trunkdev_tick,
+       TP_PROTO(struct dahdi_trunkdev *td),
+       TP_ARGS(td),
+       TP_STRUCT__entry(
+               __array(        char,           name,   40 )
+       ),
+       TP_fast_assign(
+               strscpy(__entry->name, td->dahdi.span.name, 40);
+       ),
+       TP_printk("name: %s", __entry->name)
+);
+
+TRACE_EVENT(trunkdev_read_eagain,
+       TP_PROTO(struct dahdi_trunkdev *td),
+       TP_ARGS(td),
+       TP_STRUCT__entry(
+               __array(        char,           name,   40 )
+       ),
+       TP_fast_assign(
+               strscpy(__entry->name, td->dahdi.span.name, 40);
+       ),
+       TP_printk("name: %s", __entry->name)
+);
+
+#endif
+
+#undef TRACE_INCLUDE_PATH
+#define TRACE_INCLUDE_PATH dahdi
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE dahdi_trace
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>

--
To view, visit https://gerrit.osmocom.org/c/dahdi-linux/+/42008?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: dahdi-linux
Gerrit-Branch: master
Gerrit-Change-Id: I800cdd6f6d44752ebf2171e8beeb8fd646e00774
Gerrit-Change-Number: 42008
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <[email protected]>

Reply via email to