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]>