[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20150128.222217.95436772179060210.davem@davemloft.net>
Date: Wed, 28 Jan 2015 22:22:17 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: ncardwell@...gle.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH net-next v2 0/5] fix stretch ACK bugs in TCP CUBIC and
Reno
From: Neal Cardwell <ncardwell@...gle.com>
Date: Wed, 28 Jan 2015 20:01:34 -0500
> This patch series fixes the TCP CUBIC and Reno congestion control
> modules to properly handle stretch ACKs in their respective additive
> increase modes, and in the transitions from slow start to additive
> increase.
>
> This finishes the project started by commit 9f9843a751d0a2057 ("tcp:
> properly handle stretch acks in slow start"), which fixed behavior for
> TCP congestion control when handling stretch ACKs in slow start mode.
>
> Motivation: In the Jan 2015 netdev thread 'BW regression after "tcp:
> refine TSO autosizing"', Eyal Perry documented a regression that Eric
> Dumazet determined was caused by improper handling of TCP stretch
> ACKs.
>
> Background: LRO, GRO, delayed ACKs, and middleboxes can cause "stretch
> ACKs" that cover more than the RFC-specified maximum of 2
> packets. These stretch ACKs can cause serious performance shortfalls
> in common congestion control algorithms, like Reno and CUBIC, which
> were designed and tuned years ago with receiver hosts that were not
> using LRO or GRO, and were instead ACKing every other packet.
>
> Testing: at Google we have been using this approach for handling
> stretch ACKs for CUBIC datacenter and Internet traffic for several
> years, with good results.
>
> v2:
> * fixed return type of tcp_slow_start() to be u32 instead of int
Series applied, thanks Neal.
--
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