Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 4 Aug 2000 10:18:20 -0700 (PDT)
From:      Archie Cobbs <archie@whistle.com>
To:        freebsd-net@freebsd.org
Subject:   Re: cvs commit: src/sys/netinet tcp_output.c
Message-ID:  <200008041718.KAA09439@bubba.whistle.com>
In-Reply-To: <200008032323.QAA56279@freefall.freebsd.org> from Archie Cobbs at "Aug 3, 2000 04:23:37 pm"

next in thread | previous in thread | raw e-mail | index | archive | help
Archie Cobbs writes:
>   Modified files:
>     sys/netinet          tcp_output.c 
>   Log:
>   Improve performance in the case where ip_output() returns an error.
>   When this happens, we know for sure that the packet data was not
>   received by the peer. Therefore, back out any advancing of the
>   transmit sequence number so that we send the same data the next
>   time we transmit a packet, avoiding a guaranteed missed packet and
>   its resulting TCP transmit slowdown.
>   
>   In most systems ip_output() probably never returns an error, and
>   so this problem is never seen. However, it is more likely to occur
>   with device drivers having short output queues (causing ENOBUFS to
>   be returned when they are full), not to mention low memory situations.
>   
>   Moreover, because of this problem writers of slow devices were
>   required to make an unfortunate choice between (a) having a relatively
>   short output queue (with low latency but low TCP bandwidth because
>   of this problem) or (b) a long output queue (with high latency and
>   high TCP bandwidth). In my particular application (ISDN) it took
>   an output queue equal to ~5 seconds of transmission to avoid ENOBUFS.
>   A more reasonable output queue of 0.5 seconds resulted in only about
>   50% TCP throughput. With this patch full throughput was restored in
>   the latter case.

I wonder if this has anything to do with why the default
interface max transmit queue is IFQ_MAXLEN == 50. Seems
like a rather high number to me. I wonder how they came
up with this number.

Note that if_ppp.c uses this value.. seems kindof
inappropriate for a (potentially) slow PPP link.

-Archie

___________________________________________________________________________
Archie Cobbs   *   Whistle Communications, Inc.  *   http://www.whistle.com


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?200008041718.KAA09439>