On Monday 10 February 2003 13:38, David S. Miller wrote: > From: Martin Zielinski <mz@seh.de> > Date: Mon, 10 Feb 2003 13:54:28 +0100 > > Remember the situation: > - Linux wants to transmit data sending a packet with window size e.g. > 5840 - The receiver can't use the data (printer paper empty) -> ACK window > size 0 - Linux takes a timeout (tp->probes_out is zero after receiving the > ACK) ... LOOP - The Timeout between these cycles is doubled by the use of > tp->backoff (tp->rto << tp->backoff) until TCP_MAX_RTO is reached. > > Ok, then just limit tp->backoff in tcp_send_probe0() like this: > > if (tp->backoff < sysctl_tcp_retry2) > tp->backoff++; > > I think this fixes the bug more elegantly. Whatever you mean. I just wanted this behaviour out - although it seems, that nobody ever had problems with stalled connections... I've no idea about the kernel style to handle such things. Just be aware, that tp->rto *might* ( in tcp_set_rto() ?) have different values. It should not be shiftet out and (tp->rto << tp->sysctl_tcp_retry2) should not be much smaller than maximum RTO. Thanks, Martin - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html