[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.0908281643190.25717@gandalf.stny.rr.com>
Date: Fri, 28 Aug 2009 16:50:13 -0400 (EDT)
From: Steven Rostedt <rostedt@...dmis.org>
To: Neil Horman <nhorman@...driver.com>
cc: netdev@...r.kernel.org, davem@...emloft.net, mingo@...e.hu
Subject: Re: [PATCH] skb: Augment skb_copy_datagram_iovec TRACE_EVENT to dump
more info
On Fri, 28 Aug 2009, Neil Horman wrote:
> Hey all-
> As promised in our previous discussion, I've augmented the
> skb_copy_datagram_iovec TRACE_EVENT to dump out the info I was previously
> gathering in the ftrace module thats been removed. This patch gives me
> everything I need. Tested and working by me
>
> Signed-off-by: Neil Horman <nhorman@...driver.com>
Much better :-)
>
> Neil
>
>
> skb.h | 26 +++++++++++++++++++++++---
> 1 file changed, 23 insertions(+), 3 deletions(-)
>
>
> diff --git a/include/trace/events/skb.h b/include/trace/events/skb.h
> index 4b2be6d..45b9a3f 100644
> --- a/include/trace/events/skb.h
> +++ b/include/trace/events/skb.h
> @@ -7,6 +7,7 @@
> #include <linux/skbuff.h>
> #include <linux/netdevice.h>
> #include <linux/tracepoint.h>
> +#include <net/sock.h>
>
> /*
> * Tracepoint for free an sk_buff:
> @@ -42,16 +43,35 @@ TRACE_EVENT(skb_copy_datagram_iovec,
> TP_ARGS(skb, len),
>
> TP_STRUCT__entry(
> - __field( const void *, skbaddr )
> + __field( const struct sk_buff *, skb )
> __field( int, len )
> + __field( int, anid )
> + __field( int, cnid )
> + __field( int, rx_queue )
> + __dynamic_array(char, name, IFNAMSIZ )
For string fields we have a __string macro:
__string( char, name )
> ),
>
> TP_fast_assign(
> - __entry->skbaddr = skb;
> + struct net_device *dev = NULL;
> + __entry->skb = skb;
> __entry->len = len;
> + __entry->anid = page_to_nid(virt_to_page(skb->data));
> + __entry->cnid = cpu_to_node(smp_processor_id());
> + __entry->rx_queue = skb->queue_mapping;
> + if (skb->sk) {
> + dev = dev_get_by_index(sock_net(skb->sk), skb->iif);
> + }
Nitpick, but this should still use normal Linux styling:
if (skb->sk)
dev = dev_get_by_index(sock_net(skb->sk), skb->iif);
> + if (dev) {
> + __assign_str(name, dev->name);
> + dev_put(dev);
> + } else {
> + __assign_str(name, "Unknown");
> + }
And remove the extra braces here too.
> ),
>
> - TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len)
> + TP_printk("skb=%p anid=%d cnid=%d len=%d rx_queue=%d name=%s",
> + __entry->skb, __entry->anid, __entry->cnid,
> + __entry->len, __entry->rx_queue, __get_str(name))
> );
>
> #endif /* _TRACE_SKB_H */
>
Other than that, this looks good.
Acked-by: Steven Rostedt <rostedt@...dmis.org>
-- Steve
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists