Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +6 −6 Original line number Diff line number Diff line Loading @@ -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); Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +9 −6 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_trace.h +114 −0 Original line number Diff line number Diff line Loading @@ -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 */ /*****************************************************************************/ Loading Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +6 −6 Original line number Diff line number Diff line Loading @@ -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); Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c +9 −6 Original line number Diff line number Diff line Loading @@ -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 */ Loading Loading @@ -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); Loading Loading @@ -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); Loading Loading @@ -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; Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_trace.h +114 −0 Original line number Diff line number Diff line Loading @@ -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 */ /*****************************************************************************/ Loading