Thread (15 messages) flat view 15 messages, 6 authors, 2011-03-23

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________
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help