[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 02 Feb 2017 05:59:24 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Markus Trippelsdorf <markus@...ppelsdorf.de>
Cc: netdev@...r.kernel.org,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>
Subject: Re: "TCP: eth0: Driver has suspect GRO implementation, TCP
performance may be compromised." message with "ethtool -K eth0 gro off"
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
So the test is not universal.
Powered by blists - more mailing lists