Re: [PATCH] tcp: fix ICMP-RTO war
From: Ilpo Järvinen <hidden>
Date: 2010-01-27 12:36:20
On Mon, 25 Jan 2010, Damian Lukowski wrote:
considering Denys' latest tests, I think we should bound at TCP_RTO_MIN inside __tcp_set_rto(). Look at the following piece:quoted
[ 604.193389] rto: 200 (0 >> 3 + 0, 32) time: 304193 sent: 304091 pen: 1 307291 rem: 98 [ 604.193518] lower bound violation: 0 code 1 sk_state 1 [ 604.193589] rto: 200 (0 >> 3 + 0, 31) time: 304193 sent: 304091 pen: 1 304291 rem: 98 [ 604.193706] lower bound violation: 0 code 1 sk_state 1 [ 604.193776] rto: 200 (0 >> 3 + 0, 30) time: 304193 sent: 304091 pen: 1 304291 rem: 98 [ 607.341327] lower bound violation: 0 code 1 sk_state 1 [ 607.341412] rto: 200 (0 >> 3 + 0, 33) time: 307341 sent: 307091 pen: 1 310291 rem: 0We have a burst of three incoming ICMPs, not triggering retransmissions because of rem > 0. Nevertheless, there is an increase of icsk_backoff by four within 3100ms, with no ICMPs in between. For me, this is explainable by the broken mdev/rtt issue together with bursty ICMP replies.
Unless they are for a different connection? We might have to print sk (%p) in all those printouts to be sure which maps to which. If a peer becomes unreachable, it may well have multiple connections open (this was a proxy, iirc?). -- i.