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>