[LEDE-DEV] [PATCH] ar71xx: Add GRO support to ag71xx
dave at taht.net
Tue Oct 17 08:26:20 PDT 2017
Felix Fietkau <nbd at nbd.name> writes:
> On 2017-09-03 20:35, Rosen Penev wrote:
>> On a TL-WN710N, this patch increases iperf performance from ~92.5 to ~93.5
>> mbps.> Keep in mind the WN710N is a 100mbps device. I expect greater numbers
> from gigabit devices.
>> Signed-off-by: Rosen Penev <rosenp at gmail.com>
> Hi Rosen,
> Sorry about that, but I will have to revert this change. It causes a
> serious regression in LAN->WAN routing performance on various devices.
> I did some digging and found out why:
> For GRO to work properly, checksums of incoming packets have to be
> verified very early in the network stack. The Ethernet MAC does not
> support rx checksum offload, so this has to happen in software.
> Due to the very small cache size, this causes a significant increase in
> memory bus traffic.
Also, for the record, if there is a need to manage the WAN side to lower
speeds (say, below 40Mbit/s) via sqm, GRO bulking up a microburst into a
superpacket mandates sch_cake (rather than fq_codel) to peel it apart
again to hold latencies low there.
There are a lot of devices that do GRO that perhaps shouldn't. mvneta
has very agressive soft-GRO, in particular. Shipping out one 64k
superpacket takes half a second at 1mbit.
> It might be possible in the future to avoid this by making use of the
> checksum offload engine, but that's a separate component on the chip and
> not present on every SoC (only the newer ones).
> It also requires a significant rework of the Ethernet driver, which I
> don't have any time for.
> - Felix
> Lede-dev mailing list
> Lede-dev at lists.infradead.org
More information about the Lede-dev