Re: Driver has suspect GRO implementation, TCP performance may be compromised.
From: Eric Dumazet
Date: Thu May 30 2019 - 19:59:59 EST
On 5/30/19 3:52 PM, Alexander Duyck wrote:
> Actually I think there are some parts that don't have any receive
> limits that are supported by the e1000 part. What ends up happening is
> that we only drop the packet if it spans more than one buffer if I
> recall correctly, and buffer size is determined by MTU.
>
> I always thought MTU only applied to transmit since it is kind of in
> the name. As a result I am pretty sure igb and ixgbe will be able to
> trigger this warning under certain circumstances as well. Also what
> about the case where someone sets the MTU to less than 1500? I think
> most NICs probably don't update their limits in such a case and
> wouldn't it also trigger a similar error?
>
Linux does not have a notion of MRU, mtu is used for both tx and rx.
Most NIC drivers allocate skb of the maximal size (derived from netdev->mtu)
and program the NIC to drop packets bigger than X bytes (X also derived from netdev->mtu)
Another interesting point is that Paul host is receiving big packets,
that means that one host in his local network is overriding the 1500 MTU :)
Eventually we could add a netdev->mru and allow few drivers to set
their maximal mru, if bigger than netdev->mtu.
e1000e would probably set netdev->mru to 2048 - sizeof(ethernet headers), if
the driver is operating at MTU = 1500