On Thu, 2017-02-02 at 13:34 +0100, Markus Trippelsdorf wrote: > On 2017.02.02 at 04:32 -0800, Eric Dumazet wrote: > > On Thu, 2017-02-02 at 12:52 +0100, Markus Trippelsdorf wrote: > > > Hi, > > > > > > from time to time I see the following warning in my kernel log: > > > > > > TCP: eth0: Driver has suspect GRO implementation, TCP performance may be > > > compromised. > > > > > > This happens although I run "/usr/sbin/ethtool -K eth0 gro off" in my > > > local boot script. > > > What is the warning trying to tell me? > > > > > > > Please report > > > > ethtool -i eth0 > > driver: ATL1E > version: 1.0.0.7-NAPI > firmware-version: L1e > expansion-rom-version: > bus-info: 0000:02:00.0 > supports-statistics: no > supports-test: no > supports-eeprom-access: no > supports-register-dump: yes > supports-priv-flags: no >
Note that this driver does not implement GRO yet. Hard to believe there is such push back on GRO in 2017. Anyway, I suspect the test is simply buggy ;) diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 41dcbd568cbe2403f2a9e659669afe462a42e228..5394a39fcce964a7fe7075b1531a8a1e05550a54 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -164,7 +164,7 @@ static void tcp_measure_rcv_mss(struct sock *sk, const struct sk_buff *skb) if (len >= icsk->icsk_ack.rcv_mss) { icsk->icsk_ack.rcv_mss = min_t(unsigned int, len, tcp_sk(sk)->advmss); - if (unlikely(icsk->icsk_ack.rcv_mss != len)) + if (unlikely(icsk->icsk_ack.rcv_mss != len && skb_is_gso(skb))) tcp_gro_dev_warn(sk, skb); } else { /* Otherwise, we make more careful check taking into account,