aboutsummaryrefslogtreecommitdiff
path: root/include/trace/net.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/trace/net.h')
-rw-r--r--include/trace/net.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/include/trace/net.h b/include/trace/net.h
new file mode 100644
index 00000000000..91a0f02d0bc
--- /dev/null
+++ b/include/trace/net.h
@@ -0,0 +1,40 @@
+#ifndef _TRACE_LTTNG_NET_H
+#define _TRACE_LTTNG_NET_H
+
+#include <linux/tracepoint.h>
+
+struct sk_buff;
+DECLARE_TRACE(lttng_net_dev_xmit,
+ TP_PROTO(struct sk_buff *skb),
+ TP_ARGS(skb));
+DECLARE_TRACE(lttng_net_dev_receive,
+ TP_PROTO(struct sk_buff *skb),
+ TP_ARGS(skb));
+DECLARE_TRACE(net_tcpv4_rcv,
+ TP_PROTO(struct sk_buff *skb),
+ TP_ARGS(skb));
+DECLARE_TRACE(net_udpv4_rcv,
+ TP_PROTO(struct sk_buff *skb),
+ TP_ARGS(skb));
+
+/*
+ * Note these first 2 traces are actually in __napi_schedule and net_rx_action
+ * respectively. The former is in __napi_schedule because it uses at-most-once
+ * logic and placing it in the calling routine (napi_schedule) would produce
+ * countless trace events that were effectively no-ops. napi_poll is
+ * implemented in net_rx_action, because thats where we do our polling on
+ * devices. The last trace point is in napi_complete, right where you would
+ * think it would be.
+ */
+struct napi_struct;
+DECLARE_TRACE(net_napi_schedule,
+ TP_PROTO(struct napi_struct *n),
+ TP_ARGS(n));
+DECLARE_TRACE(net_napi_poll,
+ TP_PROTO(struct napi_struct *n),
+ TP_ARGS(n));
+DECLARE_TRACE(net_napi_complete,
+ TP_PROTO(struct napi_struct *n),
+ TP_ARGS(n));
+
+#endif