* [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart
@ 2011-03-14 0:04 Sangtae Ha
2011-03-14 0:07 ` Sangtae Ha
0 siblings, 1 reply; 4+ messages in thread
From: Sangtae Ha @ 2011-03-14 0:04 UTC (permalink / raw)
To: Lucas Nussbaum
Cc: Stephen Hemminger, David Miller, Injong Rhee, Bill Fink, netdev,
Sangtae Ha
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>
---
net/ipv4/tcp_cubic.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/net/ipv4/tcp_cubic.c b/net/ipv4/tcp_cubic.c
index b758db1..a170778 100644
--- a/net/ipv4/tcp_cubic.c
+++ b/net/ipv4/tcp_cubic.c
@@ -270,6 +270,15 @@ static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
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) {
+ if (ca->cnt > 20) /* increase cwnd 5% per RTT */
+ ca->cnt = 20;
+ }
+
/* TCP Friendly */
if (tcp_friendliness) {
u32 scale = beta_scale;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart
2011-03-14 0:04 [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart Sangtae Ha
@ 2011-03-14 0:07 ` Sangtae Ha
2011-03-14 6:28 ` Lucas Nussbaum
0 siblings, 1 reply; 4+ messages in thread
From: Sangtae Ha @ 2011-03-14 0:07 UTC (permalink / raw)
To: Lucas Nussbaum
Cc: Stephen Hemminger, David Miller, Injong Rhee, Bill Fink, netdev,
Sangtae Ha
Hi Lucas,
Thank you for reporting this problem and the results below show what
happened with low resolution clocks.
The detailed testing setup and results at
http://netsrv.csc.ncsu.edu/wiki/index.php/HyStart_testing_between_Princeton_and_NCSU
I will add the results in long rtt paths soon.
Sangtae
On Sun, Mar 13, 2011 at 7:04 PM, Sangtae Ha <sangtae.ha@gmail.com> wrote:
> 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>
> ---
> net/ipv4/tcp_cubic.c | 9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/net/ipv4/tcp_cubic.c b/net/ipv4/tcp_cubic.c
> index b758db1..a170778 100644
> --- a/net/ipv4/tcp_cubic.c
> +++ b/net/ipv4/tcp_cubic.c
> @@ -270,6 +270,15 @@ static inline void bictcp_update(struct bictcp *ca, u32 cwnd)
> 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) {
> + if (ca->cnt > 20) /* increase cwnd 5% per RTT */
> + ca->cnt = 20;
> + }
> +
> /* TCP Friendly */
> if (tcp_friendliness) {
> u32 scale = beta_scale;
> --
> 1.7.0.4
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart
2011-03-14 0:07 ` Sangtae Ha
@ 2011-03-14 6:28 ` Lucas Nussbaum
2011-03-14 7:36 ` Sangtae Ha
0 siblings, 1 reply; 4+ messages in thread
From: Lucas Nussbaum @ 2011-03-14 6:28 UTC (permalink / raw)
To: Sangtae Ha
Cc: Stephen Hemminger, David Miller, Injong Rhee, Bill Fink, netdev
On 13/03/11 at 19:07 -0500, Sangtae Ha wrote:
> Hi Lucas,
>
> Thank you for reporting this problem and the results below show what
> happened with low resolution clocks.
> The detailed testing setup and results at
> http://netsrv.csc.ncsu.edu/wiki/index.php/HyStart_testing_between_Princeton_and_NCSU
> I will add the results in long rtt paths soon.
Thanks. What do you use to generate those graphs?
The graphs from HyStart(fixed) are a bit strange. Did HyStart really
detect something? It seems that it exited slow start due to losses, not
due to detection, since cwnd is decreased.
--
| Lucas Nussbaum MCF Université Nancy 2 |
| lucas.nussbaum@loria.fr LORIA / AlGorille |
| http://www.loria.fr/~lnussbau/ +33 3 54 95 86 19 |
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart
2011-03-14 6:28 ` Lucas Nussbaum
@ 2011-03-14 7:36 ` Sangtae Ha
0 siblings, 0 replies; 4+ messages in thread
From: Sangtae Ha @ 2011-03-14 7:36 UTC (permalink / raw)
To: Lucas Nussbaum
Cc: Stephen Hemminger, David Miller, Injong Rhee, Bill Fink, netdev
On Mon, Mar 14, 2011 at 2:28 AM, Lucas Nussbaum <lucas.nussbaum@loria.fr> wrote:
> On 13/03/11 at 19:07 -0500, Sangtae Ha wrote:
>> Hi Lucas,
>>
>> Thank you for reporting this problem and the results below show what
>> happened with low resolution clocks.
>> The detailed testing setup and results at
>> http://netsrv.csc.ncsu.edu/wiki/index.php/HyStart_testing_between_Princeton_and_NCSU
>> I will add the results in long rtt paths soon.
>
> Thanks. What do you use to generate those graphs?
I used net/ipv4/tcp_probe.c and gnuplot to generate the graphs.
>
> The graphs from HyStart(fixed) are a bit strange. Did HyStart really
> detect something? It seems that it exited slow start due to losses, not
> due to detection, since cwnd is decreased.
You can see green points which indicate that ssthresh is set before the loss,
and right after that, the cwnd increases 20% per RTT since the
available bandwidth is still unknown.
This logic incurs far less number of losses compared to slow start and
hence more throughput.
> --
> | Lucas Nussbaum MCF Université Nancy 2 |
> | lucas.nussbaum@loria.fr LORIA / AlGorille |
> | http://www.loria.fr/~lnussbau/ +33 3 54 95 86 19 |
>
Sangtae
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-03-14 7:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-14 0:04 [PATCH 3/3] tcp_cubic: fix low utilization of CUBIC with HyStart Sangtae Ha
2011-03-14 0:07 ` Sangtae Ha
2011-03-14 6:28 ` Lucas Nussbaum
2011-03-14 7:36 ` Sangtae Ha
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox