All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <shemminger@vyatta.com>
To: "David S. Miller" <davem@davemloft.net>
Cc: netdev@vger.kernel.org, Sangtae Ha <sangtae.ha@gmail.com>
Subject: [PATCH 7/7] tcp_cubic: fix low utilization of CUBIC with HyStart
Date: Mon, 14 Mar 2011 10:52:18 -0700	[thread overview]
Message-ID: <20110314175439.844558845@vyatta.com> (raw)
In-Reply-To: 20110314175211.788224699@vyatta.com

[-- Attachment #1: tcp-cubic-initial-growth.patch --]
[-- Type: text/plain, Size: 1077 bytes --]

From: Sangtae Ha <sangtae.ha@gmail.com>

HyStart sets the initial exit point of slow start.
Suppose that HyStart exits at 0.5BDP in a BDP network and no history exists.
If the BDP of a network is large, CUBIC's initial cwnd growth may be
too conservative to utilize the link.
CUBIC increases the cwnd 20% per RTT in this case.

Signed-off-by: Sangtae Ha <sangtae.ha@gmail.com>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
---
 net/ipv4/tcp_cubic.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

--- a/net/ipv4/tcp_cubic.c	2011-03-14 08:32:46.347993869 -0700
+++ b/net/ipv4/tcp_cubic.c	2011-03-14 10:57:00.846549449 -0700
@@ -270,6 +270,13 @@ static inline void bictcp_update(struct
 		ca->cnt = 100 * cwnd;              /* very small increment*/
 	}
 
+	/*
+	 * The initial growth of cubic function may be too conservative
+	 * when the available bandwidth is still unknown.
+	 */
+	if (ca->loss_cwnd == 0 && ca->cnt > 20)
+		ca->cnt = 20;	/* increase cwnd 5% per RTT */
+
 	/* TCP Friendly */
 	if (tcp_friendliness) {
 		u32 scale = beta_scale;



  parent reply	other threads:[~2011-03-14 18:02 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-14 17:52 [PATCH 0/7] TCP CUBIC Hystart fixes Stephen Hemminger
2011-03-14 17:52 ` [PATCH 1/7] tcp: fix RTT for quick packets in congestion control Stephen Hemminger
2011-03-14 17:52 ` [PATCH 2/7] tcp_cubic: fix comparison of jiffies Stephen Hemminger
2011-03-14 17:52 ` [PATCH 3/7] tcp_cubic: make ack train delta value a parameter Stephen Hemminger
2011-03-14 17:52 ` [PATCH 4/7] tcp_cubic: fix clock dependency Stephen Hemminger
2011-03-14 18:51   ` Eric Dumazet
2011-03-14 21:21     ` Stephen Hemminger
2011-03-14 21:37       ` Eric Dumazet
2011-03-14 17:52 ` [PATCH 5/7] tcp_cubic: enable high resolution ack time if needed Stephen Hemminger
2011-03-14 17:52 ` [PATCH 6/7] tcp_cubic: make the delay threshold of HyStart less sensitive Stephen Hemminger
2011-03-14 17:52 ` Stephen Hemminger [this message]
2011-03-14 22:58 ` [PATCH 0/7] TCP CUBIC Hystart fixes David Miller
2011-03-22 11:34 ` Lucas Nussbaum
2011-03-22 11:35 ` Lucas Nussbaum
2011-03-22 12:05   ` 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=20110314175439.844558845@vyatta.com \
    --to=shemminger@vyatta.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=sangtae.ha@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.