Messages in this thread | | | From | Lino Sanfilippo <> | Subject | Aw: Re: [PATCH 2/2] net: dsa: tag_ksz: dont let the hardware process the layer 4 checksum | Date | Thu, 15 Jul 2021 15:04:31 +0200 |
| |
> Gesendet: Donnerstag, 15. Juli 2021 um 13:49 Uhr > Von: "Vladimir Oltean" <olteanv@gmail.com> > An: "Lino Sanfilippo" <LinoSanfilippo@gmx.de> > Cc: "Andrew Lunn" <andrew@lunn.ch>, woojung.huh@microchip.com, UNGLinuxDriver@microchip.com, vivien.didelot@gmail.com, f.fainelli@gmail.com, davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org > Betreff: Re: [PATCH 2/2] net: dsa: tag_ksz: dont let the hardware process the layer 4 checksum > > On Thu, Jul 15, 2021 at 01:16:12PM +0200, Lino Sanfilippo wrote: > > Sure, I will test this solution. But I think NETIF_F_FRAGLIST should also be > > cleared in this case, right? > > Hmm, interesting question. I think only hns3 makes meaningful use of > NETIF_F_FRAGLIST, right? I'm looking at hns3_fill_skb_to_desc(). > Other drivers seem to set it for ridiculous reasons - looking at commit > 66aa0678efc2 ("ibmveth: Support to enable LSO/CSO for Trunk VEA.") - > they set NETIF_F_FRAGLIST and then linearize the skb chain anyway. The > claimed 4x throughput benefit probably has to do with less skbs > traversing the stack? I don't know. > > Anyway, it is hard to imagine all the things that could go wrong with > chains of IP fragments on a DSA interface, precisely because I have so > few examples to look at. I would say, header taggers are probably fine, > tail taggers not so much, so apply the same treatment as for NETIF_F_SG? >
Please note that skb_put() asserts that the SKB is linearized. So I think we should rather clear both NETIF_F_FRAGLIST and NETIF_F_SG unconditionally since also header taggers use some form of skb_put() dont they?
| |