Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c296134 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drivers: net: rmnet: introduce rmnet traces"

parents 1c0ee441 5cc0f9c4
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -116,13 +116,13 @@ enum rmnet_trace_func {
};

enum rmnet_trace_evt {
	RMNET_PERF_DLVR_SKB,
	RMNET_DLVR_SKB,
	RMNET_RCV_FROM_PND,
	RMNET_PERF_TX_UL_PKT,
	RMNET_DEV_Q_XMIT,
	RMNET_NAPI_GRO_FLUSH,
	RMNET_NW_STACK_RX,
	RMNET_NW_STACK_TX,
	RMNET_TX_UL_PKT,
	NW_STACK_DEV_Q_XMIT,
	NW_STACK_NAPI_GRO_FLUSH,
	NW_STACK_RX,
	NW_STACK_TX,
};

int rmnet_is_real_dev_registered(const struct net_device *real_dev);
+9 −6
Original line number Diff line number Diff line
@@ -45,6 +45,9 @@ EXPORT_TRACEPOINT_SYMBOL(rmnet_shs_wq_err);
EXPORT_TRACEPOINT_SYMBOL(rmnet_perf_low);
EXPORT_TRACEPOINT_SYMBOL(rmnet_perf_high);
EXPORT_TRACEPOINT_SYMBOL(rmnet_perf_err);
EXPORT_TRACEPOINT_SYMBOL(rmnet_low);
EXPORT_TRACEPOINT_SYMBOL(rmnet_high);
EXPORT_TRACEPOINT_SYMBOL(rmnet_err);

/* Helper Functions */

@@ -94,8 +97,8 @@ rmnet_deliver_skb(struct sk_buff *skb, struct rmnet_port *port)
	int (*rmnet_shs_stamp)(struct sk_buff *skb, struct rmnet_port *port);
	struct rmnet_priv *priv = netdev_priv(skb->dev);

	trace_rmnet_perf_low(RMNET_MODULE, RMNET_PERF_DLVR_SKB, 0xDEF, 0xDEF,
			     0xDEF, 0xDEF, NULL, NULL);
	trace_rmnet_low(RMNET_MODULE, RMNET_DLVR_SKB, 0xDEF, 0xDEF,
			0xDEF, 0xDEF, (void *)skb, NULL);
	skb_reset_transport_header(skb);
	skb_reset_network_header(skb);
	rmnet_vnd_rx_fixup(skb->dev, skb->len);
