Patchwork net: Add debug info to track down GSO checksum bug

login
register
mail settings
Submitter Herbert Xu
Date Jan. 16, 2009, 7:22 a.m.
Message ID <20090116072251.GA13327@gondor.apana.org.au>
Download mbox | patch
Permalink /patch/18921/
State Accepted
Delegated to: David Miller
Headers show

Comments

Herbert Xu - Jan. 16, 2009, 7:22 a.m.
Hi Dave:

net: Add debug info to track down GSO checksum bug

I'm trying to track down why people're hitting the checksum warning
in skb_gso_segment.  As the problem seems to be hitting lots of
people and I can't reproduce it or locate the bug, here is a patch
to print out more details which hopefully should help us to track
this down.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>


Thanks,
David Miller - Jan. 19, 2009, 6:08 a.m.
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri, 16 Jan 2009 18:22:51 +1100

> net: Add debug info to track down GSO checksum bug
> 
> I'm trying to track down why people're hitting the checksum warning
> in skb_gso_segment.  As the problem seems to be hitting lots of
> people and I can't reproduce it or locate the bug, here is a patch
> to print out more details which hopefully should help us to track
> this down.
> 
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Herbert, do you still want me to add this debugging hack to
the tree?
--
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
Herbert Xu - Jan. 19, 2009, 11:16 a.m.
On Sun, Jan 18, 2009 at 10:08:03PM -0800, David Miller wrote:
> From: Herbert Xu <herbert@gondor.apana.org.au>
> Date: Fri, 16 Jan 2009 18:22:51 +1100
> 
> > net: Add debug info to track down GSO checksum bug
> > 
> > I'm trying to track down why people're hitting the checksum warning
> > in skb_gso_segment.  As the problem seems to be hitting lots of
> > people and I can't reproduce it or locate the bug, here is a patch
> > to print out more details which hopefully should help us to track
> > this down.
> > 
> > Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
> 
> Herbert, do you still want me to add this debugging hack to
> the tree?

Yes please do unless there is a better way in finding the bug
and fixing it :)

Thanks,
David Miller - Jan. 20, 2009, 12:26 a.m.
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri, 16 Jan 2009 18:22:51 +1100

> net: Add debug info to track down GSO checksum bug
> 
> I'm trying to track down why people're hitting the checksum warning
> in skb_gso_segment.  As the problem seems to be hitting lots of
> people and I can't reproduce it or locate the bug, here is a patch
> to print out more details which hopefully should help us to track
> this down.
> 
> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

Applied.
--
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

Patch

diff --git a/net/core/dev.c b/net/core/dev.c
index b715a55..752dd11 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1534,7 +1534,19 @@  struct sk_buff *skb_gso_segment(struct sk_buff *skb, int features)
 	skb->mac_len = skb->network_header - skb->mac_header;
 	__skb_pull(skb, skb->mac_len);
 
-	if (WARN_ON(skb->ip_summed != CHECKSUM_PARTIAL)) {
+	if (unlikely(skb->ip_summed != CHECKSUM_PARTIAL)) {
+		struct net_device *dev = skb->dev;
+		struct ethtool_drvinfo info = {};
+
+		if (dev && dev->ethtool_ops && dev->ethtool_ops->get_drvinfo)
+			dev->ethtool_ops->get_drvinfo(dev, &info);
+
+		WARN(1, "%s: caps=(0x%lx, 0x%lx) len=%d data_len=%d "
+			"ip_summed=%d",
+		     info.driver, dev ? dev->features : 0L,
+		     skb->sk ? skb->sk->sk_route_caps : 0L,
+		     skb->len, skb->data_len, skb->ip_summed);
+
 		if (skb_header_cloned(skb) &&
 		    (err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC)))
 			return ERR_PTR(err);