summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRavinder Konka <rkonka@codeaurora.org>2016-02-10 09:02:20 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:09:48 -0700
commitc60a91f21f119d4f14f9b9f7d7abfed6518d6bd7 (patch)
tree55ccc74faf4b155823a792a381c7da1bdbd9d2a6
parent410646778a98f65bd73a82d29734fe0f090e27b7 (diff)
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 <ashwanth@qti.qualcomm.com> Signed-off-by: Ravinder Konka <rkonka@codeaurora.org>
-rw-r--r--include/trace/events/skb.h22
-rw-r--r--net/core/dev.c1
2 files changed, 23 insertions, 0 deletions
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;