[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20180206.110949.1528144777681048721.davem@davemloft.net>
Date: Tue, 06 Feb 2018 11:09:49 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: dja@...ens.net
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH v2] net: sched: tbf: handle GSO_BY_FRAGS case in enqueue
From: Daniel Axtens <dja@...ens.net>
Date: Mon, 5 Feb 2018 15:02:06 +1100
> tbf_enqueue() checks the size of a packet before enqueuing it.
> However, the GSO size check does not consider the GSO_BY_FRAGS
> case, and so will drop GSO SCTP packets, causing a massive drop
> in throughput.
>
> Use skb_gso_validate_mac_len() instead, as it does consider that
> case.
>
> Signed-off-by: Daniel Axtens <dja@...ens.net>
>
> ---
>
> skb_gso_validate_mac_len() is an out-of-line call, but so is
> skb_gso_mac_seglen(), so this is slower but not much slower. I
> will send a patch to make the skb_gso_validate_* functions
> inline-able shortly.
>
> Also, GSO_BY_FRAGS considered harmful - I'm pretty sure this is
> not the only place it causes issues.
>
> v2: put S-o-b in the right spot, thanks Andrew Donnellan
It's not good that our GSO helpers are not universal, and do
not properly handle all kinds of GSO encodings the kernel can
produce.
Like you said this problem probably exists elsewhere.
Therefore, I would much rather you fix the helpers to handle
GSO_BY_FRAGS properly.
Powered by blists - more mailing lists