From: Alexey Kuznetsov <[EMAIL PROTECTED]> Date: Fri, 1 Sep 2006 03:29:23 +0400
> > 2) a way to take delayed ACKs into account for cwnd growth > > This part is OK now, right? This part of ABC is not on by default, and was broken until last week :-) Test in tcp_slow_start() used to be: tp->bytes_acked > 2*tp->mss_cache but now it is the correct: tp->bytes_acked >= 2*tp->mss_cache It allows to make two congestion window increases from one ACK, when noticing delayed ACK. Non-ABC code did not do this, but could figure this kind of thing out while scanning retransmit queue. > > 1) protection against ACK division > > But Linux never had this problem... Congestion window was increased > only when a whole skb is ACKed, flag FLAG_DATA_ACKED. (TSO could > break this, but should not). Otherwise, this ACK just advanced snd_una > and nothing more. Ugh, I missed this. :-/ The TSO code is carefuly to only trim TSO skbs on proper boundaries, and this ensures proper setting of FLAG_DATA_ACKED too. So no problems here. > The only problem of kind "too-aggressive" with Linux was that we could > develop large cwnd sending small segments, and then switch to sending > mss-sized segments. It does not look scary, to be honest. :-) Agreed. > Linux had troubles with slow start even before ABC. Actually, > some of applications can suffer of the same syndrome even if ABC disabled. > With ABC it becomes TROUBLE, cwnd has no chances to develop at all. I've discussed that very issue here before, some time ago, with John Heffner. It was in response to a user reporting a similar problem. The problem is really at the receiver because we only ACK every other full sized frame. I had the idea to ACK every 2 frames, regardless of size, but that might have other problems. There is an assymetry between how we do congestion control on sending (packet counting) and our ACK policy on receive (packet sized based). > Probably, aspect 1 of ABC just should be disabled. And the first my > suggestion looks working too. I'm ready to rip out ABC entirely, to be honest. Or at least turn it off by default. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html