From patchwork Mon Jan 18 08:27:20 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Koki Sanagi X-Patchwork-Id: 43049 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 2B76DB7D21 for ; Mon, 18 Jan 2010 19:27:25 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754161Ab0ARI1O (ORCPT ); Mon, 18 Jan 2010 03:27:14 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753661Ab0ARI1O (ORCPT ); Mon, 18 Jan 2010 03:27:14 -0500 Received: from fgwmail5.fujitsu.co.jp ([192.51.44.35]:45277 "EHLO fgwmail5.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754157Ab0ARI1N (ORCPT ); Mon, 18 Jan 2010 03:27:13 -0500 Received: from m4.gw.fujitsu.co.jp ([10.0.50.74]) by fgwmail5.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id o0I8RBhR013205 for (envelope-from sanagi.koki@jp.fujitsu.com); Mon, 18 Jan 2010 17:27:11 +0900 Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id A42F245DE7B for ; Mon, 18 Jan 2010 17:27:11 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 3950A45DE7A for ; Mon, 18 Jan 2010 17:27:11 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 15EF31DB803F for ; Mon, 18 Jan 2010 17:27:11 +0900 (JST) Received: from m107.s.css.fujitsu.com (m107.s.css.fujitsu.com [10.249.87.107]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id D3FEB1DB8042 for ; Mon, 18 Jan 2010 17:27:09 +0900 (JST) Received: from m107.css.fujitsu.com (m107 [127.0.0.1]) by m107.s.css.fujitsu.com (Postfix) with ESMTP id 9B502670007; Mon, 18 Jan 2010 17:27:09 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.101.143]) by m107.s.css.fujitsu.com (Postfix) with ESMTP id 35D03670004; Mon, 18 Jan 2010 17:27:09 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from univ556[192.168.246.143] by univ556 (FujitsuOutboundMailChecker v1.3.1/9992[192.168.246.143]); Mon, 18 Jan 2010 17:27:28 +0900 (JST) Message-ID: <4B541B68.7090101@jp.fujitsu.com> Date: Mon, 18 Jan 2010 17:27:20 +0900 From: Koki Sanagi User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 MIME-Version: 1.0 To: netdev@vger.kernel.org, davem@davemloft.net, nhorman@tuxdriver.com CC: izumi.taku@jp.fujitsu.com, kaneshige.kenji@jp.fujitsu.com Subject: [PATCH 1/5] tracing/events: add tracepoint to netdev layer Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds tracepoints at dev_hard_start_xmit, dev_queue_xmit and netif_receive_skb function. netdev_start_xmit entry of driver's transmit function. netdev_receive_skb entry of netstack(receive). dev_queue_xmit entry of Qdisc. Signed-off-by: Koki Sanagi --- include/trace/events/skb.h | 69 ++++++++++++++++++++++++++++++++++++++++++++ net/core/dev.c | 4 ++ 2 files changed, 73 insertions(+), 0 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h index 4b2be6d..d732f07 100644 --- a/include/trace/events/skb.h +++ b/include/trace/events/skb.h @@ -8,6 +8,75 @@ #include #include +TRACE_EVENT(dev_queue_xmit, + + TP_PROTO(struct sk_buff *skb, + struct net_device *dev), + + TP_ARGS(skb, dev), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( unsigned int, len ) + __string( name, dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __assign_str(name, dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +); + +TRACE_EVENT(netdev_start_xmit, + + TP_PROTO(struct sk_buff *skb, + struct net_device *dev), + + TP_ARGS(skb, dev), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( unsigned int, len ) + __string( name, dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __assign_str(name, dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +); + +TRACE_EVENT(netdev_receive_skb, + + TP_PROTO(struct sk_buff *skb, + struct net_device *dev), + + TP_ARGS(skb, dev), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( unsigned int, len ) + __string( name, dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __assign_str(name, dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +); + /* * Tracepoint for free an sk_buff: */ diff --git a/net/core/dev.c b/net/core/dev.c index a008f69..ef38f8e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -129,6 +129,7 @@ #include #include #include +#include #include "net-sysfs.h" @@ -1810,6 +1811,7 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, int rc = NETDEV_TX_OK; if (likely(!skb->next)) { + trace_netdev_start_xmit(skb, dev); if (!list_empty(&ptype_all)) dev_queue_xmit_nit(skb, dev); @@ -2043,6 +2045,7 @@ int dev_queue_xmit(struct sk_buff *skb) } gso: + trace_dev_queue_xmit(skb, dev); /* Disable soft irqs for various locks below. Also * stops preemption for RCU. */ @@ -2458,6 +2461,7 @@ int netif_receive_skb(struct sk_buff *skb) __get_cpu_var(netdev_rx_stat).total++; + trace_netdev_receive_skb(skb, orig_dev); skb_reset_network_header(skb); skb_reset_transport_header(skb); skb->mac_len = skb->network_header - skb->mac_header;