[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e9e9703f-8fbe-4d81-4bb1-1cdafd0a4955@gmail.com>
Date: Fri, 9 Nov 2018 11:44:01 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Paolo Abeni <pabeni@...hat.com>, netdev@...r.kernel.org
Cc: "David S. Miller" <davem@...emloft.net>,
soukjin bae <soukjin.bae@...sung.com>
Subject: Re: [PATCH net] ip: hash fragments consistently
On 07/23/2018 09:26 AM, Eric Dumazet wrote:
>
>
> On 07/23/2018 07:50 AM, Paolo Abeni wrote:
>> The skb hash for locally generated ip[v6] fragments belonging
>> to the same datagram can vary in several circumstances:
>> * for connected UDP[v6] sockets, the first fragment get its hash
>> via set_owner_w()/skb_set_hash_from_sk()
>> * for unconnected IPv6 UDPv6 sockets, the first fragment can get
>> its hash via ip6_make_flowlabel()/skb_get_hash_flowi6(), if
>> auto_flowlabel is enabled
>>
>> For the following frags the hash is usually computed via
>> skb_get_hash().
>> The above can cause OoO for unconnected IPv6 UDPv6 socket: in that
>> scenario the egress tx queue can be selected on a per packet basis
>> via the skb hash.
>> It may also fool flow-oriented schedulers to place fragments belonging
>> to the same datagram in different flows.
>>
>
> It also fools bond_xmit_hash(), packets of the same datagram can be sent on
> two bonding slaves instead of one, meaning adding pressure on the defrag unit
> in receiver.
>
> Reviewed-by: Eric Dumazet <edumazet@...gle.com>
>
Also we might note that flow dissector itself is buggy as
found by Soukjin Bae ( https://patchwork.ozlabs.org/patch/994601/ )
I will send a v2 of his patch with a different changelog.
Defrag is fixed [1] but the bug in flow dissector is adding
extra work and hash inconsistencies.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=0d5b9311baf27bb545f187f12ecfd558220c607d
Powered by blists - more mailing lists