From c60a91f21f119d4f14f9b9f7d7abfed6518d6bd7 Mon Sep 17 00:00:00 2001 From: Ravinder Konka Date: Wed, 10 Feb 2016 09:02:20 +0530 Subject: [PATCH] skb: Adding trace event for gso. This patch adds trace events to help with debug for gso feature by identifying the packets(and their lenghts) that are using the segmentation offload feature. Change-Id: Ibfe1194cc63e74c75047040b0c540713d539992e Acked-by: Ashwanth Goli Signed-off-by: Ravinder Konka --- include/trace/events/skb.h | 22 ++++++++++++++++++++++ net/core/dev.c | 1 + 2 files changed, 23 insertions(+) diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h index 0c68ae22da22..95ca6e841212 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -50,6 +50,28 @@ TRACE_EVENT(consume_skb, TP_printk("skbaddr=%p", __entry->skbaddr) ); +TRACE_EVENT(print_skb_gso, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field(void *, skbaddr) + __field(int , len) + __field(int , data_len) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __entry->data_len = skb->data_len; + ), + + TP_printk("GSO: skbaddr=%p, len=%d, data_len=%d", + __entry->skbaddr, __entry->len, __entry->data_len) +); + TRACE_EVENT(skb_copy_datagram_iovec, TP_PROTO(const struct sk_buff *skb, int len), diff --git a/net/core/dev.c b/net/core/dev.c index f1a645cc3573..426dceb2ee03 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2768,6 +2768,7 @@ static struct sk_buff *validate_xmit_skb(struct sk_buff *skb, struct net_device if (netif_needs_gso(skb, features)) { struct sk_buff *segs; + trace_print_skb_gso(skb); segs = skb_gso_segment(skb, features); if (IS_ERR(segs)) { goto out_kfree_skb;