On 2017.02.03 at 09:54 -0200, Marcelo Ricardo Leitner wrote: > On Thu, Feb 02, 2017 at 05:59:24AM -0800, Eric Dumazet wrote: > > On Thu, 2017-02-02 at 05:31 -0800, Eric Dumazet wrote: > > > > > 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, > > > > This wont really help. > > > > Our tcp_sk(sk)->advmss can be lower than the MSS used by the remote > > peer. > > > > ip ro add .... advmss 512 > > I don't follow. With a good driver, how can advmss be smaller than the > MSS used by the remote peer? Even with the route entry above, I get > segments just up to advmss, and no warning. > > Though yeah, interesting that this driver doesn't even support GRO. FCS > perhaps? > > Markus, do you have other interfaces in your system? Which MTU do you > use, and please try the (untested) patch below, to gather more debug > info:
No, eth0 is the only interface. MTU = 1500. Sure, I will try your patch. But I don't know how to reproduce the issue, so you will have to wait until it triggers again. -- Markus