diff options
| -rw-r--r-- | include/trace/events/skb.h | 22 | ||||
| -rw-r--r-- | net/core/dev.c | 1 |
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; |
