Date: Wed, 7 Aug 2002 22:50:07 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: freebsd-current@freebsd.org, <freebsd-net@freebsd.org> Subject: [patch] Possible newreno fix, please test Message-ID: <20020807224520.U47882-200000@patrocles.silby.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
If you are one of the people who have found that disabling newreno
increases performance on your network, please apply this patch and see if
newreno performance increases.
The attached patch comes from an obscurely documented change applied to
OpenBSD back in 2000, originating from one of the people responsible for
the original BSD newreno implementation. As far as I can tell, it fixes
the handling of multiple fast retransmits, and inflates the window less
upon completion of fast recovery. I haven't done any actual testing
myself, but it sure looks like a step in the right direction.
Please test if you had noticed newreno problems in the past.
Thanks,
Mike "Silby" Silbersack
[-- Attachment #2 --]
--- /usr/src/sys.old/netinet/tcp_input.c Wed Aug 7 22:56:26 2002
+++ tcp_input.c Wed Aug 7 23:03:38 2002
@@ -1662,9 +1662,7 @@
/* False retransmit, should not
* cut window
*/
- tp->snd_cwnd += tp->t_maxseg;
tp->t_dupacks = 0;
- (void) tcp_output(tp);
goto drop;
}
if (win < 2)
@@ -1708,8 +1706,7 @@
* it via the slow start mechanism.
*/
if (SEQ_GT(th->th_ack + tp->snd_ssthresh, tp->snd_max))
- tp->snd_cwnd =
- tp->snd_max - th->th_ack + tp->t_maxseg;
+ tp->snd_cwnd = tp->snd_max - th->th_ack;
else
tp->snd_cwnd = tp->snd_ssthresh;
tp->t_dupacks = 0;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020807224520.U47882-200000>
