[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20201112095922.5868d9a0@kicinski-fedora-pc1c0hjn.dhcp.thefacebook.com>
Date: Thu, 12 Nov 2020 09:59:22 -0800
From: Jakub Kicinski <kuba@...nel.org>
To: Alexander Lobakin <alobakin@...me>
Cc: "David S. Miller" <davem@...emloft.net>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
Paolo Abeni <pabeni@...hat.com>,
Willem de Bruijn <willemb@...gle.com>,
Steffen Klassert <steffen.klassert@...unet.com>,
Eric Dumazet <edumazet@...gle.com>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v5 net 0/2] net: udp: fix Fast/frag0 UDP GRO
On Wed, 11 Nov 2020 20:44:08 +0000 Alexander Lobakin wrote:
> While testing UDP GSO fraglists forwarding through driver that uses
> Fast GRO (via napi_gro_frags()), I was observing lots of out-of-order
> iperf packets:
>
> [ ID] Interval Transfer Bitrate Jitter
> [SUM] 0.0-40.0 sec 12106 datagrams received out-of-order
>
> Simple switch to napi_gro_receive() or any other method without frag0
> shortcut completely resolved them.
>
> I've found two incorrect header accesses in GRO receive callback(s):
> - udp_hdr() (instead of udp_gro_udphdr()) that always points to junk
> in "fast" mode and could probably do this in "regular".
> This was the actual bug that caused all out-of-order delivers;
> - udp{4,6}_lib_lookup_skb() -> ip{,v6}_hdr() (instead of
> skb_gro_network_header()) that potentionally might return odd
> pointers in both modes.
>
> Each patch addresses one of these two issues.
>
> This doesn't cover a support for nested tunnels as it's out of the
> subject and requires more invasive changes. It will be handled
> separately in net-next series.
Applied, thanks!
Powered by blists - more mailing lists