netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Heffner <johnwheffner@gmail.com>
To: Carsten Wolff <carsten@wolffcarsten.de>
Cc: Yuchung Cheng <ycheng@google.com>,
	David Miller <davem@davemloft.net>,
	Ilpo Jarvinen <ilpo.jarvinen@helsinki.fi>,
	Nandita Dukkipati <nanditad@google.com>,
	netdev@vger.kernel.org
Subject: Re: [PATCH] tcp: avoid cwnd moderation in undo
Date: Tue, 15 Mar 2011 06:50:47 -0400	[thread overview]
Message-ID: <AANLkTim_U9CySFQimQ8cG_iHdXCYXSALi9E6ticKztnk@mail.gmail.com> (raw)
In-Reply-To: <201103151120.55388.carsten@wolffcarsten.de>

Anecdotally, I've seen more harm than good from cwnd moderation but I
don't have any data to back that up.  It's hard to categorically say
anything.  But I don't know what makes the cases where cwnd moderation
is applied special.

Some other sources of bursts include
- Send-limited applications that stall for some time but less than an
RTO and do a large write
- Receive-limited applications that stall for some time but less than
an RTO and do a large read
- "Ack compression," when acks are queued somewhere in the network and
flood out at line rate
- "Stretch acks," when the receiving TCP does not ack every segment
(for efficiency, etc.), or acks are lost in the network.

Since all of these may occur in the Open state, cwnd moderation is not applied.

While I'm adding to my wish list ;-), I will also say that the undo
logic seems unnecessarily complicated.  If you expect you might have
to undo what you just did, why not wait a bit?  Something like rfc4653
seems like it might be a better approach and might make the cwnd
moderation discussion moot.

Thanks,
  -John


On Tue, Mar 15, 2011 at 6:20 AM, Carsten Wolff <carsten@wolffcarsten.de> wrote:
> On Monday 14 March 2011, John Heffner wrote:
>> On Mon, Mar 14, 2011 at 3:10 PM, Yuchung Cheng <ycheng@google.com> wrote:
>> > On Mon, Mar 14, 2011 at 3:06 AM, Carsten Wolff <carsten@wolffcarsten.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.
>>
>> I've always been somewhat skeptical of the usefulness of cwnd
>> moderation.  First, I don't know that its behavior is well defined.
>> When *should* tcp_moderate_cwnd() actually be called, and why?
>>
>> Second, I've never liked the idea in general.  Reducing cwnd has an
>> effect lasting many RTTs, so reducing it in response to a transient
>> event like reordering seems dubious.  And it does not address many
>> causes of bursts, such as ack compression or stretch acks.
>
> I think the undo operations are a special case where it absolutely makes
> sense, because the cwnd _already_ has been reduced (down to 1 segment by RTO
> recovery, or, with its special mixture of ratehalving and newreno, Linux
> sometimes reduces cwnd far below half of it even in fast recovery.). The undo
> re-opens the window all at once, which may allow _really huge_ bursts. I don't
> know enough about the other causes of TCPs burstiness, I'm just concerned
> about allowing this special cause.
>
> Carsten
> --
>           /\-´-/\
>          (  @ @  )
> ________o0O___^___O0o________
>

  reply	other threads:[~2011-03-15 10:50 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-12  1:40 [PATCH] tcp: avoid cwnd moderation in undo Yuchung Cheng
2011-03-14 10:06 ` Carsten Wolff
2011-03-14 19:10   ` Yuchung Cheng
2011-03-14 20:44     ` John Heffner
2011-03-15 10:20       ` Carsten Wolff
2011-03-15 10:50         ` John Heffner [this message]
2011-03-15 18:50           ` Alexander Zimmermann
2011-03-15 10:07     ` Carsten Wolff
2011-03-16  0:34       ` Yuchung Cheng
2011-03-16 16:18         ` Carsten Wolff
2011-03-16 18:52           ` John Heffner
2011-03-16 20:24             ` Ilpo Järvinen
2011-03-16 22:04           ` Yuchung Cheng
2011-03-14 20:57   ` [PATCH v2] " Yuchung Cheng
2011-03-23  2:37     ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTim_U9CySFQimQ8cG_iHdXCYXSALi9E6ticKztnk@mail.gmail.com \
    --to=johnwheffner@gmail.com \
    --cc=carsten@wolffcarsten.de \
    --cc=davem@davemloft.net \
    --cc=ilpo.jarvinen@helsinki.fi \
    --cc=nanditad@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=ycheng@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).