Re: [PATCH] tcp: avoid cwnd moderation in undo
From: Carsten Wolff <hidden>
Date: 2011-03-14 10:24:56
Hi, On Saturday 12 March 2011, Yuchung Cheng wrote:
In the current undo logic, cwnd is moderated after it was restored to the value prior entering fast-recovery. It was moderated first in tcp_try_undo_recovery then again in tcp_complete_cwr. Since the undo indicates recovery was false, these moderations are not necessary. If the undo is triggered when most of the outstanding data have been acknowledged, the (restored) cwnd is falsely pulled down to a small value. This patch removes these cwnd moderations if cwnd is undone during the fast-recovery.
The moderation is in place to avoid gigantic segment bursts, which could cause
unnecessary pressure on buffers. In my eyes it's already suboptimal that the
moderation is weakened in the presence of (detected) reordering, let alone
removing it completely.
More importantly, the prior ssthresh is restored and not affected by
moderation. This means, if moderation reduces cwnd to a small value, then cwnd
< ssthresh and TCP will quickly slow-start back to the previous state, without
sending a big burst of segments.
Also, you intended to remove cwnd moderation only from an undo during
recovery, but I think your patch also removes cwnd moderation when the undo is
caused by D-SACK, i.e. most likely after recovery already ended.
Carsten
--
/\-´-/\
( @ @ )
________o0O___^___O0o________