Netdev List
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@linux-foundation.org>
To: "Lachlan Andrew" <lachlan.andrew@gmail.com>
Cc: "David Miller" <davem@davemloft.net>,
	ilpo.jarvinen@helsinki.fi, netdev@vger.kernel.org,
	quetchen@caltech.edu,
	"Darryl Veitch" <d.veitch@ee.unimelb.edu.au>
Subject: Re: [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid breaking GSOed skbs when SACKed one-by-one
Date: Wed, 12 Dec 2007 16:00:38 -0800	[thread overview]
Message-ID: <20071212160038.6b640a63@freepuppy.rosehill> (raw)
In-Reply-To: <aa7d2c6d0712121535y31bea3a6v14e270293c272e6f@mail.gmail.com>

On Wed, 12 Dec 2007 15:35:49 -0800
"Lachlan Andrew" <lachlan.andrew@gmail.com> wrote:

> Greetings Dave,
> 
> On 12/12/2007, David Miller <davem@davemloft.net> wrote:
> > From: "Lachlan Andrew" <lachlan.andrew@gmail.com>
> > Date: Tue, 11 Dec 2007 16:14:36 -0800
> >
> > > This thread started because TCP processing interferes with RTT
> > > estimation.  This problem would be eliminated if time-stamping were
> > > done as soon as the packet comes off the NIC.
> >
> > We don't do that because such timestamping is too expensive.
> > It used to be the case that we did this, but we stopped doing
> > that a long time ago.
> >
> > On x86 for example, timestamping can involve touching a slow
> > I/O device to read the timestamp.  We do not want to do that
> > for every packet.
> 
> OK.  Thanks for the background.
> 
> I thought that a TSC read was fairly cheap.  Any messing around to
> interpret it could be the responsibility of any task which actually
> needs a high-resolution timestamp, couldn't it?  If TSC is disabled,
> then the timestamp field could be set to "invalid".
> 
> > Also, we timestamp differently for TCP, the global high
> > resolution timestamp is overkill for this purpose.
> 
> Overkill for Reno and Cubic, but useful for Vegas, LP, veno, Illinois
> and YeAH which are all in the kernel.  They currently use "high
> resolution" timestamps which are effectively quantized to the
> scheduler resolution because of the way timestamping is done --
> reading a high-resolution time source when a task is scheduled.
> 
> > Really, this is a silly idea
> 
> Oh... :(
> 
> > and would only be a bandaid
> > for the problem at hand, that TCP input processing is
> > too expensive in certain circumstances.
> 
> That problem should certainly be fixed as well -- I wasn't suggesting
> this as an alternative.  Will fixing it fix the problem of those TCP
> modules suffering from CPU load from other sources?
> 
> (I'm Cc'ing this to Darryl Veitch who has often wanted driver-level
> time-stamping for achieving high-resolution synchronization between
> hosts.)
> 
> Cheers,
> Lachlan
> 

In current kernel, the congestion control can choose the desired accuracy.
The units are always the same (microseconds), 
but if the flag value "TCP_CONG_RTT_STAMP" is set, then TCP
tries to the high resolution real time clock.  This is relatively
expensive so only vegas, veno, LP, and YeAH use it. It would be
worth an experiment to see whether it is worth it.

All the delay based congestion control algorithms are impractical
in the real world, but everyone keeps trying :-)



-- 
Stephen Hemminger <shemminger@linux-foundation.org>

  parent reply	other threads:[~2007-12-13  0:02 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <aa7d2c6d0711261023m3d2dd850o76a8f44aef022f39@mail.gmail.com>
     [not found] ` <001001c83063$9adbc9d0$d5897e82@csp.uiuc.edu>
2007-11-28 23:47   ` [PATCH] tcp-illinois: incorrect beta usage Stephen Hemminger
2007-11-29  0:25     ` Lachlan Andrew
2007-11-29  0:43       ` Stephen Hemminger
2007-11-29  5:26         ` Shao Liu
2007-12-03 22:52           ` [RFC] TCP illinois max rtt aging Stephen Hemminger
2007-12-03 23:06             ` Lachlan Andrew
2007-12-03 23:59               ` Shao Liu
2007-12-04  0:32                 ` Stephen Hemminger
2007-12-04  1:23                   ` Lachlan Andrew
2007-12-04  8:37                     ` Ilpo Järvinen
2007-12-07  3:27                       ` Lachlan Andrew
2007-12-07 11:05                         ` Ilpo Järvinen
2007-12-07 12:41                           ` David Miller
2007-12-07 13:05                             ` Ilpo Järvinen
2007-12-07 18:27                               ` Ilpo Järvinen
2007-12-08  1:32                               ` David Miller
2007-12-11 11:59                                 ` [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid breaking GSOed skbs when SACKed one-by-one (Was: Re: [RFC] TCP illinois max rtt aging) Ilpo Järvinen
2007-12-11 12:32                                   ` [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid breaking GSOed skbs when SACKed one-by-one David Miller
2007-12-12  0:14                                     ` Lachlan Andrew
2007-12-12 15:11                                       ` David Miller
2007-12-12 23:35                                         ` Lachlan Andrew
2007-12-12 23:38                                           ` David Miller
2007-12-13  0:00                                           ` Stephen Hemminger [this message]
2007-12-15  9:51                                     ` SACK scoreboard (Was: Re: [RFC PATCH net-2.6.25 uncompilable] [TCP]: Avoid breaking GSOed skbs when SACKed one-by-one) Ilpo Järvinen
2008-01-08  7:36                                       ` SACK scoreboard David Miller
2008-01-08 12:12                                         ` Ilpo Järvinen
2008-01-09  7:58                                           ` David Miller
2008-01-08 16:51                                         ` John Heffner
2008-01-08 22:44                                           ` David Miller
2008-01-09  1:34                                             ` Lachlan Andrew
2008-01-09  6:35                                               ` David Miller
2008-01-09  2:25                                             ` Andi Kleen
2008-01-09  4:27                                               ` John Heffner
2008-01-09  6:41                                                 ` David Miller
2008-01-09 14:56                                                   ` John Heffner
2008-01-09 18:14                                                     ` SANGTAE HA
2008-01-09 18:23                                                       ` John Heffner
2008-01-09 12:55                                                 ` Ilpo Järvinen
2008-01-09  6:39                                               ` David Miller
2008-01-09  7:03                                                 ` Andi Kleen
2008-01-09  7:16                                                   ` David Miller
2008-01-09  9:47                                                   ` Evgeniy Polyakov
2008-01-09 14:02                                                     ` Andi Kleen
2007-11-29 14:12     ` [PATCH] tcp-illinois: incorrect beta usage Herbert Xu

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=20071212160038.6b640a63@freepuppy.rosehill \
    --to=shemminger@linux-foundation.org \
    --cc=d.veitch@ee.unimelb.edu.au \
    --cc=davem@davemloft.net \
    --cc=ilpo.jarvinen@helsinki.fi \
    --cc=lachlan.andrew@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=quetchen@caltech.edu \
    /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