Okay.  I just thought that since we were already making changes in that
area it would be best to take care of everything all at once.

I'll wait for the next patch to come though.

Thanks,

Alex

On 09/11/2013 10:40 AM, Eric Dumazet wrote:
> Alexander, I think its fine.
>
> The other patch will also be a stable candidate, when available in
> Linus tree.
>
>
>
> On Wed, Sep 11, 2013 at 10:25 AM, Alexander Duyck
> <[email protected] <mailto:[email protected]>> wrote:
>
>     On 09/11/2013 09:54 AM, [email protected]
>     <mailto:[email protected]> wrote:
>     > This is a note to let you know that I've just added the patch titled
>     >
>     >     net: revert 8728c544a9c ("net: dev_pick_tx() fix")
>     >
>     > to the 3.10-stable tree which can be found at:
>     >    
>     
> http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
>     >
>     > The filename of the patch is:
>     >      net-revert-8728c544a9c-net-dev_pick_tx-fix.patch
>     > and it can be found in the queue-3.10 subdirectory.
>     >
>     > If you, or anyone else, feels it should not be added to the
>     stable tree,
>     > please let <[email protected]
>     <mailto:[email protected]>> know about it.
>     >
>     >
>     > From e8b87e3d4dd56f2edc4fa09bc63681af9d4be0c5 Mon Sep 17
>     00:00:00 2001
>     > From: Eric Dumazet <[email protected]
>     <mailto:[email protected]>>
>     > Date: Wed, 28 Aug 2013 18:10:43 -0700
>     > Subject: net: revert 8728c544a9c ("net: dev_pick_tx() fix")
>     >
>     > From: Eric Dumazet <[email protected]
>     <mailto:[email protected]>>
>     >
>     > [ Upstream commit 702821f4ea6f68db18aa1de7d8ed62c6ba586a64 ]
>     >
>     > commit 8728c544a9cbdc ("net: dev_pick_tx() fix") and commit
>     > b6fe83e9525a ("bonding: refine IFF_XMIT_DST_RELEASE capability")
>     > are quite incompatible : Queue selection is disabled because skb
>     > dst was dropped before entering bonding device.
>     >
>     > This causes major performance regression, mainly because TCP packets
>     > for a given flow can be sent to multiple queues.
>     >
>     > This is particularly visible when using the new FQ packet scheduler
>     > with MQ + FQ setup on the slaves.
>     >
>     > We can safely revert the first commit now that 416186fbf8c5b
>     > ("net: Split core bits of netdev_pick_tx into __netdev_pick_tx")
>     > properly caps the queue_index.
>     >
>     > Reported-by: Xi Wang <[email protected] <mailto:[email protected]>>
>     > Diagnosed-by: Xi Wang <[email protected] <mailto:[email protected]>>
>     > Signed-off-by: Eric Dumazet <[email protected]
>     <mailto:[email protected]>>
>     > Cc: Tom Herbert <[email protected] <mailto:[email protected]>>
>     > Cc: Alexander Duyck <[email protected]
>     <mailto:[email protected]>>
>     > Cc: Denys Fedorysychenko <[email protected]
>     <mailto:[email protected]>>
>     > Signed-off-by: David S. Miller <[email protected]
>     <mailto:[email protected]>>
>     > Signed-off-by: Greg Kroah-Hartman <[email protected]
>     <mailto:[email protected]>>
>     > ---
>     >  net/core/flow_dissector.c |   11 +++--------
>     >  1 file changed, 3 insertions(+), 8 deletions(-)
>     >
>     > --- a/net/core/flow_dissector.c
>     > +++ b/net/core/flow_dissector.c
>     > @@ -345,14 +345,9 @@ u16 __netdev_pick_tx(struct net_device *
>     >               if (new_index < 0)
>     >                       new_index = skb_tx_hash(dev, skb);
>     >
>     > -             if (queue_index != new_index && sk) {
>     > -                     struct dst_entry *dst =
>     > -                                
>     rcu_dereference_check(sk->sk_dst_cache, 1);
>     > -
>     > -                     if (dst && skb_dst(skb) == dst)
>     > -                             sk_tx_queue_set(sk, queue_index);
>     > -
>     > -             }
>     > +             if (queue_index != new_index && sk &&
>     > +                 rcu_access_pointer(sk->sk_dst_cache))
>     > +                     sk_tx_queue_set(sk, queue_index);
>     >
>     >               queue_index = new_index;
>     >       }
>     >
>     >
>     > Patches currently in stable-queue which might be from
>     [email protected] <mailto:[email protected]> are
>     >
>     >
>     
> queue-3.10/ip_gre-fix-ipgre_header-to-return-correct-offset-mime-version-1.0.patch
>     > queue-3.10/tcp-cubic-fix-overflow-error-in-bictcp_update.patch
>     > queue-3.10/tcp-cubic-fix-bug-in-bictcp_acked.patch
>     > queue-3.10/net-revert-8728c544a9c-net-dev_pick_tx-fix.patch
>     >
>     
> queue-3.10/net-ipv6-tcp-fix-potential-use-after-free-in-tcp_v6_do_rcv.patch
>     > queue-3.10/net-check-net.core.somaxconn-sysctl-values.patch
>     > queue-3.10/htb-fix-sign-extension-bug.patch
>     > queue-3.10/fib_trie-remove-potential-out-of-bound-access.patch
>
>
>     This is flawed. As per a patch Eric Dumazet sent out to netdev it
>     should
>     be sk_tx_queue_set(sk, new_index). The queue_index is the old value.
>
>     Thanks,
>
>     Alex
>
>

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to