Message ID | 1339665719.22704.692.camel@edumazet-glaptop |
---|---|
State | RFC, archived |
Delegated to: | David Miller |
Headers | show |
2012/6/14 Eric Dumazet <eric.dumazet@gmail.com>: > On Thu, 2012-06-14 at 10:58 +0200, Jean-Michel Hautbois wrote: >> Hi all, >> >> I have bisected a regression which concerns TX throughput when using bonding. >> I tested only with 10Gbps cards, as it appears when bandwidth need is >> over 1Gbps on my machine. >> I send UDP multicast packets over bonding and observe the tc result. >> >> When KO : >> $>tc -s -d qdisc show dev eth1 >> qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 >> 1 1 1 1 1 1 >> Sent 1106527591 bytes 273802 pkt (dropped 306419, overlimits 0 requeues 223) >> backlog 0b 0p requeues 223 >> >> Ok course, when OK, dropped is 0. >> $>tc -s -d qdisc show dev eth1 >> qdisc pfifo_fast 0: root refcnt 2 bands 3 priomap 1 2 2 2 1 2 0 0 1 1 >> 1 1 1 1 1 1 >> Sent 1648662087 bytes 408009 pkt (dropped 0, overlimits 0 requeues 0) >> backlog 0b 0p requeues 0 >> >> >> Here is the incriminated commit: >> >> fc6055a5ba31e2c14e36e8939f9bf2b6d586a7f5 is the first bad commit >> commit fc6055a5ba31e2c14e36e8939f9bf2b6d586a7f5 > >> net: Introduce skb_orphan_try() > > So you are saying that if you make skb_orphan_try() doing nothing, it > solves your problem ? > > diff --git a/net/core/dev.c b/net/core/dev.c > index cd09819..6df40dd 100644 > --- a/net/core/dev.c > +++ b/net/core/dev.c > @@ -2096,6 +2096,7 @@ static int dev_gso_segment(struct sk_buff *skb, netdev_features_t features) > */ > static inline void skb_orphan_try(struct sk_buff *skb) > { > +#if 0 > struct sock *sk = skb->sk; > > if (sk && !skb_shinfo(skb)->tx_flags) { > @@ -2106,6 +2107,7 @@ static inline void skb_orphan_try(struct sk_buff *skb) > skb->rxhash = sk->sk_hash; > skb_orphan(skb); > } > +#endif > } > > static bool can_checksum_protocol(netdev_features_t features, __be16 protocol) > Yes : [09:44:46]root@debian:~# uname -r 3.2.0 [09:44:50]root@debian:~# tc -s -d qdisc show dev eth1 qdisc mq 0: root Sent 11786861758 bytes 2916943 pkt (dropped 0, overlimits 0 requeues 0) backlog 0b 0p requeues 0 JM -- 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/net/core/dev.c b/net/core/dev.c index cd09819..6df40dd 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2096,6 +2096,7 @@ static int dev_gso_segment(struct sk_buff *skb, netdev_features_t features) */ static inline void skb_orphan_try(struct sk_buff *skb) { +#if 0 struct sock *sk = skb->sk; if (sk && !skb_shinfo(skb)->tx_flags) { @@ -2106,6 +2107,7 @@ static inline void skb_orphan_try(struct sk_buff *skb) skb->rxhash = sk->sk_hash; skb_orphan(skb); } +#endif } static bool can_checksum_protocol(netdev_features_t features, __be16 protocol)