Re: [NOT VERY SAFE] [TCP]: Set initial_ssthresh default to zeroin Cubic and BIC.

From: Komuro
Date: Sat Oct 13 2007 - 21:04:03 EST


Dear David

Actually, tcp_sk(sk)->snd_ssthresh is not initialized,
if initial_ssthresh is 0.

The patch should be

static void bictcp_init(struct sock *sk)
{
bictcp_reset(inet_csk_ca(sk));
- if (initial_ssthresh)
- tcp_sk(sk)->snd_ssthresh = initial_ssthresh;
+
+ tcp_sk(sk)->snd_ssthresh = initial_ssthresh;
}

Best Regards
Komuro

>
> Dear David
>
> The patch "[TCP]: Set initial_ssthresh default to zero in Cubic and BIC."
> is not very safe.
>
> With this patch, ftp-transfer stops in my system.
> (vsftpd-2.0.5-8)
>
> Please revert this patch.
>
>
> Best Regards
> Komuro
>
> >commit 66e1e3b20cbbf99da63e6c1af0fc6d39c2ed099a
> >Author: David S. Miller <davem@xxxxxxxxxxxxxxxxxxxx>
> >Date: Wed Jun 13 01:03:53 2007 -0700
> >
> > [TCP]: Set initial_ssthresh default to zero in Cubic and BIC.
> >
> > Because of the current default of 100, Cubic and BIC perform very
> > poorly compared to standard Reno.
> >
> > In the worst case, this change makes Cubic and BIC as aggressive as
> > Reno. So this change should be very safe.
> >
> > Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
> >
> >diff --git a/net/ipv4/tcp_bic.c b/net/ipv4/tcp_bic.c
> >index 281c9f9..dd9ef65 100644
> >--- a/net/ipv4/tcp_bic.c
> >+++ b/net/ipv4/tcp_bic.c
> >@@ -29,7 +29,7 @@ static int fast_convergence = 1;
> > static int max_increment = 16;
> > static int low_window = 14;
> > static int beta = 819; /* = 819/1024 (BICTCP_BETA_SCALE) */
> >-static int initial_ssthresh = 100;
> >+static int initial_ssthresh;
> > static int smooth_part = 20;
> >
> > module_param(fast_convergence, int, 0644);
> >diff --git a/net/ipv4/tcp_cubic.c b/net/ipv4/tcp_cubic.c
> >index 1422448..ebfaac2 100644
> >--- a/net/ipv4/tcp_cubic.c
> >+++ b/net/ipv4/tcp_cubic.c
> >@@ -29,7 +29,7 @@
> > static int fast_convergence __read_mostly = 1;
> > static int max_increment __read_mostly = 16;
> > static int beta __read_mostly = 819; /* = 819/1024 (BICTCP_BETA_SCALE) */
> >-static int initial_ssthresh __read_mostly = 100;
> >+static int initial_ssthresh __read_mostly;
> > static int bic_scale __read_mostly = 41;
> > static int tcp_friendliness __read_mostly = 1;
> >


--
Komuro <komurojun@xxxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/