@@ -313,7 +316,7 @@ rx_handler_result_t rmnet_rx_handler(struct sk_buff **pskb)
	if (skb->pkt_type == PACKET_LOOPBACK)
		return RX_HANDLER_PASS;

	trace_rmnet_perf_low(RMNET_MODULE, RMNET_RCV_FROM_PND, 0xDEF,
	trace_rmnet_low(RMNET_MODULE, RMNET_RCV_FROM_PND, 0xDEF,
			0xDEF, 0xDEF, 0xDEF, NULL, NULL);
	dev = skb->dev;
	port = rmnet_get_port(dev);
@@ -345,8 +348,8 @@ void rmnet_egress_handler(struct sk_buff *skb)
	int err;
	u32 skb_len;

	trace_rmnet_perf_low(RMNET_MODULE, RMNET_PERF_TX_UL_PKT, 0xDEF, 0xDEF,
			     0xDEF, 0xDEF, (void *)skb, NULL);
	trace_rmnet_low(RMNET_MODULE, RMNET_TX_UL_PKT, 0xDEF, 0xDEF, 0xDEF,
			0xDEF, (void *)skb, NULL);
	sk_pacing_shift_update(skb->sk, 8);

	orig_dev = skb->dev;
+114 −0
Original line number Diff line number Diff line
@@ -21,6 +21,120 @@
#include <linux/skbuff.h>
#include <linux/tracepoint.h>

/*****************************************************************************/
/* Trace events for rmnet module */
/*****************************************************************************/
TRACE_EVENT
	(rmnet_low,

	 TP_PROTO(u8 func, u8 evt, u32 uint1, u32 uint2,
		  u64 ulong1, u64 ulong2, void *ptr1, void *ptr2),

	 TP_ARGS(func, evt, uint1, uint2, ulong1, ulong2, ptr1, ptr2),

	 TP_STRUCT__entry(
		__field(u8, func)
		__field(u8, evt)
		__field(u32, uint1)
		__field(u32, uint2)
		__field(u64, ulong1)
		__field(u64, ulong2)
		__field(void *, ptr1)
		__field(void *, ptr2)
	 ),

	 TP_fast_assign(
		__entry->func = func;
		__entry->evt = evt;
		__entry->uint1 = uint1;
		__entry->uint2 = uint2;
		__entry->ulong1 = ulong1;
		__entry->ulong2 = ulong2;
		__entry->ptr1 = ptr1;
		__entry->ptr2 = ptr2;
	 ),

	 TP_printk("fun:%u ev:%u u1:%u u2:%u ul1:%lu ul2:%lu p1:0x%pK p2:0x%pK",
		   __entry->func, __entry->evt,
		   __entry->uint1, __entry->uint2,
		   __entry->ulong1, __entry->ulong2,
		   __entry->ptr1, __entry->ptr2)
)

TRACE_EVENT
	(rmnet_high,

	 TP_PROTO(u8 func, u8 evt, u32 uint1, u32 uint2,
		  u64 ulong1, u64 ulong2, void *ptr1, void *ptr2),

	 TP_ARGS(func, evt, uint1, uint2, ulong1, ulong2, ptr1, ptr2),

	 TP_STRUCT__entry(
		__field(u8, func)
		__field(u8, evt)
		__field(u32, uint1)
		__field(u32, uint2)
		__field(u64, ulong1)
		__field(u64, ulong2)
		__field(void *, ptr1)
		__field(void *, ptr2)
	 ),

	 TP_fast_assign(
		__entry->func = func;
		__entry->evt = evt;
		__entry->uint1 = uint1;
		__entry->uint2 = uint2;
		__entry->ulong1 = ulong1;
		__entry->ulong2 = ulong2;
		__entry->ptr1 = ptr1;
		__entry->ptr2 = ptr2;
	 ),

	 TP_printk("fun:%u ev:%u u1:%u u2:%u ul1:%lu ul2:%lu p1:0x%pK p2:0x%pK",
		   __entry->func, __entry->evt,
		   __entry->uint1, __entry->uint2,
		   __entry->ulong1, __entry->ulong2,
		   __entry->ptr1, __entry->ptr2)
)

TRACE_EVENT
	(rmnet_err,

	 TP_PROTO(u8 func, u8 evt, u32 uint1, u32 uint2,
		  u64 ulong1, u64 ulong2, void *ptr1, void *ptr2),

	 TP_ARGS(func, evt, uint1, uint2, ulong1, ulong2, ptr1, ptr2),

	 TP_STRUCT__entry(
		__field(u8, func)
		__field(u8, evt)
		__field(u32, uint1)
		__field(u32, uint2)
		__field(u64, ulong1)
		__field(u64, ulong2)
		__field(void *, ptr1)
		__field(void *, ptr2)
	 ),

	 TP_fast_assign(
		__entry->func = func;
		__entry->evt = evt;
		__entry->uint1 = uint1;
		__entry->uint2 = uint2;
		__entry->ulong1 = ulong1;
		__entry->ulong2 = ulong2;
		__entry->ptr1 = ptr1;
		__entry->ptr2 = ptr2;
	 ),

	 TP_printk("fun:%u ev:%u u1:%u u2:%u ul1:%lu ul2:%lu p1:0x%pK p2:0x%pK",
		   __entry->func, __entry->evt,
		   __entry->uint1, __entry->uint2,
		   __entry->ulong1, __entry->ulong2,
		   __entry->ptr1, __entry->ptr2)
)

/*****************************************************************************/
/* Trace events for rmnet_perf module */
/*****************************************************************************/