[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <48881178.3080901@cosmosbay.com>
Date: Thu, 24 Jul 2008 07:22:00 +0200
From: Eric Dumazet <dada1@...mosbay.com>
To: David Miller <davem@...emloft.net>
Cc: ilpo.jarvinen@...sinki.fi, netdev@...r.kernel.org
Subject: Re: [TCP] Probable bug in icsk_probes_out handling ?
David Miller a écrit :
> From: Eric Dumazet <dada1@...mosbay.com>
> Date: Wed, 23 Jul 2008 15:35:19 +0200
>
>> Apparently, we can in some situations reset TCP connections in a couple of seconds when some frames are lost.
>
> I think it is some optimization that went in between 2.2.x and 2.4.x
> which took things a little bit too far.
>
> Please try this patch:
Yes, this patch solves the problem.
I tried a similar patch yesterday but was not sure about its validity.
Thanks a lot David.
>
> diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
> index 1f5e604..75efd24 100644
> --- a/net/ipv4/tcp_input.c
> +++ b/net/ipv4/tcp_input.c
> @@ -3292,6 +3292,7 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag)
> * log. Something worked...
> */
> sk->sk_err_soft = 0;
> + icsk->icsk_probes_out = 0;
> tp->rcv_tstamp = tcp_time_stamp;
> prior_packets = tp->packets_out;
> if (!prior_packets)
> @@ -3324,8 +3325,6 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag)
> return 1;
>
> no_queue:
> - icsk->icsk_probes_out = 0;
> -
> /* If this ack opens up a zero window, clear backoff. It was
> * being used to time the probes, and is probably far higher than
> * it needs to be for normal retransmission.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists