Thread (15 messages) flat view 15 messages, 4 authors, 2012-12-11

RE: ipgre rss is broken since gro

From: Dmitry Kravkov <hidden>
Date: 2012-12-10 19:20:38

-----Original Message-----
From: Eric Dumazet [mailto:eric.dumazet@gmail.com]
Sent: Monday, December 10, 2012 6:55 PM
To: Dmitry Kravkov
Cc: Eric Dumazet; netdev@vger.kernel.org
Subject: RE: ipgre rss is broken since gro

On Mon, 2012-12-10 at 11:32 +0000, Dmitry Kravkov wrote:


dropped:51610  so obviously  one cpu is fully loaded.
Link partner continued pushing data overnight
quoted hunk ↗ jump to hunk
I believe performance problem might come from the
skb_set_queue_mapping(skb, 0); in __skb_tunnel_rx()

So all packets are queued into a single GRO queue, instead of being
split as intended in multiple queues.

I cant find why we must clear queue_mapping, so could you try :

diff --git a/include/net/dst.h b/include/net/dst.h
index 9a78810..4cb27df 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -329,7 +329,6 @@ static inline void __skb_tunnel_rx(struct sk_buff *skb,
struct net_device *dev)
 	 */
 	if (!skb->l4_rxhash)
 		skb->rxhash = 0;
-	skb_set_queue_mapping(skb, 0);
 	skb_dst_drop(skb);
 	nf_reset(skb);
 }
Yep, this resolved the issue - Interface is functional after 3 and 100 TCP connections. Thanks
   
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help