Re: Patch "net: revert 8728c544a9c ("net: dev_pick_tx() fix")" has been added to the 3.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
> <alexander.h.duyck@xxxxxxxxx <mailto:alexander.h.duyck@xxxxxxxxx>> wrote:
>
>     On 09/11/2013 09:54 AM, gregkh@xxxxxxxxxxxxxxxxxxx
>     <mailto:gregkh@xxxxxxxxxxxxxxxxxxx> 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 <stable@xxxxxxxxxxxxxxx
>     <mailto:stable@xxxxxxxxxxxxxxx>> know about it.
>     >
>     >
>     > From e8b87e3d4dd56f2edc4fa09bc63681af9d4be0c5 Mon Sep 17
>     00:00:00 2001
>     > From: Eric Dumazet <edumazet@xxxxxxxxxx
>     <mailto:edumazet@xxxxxxxxxx>>
>     > Date: Wed, 28 Aug 2013 18:10:43 -0700
>     > Subject: net: revert 8728c544a9c ("net: dev_pick_tx() fix")
>     >
>     > From: Eric Dumazet <edumazet@xxxxxxxxxx
>     <mailto:edumazet@xxxxxxxxxx>>
>     >
>     > [ 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 <xii@xxxxxxxxxx <mailto:xii@xxxxxxxxxx>>
>     > Diagnosed-by: Xi Wang <xii@xxxxxxxxxx <mailto:xii@xxxxxxxxxx>>
>     > Signed-off-by: Eric Dumazet <edumazet@xxxxxxxxxx
>     <mailto:edumazet@xxxxxxxxxx>>
>     > Cc: Tom Herbert <therbert@xxxxxxxxxx <mailto:therbert@xxxxxxxxxx>>
>     > Cc: Alexander Duyck <alexander.h.duyck@xxxxxxxxx
>     <mailto:alexander.h.duyck@xxxxxxxxx>>
>     > Cc: Denys Fedorysychenko <nuclearcat@xxxxxxxxxxxxxx
>     <mailto:nuclearcat@xxxxxxxxxxxxxx>>
>     > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx
>     <mailto:davem@xxxxxxxxxxxxx>>
>     > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx
>     <mailto:gregkh@xxxxxxxxxxxxxxxxxxx>>
>     > ---
>     >  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
>     edumazet@xxxxxxxxxx <mailto:edumazet@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]