netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: jheffner@psc.edu
Cc: ilpo.jarvinen@helsinki.fi, lachlan.andrew@gmail.com,
	netdev@vger.kernel.org, quetchen@caltech.edu
Subject: Re: SACK scoreboard
Date: Tue, 08 Jan 2008 14:44:56 -0800 (PST)	[thread overview]
Message-ID: <20080108.144456.173014334.davem@davemloft.net> (raw)
In-Reply-To: <4783AA29.3080406@psc.edu>

From: John Heffner <jheffner@psc.edu>
Date: Tue, 08 Jan 2008 11:51:53 -0500

> I haven't thought about this too hard, but can we approximate this by 
> moving scaked data into a sacked queue, then if something bad happens 
> merge this back into the retransmit queue?

That defeats the impetus for the change.

We want to free up the data, say, 2 packets at a time as
ACKs come in.  The key goal is smooth liberation of
retransmit queue packets over time.

The big problem is that recovery from even a single packet loss in a
window makes us run kfree_skb() for a all the packets in a full
window's worth of data when recovery completes.

If we just move such packets to a seperate list, we still have to
iterate over all of them when the cumulative ACK arrives.

This problem, that retransmit queue liberation is not smooth, is the
biggest flaw in how SACK is specified.  I mean, consider Ilpo's
mentioned case of 500,000 packet windows.  The issue cannot be
ignored.  SACK is clearly broken.

You speak of a path in Linux where we can reneg on SACKs, but I doubt
it really ever runs because of how aggressive the queue collapser is.
Alexey even has a comment there:

	 * This must not ever occur. */

To be honest this code sits here because it was written before the
queue collapser was coded up.

Really, find me a box where the LINUX_MIB_OFOPRUNED or
LINUX_MIB_RECVPRUNED counters are anything other than zero.

So this is a non-issue and I did consider it before proposing that we
redefine SACK.

  reply	other threads:[~2008-01-08 22:44 UTC|newest]

Thread overview: 45+ 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
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 [this message]
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
2008-01-09  6:04 SACK scoreboard linux

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=20080108.144456.173014334.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=ilpo.jarvinen@helsinki.fi \
    --cc=jheffner@psc.edu \
    --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;
as well as URLs for NNTP newsgroup(s).