Bruce,
could you test this patch and compare the results.
By generating an ACK for every segment with the TH_PSH flag set
I found a significant increase in throughput.

Index: tcp_input.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/tcp_input.c,v
retrieving revision 1.122
diff -u -r1.122 tcp_input.c
--- tcp_input.c 2001/01/24 16:25:36     1.122
+++ tcp_input.c 2001/01/25 08:08:36
@@ -966,7 +966,7 @@
                        m_adj(m, drop_hdrlen);  /* delayed header drop */
                        sbappend(&so->so_rcv, m);
                        sorwakeup(so);
-                       if (tcp_delack_enabled) {
+                       if ((tcp_delack_enabled) && !(th->th_flags & TH_PSH)){
                                callout_reset(tp->tt_delack, tcp_delacktime,
                                    tcp_timer_delack, tp);
                        } else {

jayanth


Bruce Evans ([EMAIL PROTECTED]) wrote:
> On Wed, 24 Jan 2001, Jordan Hubbard wrote:
> 
> > > Something just doesn't sit well me.  This shouldn't happen in a
> > > 100Mbit LAN.  This seems like a plain vanilla network transaction, and
> > > FreeBSD is failing on something, where other OSes in the same
> > > environment don't.
> > 
> > You're almost certainly correct that there's a misfeature lurking in
> > there somewhere, I don't think anybody's arguing that particular
> > point, it's just that you're also (sadly) in a much better position to
> > diagnose this than [m]any of your readers since we don't have an
> > active failure scenario to analyze like you do. :(
> 
> I diagnosed similar problems in rmt(8) a few (?) months ago.  Try:
> 
>     tar cf localhost:/tmp/foo /boot/kernel
> 
> With the FreeBSD defaults, this crawls at almost precisely 100K/sec
> due to its protocol waiting for an ack after every 10K block and acks
> being delayed by 100 msec.
> 
> Bruce
> 
> 
> 
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-net" in the body of the message
> 
> 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to