netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "David S. Miller" <davem@davemloft.net>
To: "Scott M. Ferris" <sferris@acm.org>
Cc: sferris@acm.org, netdev@oss.sgi.com
Subject: Re: TSO prevents cwnd growth on 2.6 kernels
Date: Fri, 25 Mar 2005 11:40:38 -0800	[thread overview]
Message-ID: <20050325114038.3076be29.davem@davemloft.net> (raw)
In-Reply-To: <20050325193458.GA15645@visi.com>

On Fri, 25 Mar 2005 13:34:59 -0600
"Scott M. Ferris" <sferris@acm.org> wrote:

> > Are you suggesting to let it go past tp->snd_cwnd?  We can't
> > ever do that.  tp->snd_cwnd is a hard limit on the number
> > of frames we may have outstanding on the network at one time,
> > TSO or not.
> 
> No, I think we all agree that exceeding cwnd is a bad idea.  I'm just
> saying that failing to reach cwnd is also broken, especially if it
> results in tcp_write_xmit() sending nothing at all when cwnd is small.

But if we only have a TSO frame at the head,  which would make us
exceed tp->snd_cwnd, the only option is to chop up the TSO frame.
So I guess that's your idea?

It's similar to the real fix for all of this, which I posted a detailed
description of about 1 or 2 months ago.  Check the netdev archives.
Basically, we don't build the TSO frames until transmit time thus:

1) We always fill the CWND
2) We size the TSO based upon the CWND at send time not at
   the time we are sucking in the data from userspace
3) No more multi-packet TSO frames in the send queue, thus no
   more disabling of TSO during packet loss and no more weird
   packet counting stuff

      reply	other threads:[~2005-03-25 19:40 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-25 18:18 TSO prevents cwnd growth on 2.6 kernels Scott M. Ferris
2005-03-25 18:40 ` David S. Miller
2005-03-25 19:34   ` Scott M. Ferris
2005-03-25 19:40     ` David S. Miller [this message]

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=20050325114038.3076be29.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=netdev@oss.sgi.com \
    --cc=sferris@acm.org \
    /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).