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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <[email protected]>
> >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 <[email protected]>
> >
> >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 <[email protected]>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux