Date: Fri, 30 Nov 2001 13:47:03 -0600 (CST) From: Jonathan Lemon <jlemon@flugsvamp.com> To: jayanth@yahoo-inc.com, net@freebsd.org Subject: Re: FreeBSD performing worse than Linux? Message-ID: <200111301947.fAUJl3Z85729@prism.flugsvamp.com> In-Reply-To: <local.mail.freebsd-net/20011130100515.C63426@yahoo-inc.com> References: <local.mail.freebsd-net/20011128153817.T61580@monorchid.lemis.com> <local.mail.freebsd-net/15364.38174.938500.946169@caddis.yogotech.com> <local.mail.freebsd-net/20011129004234.A16101@exuma.irbs.com> <local.mail.freebsd-net/200111300527.fAU5R0s11199@c527597-a.cstvl1.sfba.home.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In article <local.mail.freebsd-net/20011130100515.C63426@yahoo-inc.com> you write: >Hmm, this is what has broken fast retransmit. >I should probably replace > if (tp->t_dupacks < tcprexmtthresh) > tp->t_dupacks = 0; > > with > if (tcp_do_newreno && (tp->t_dupacks < tcprexmtthresh)) > tp->t_dupacks = 0; I don't think that's it. The original (pre-NewReno) code had: /* * If the congestion window was inflated to account * for the other side's cached packets, retract it. */ if (tp->t_dupacks >= tcprexmtthresh && tp->snd_cwnd > tp->snd_ssthresh) tp->snd_cwnd = tp->snd_ssthresh; tp->t_dupacks = 0; So t_dupacks was always getting set to 0 on this codepath. In the existing code, the 'if' statement you point out above is only relevant if newreno is turned on. However, the pathologies happen regardless of the setting of the newreno flag. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200111301947.fAUJl3Z85729>