[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201103151107.35379.carsten@wolffcarsten.de>
Date: Tue, 15 Mar 2011 11:07:34 +0100
From: Carsten Wolff <carsten@...ffcarsten.de>
To: Yuchung Cheng <ycheng@...gle.com>
Cc: David Miller <davem@...emloft.net>,
Ilpo Jarvinen <ilpo.jarvinen@...sinki.fi>,
Nandita Dukkipati <nanditad@...gle.com>, netdev@...r.kernel.org
Subject: Re: [PATCH] tcp: avoid cwnd moderation in undo
Hi,
On Monday 14 March 2011, Yuchung Cheng wrote:
> On Mon, Mar 14, 2011 at 3:06 AM, Carsten Wolff <carsten@...ffcarsten.de>
wrote:
> > 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.
>
> In the presence of reordering, cwnd is already moderated in Disorder
> state before
> entering the (false) recovery.
Sure, cwnd moderation to in_flight + 1 segment is applied in disorder state,
because this is implementing a form of extended limited transmit.
Nevertheless, after a reordering event that caused a spurious fast retransmit,
there can be an undo of congestion state changes (either after recovery or
interrupting recovery, depending on the options enabled in the connection). I
just wanted to point out, that the moderation step happening upon an undo may
allow a larger burst, if a previous reordering event was detected and caused
tp->reordering to be increased.
> > 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.
This is actually the more important point, because it means that the
moderation does not negate the effects of the undo operation, as suggested by
your patch-description.
> > 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.
>
> Thanks. I will update my patch description. But the same principle
> applies that cwnd
> should not be moderated on false events. Whether it should be moderated on
> reordering or other events is another (complex) design issue. But this
> patch does not touch that.
False fast retransmits are mostly caused by reordering, spurious RTOs can also
be caused by delay variations that do not exhibit reordering. Your patch
touches all cases of spurious events. Anyway, I just mentioned reordering,
because it is the event in which Linux already allows larger bursts of size
tp->reordering in the moderation function (i.e. tp->reordering might be
increased). It's also not important to me if the undo is happening duringor
after recovery, the important question is, if burst protection in general is
an important goal, or not (and I think it's there for a reason).
Carsten
--
/\-ยด-/\
( @ @ )
________o0O___^___O0o________
--
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