Date: Thu, 27 Jul 2000 21:35:57 -0500 (CDT) From: Mike Silbersack <silby@silby.com> To: Archie Cobbs <archie@whistle.com> Cc: freebsd-net@freebsd.org Subject: Re: sub-optimal tcp_ouput() performance in the face of ENOBUFS Message-ID: <Pine.BSF.4.21.0007272130290.16889-100000@achilles.silby.com> In-Reply-To: <200007272138.OAA11016@bubba.whistle.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 27 Jul 2000, Archie Cobbs wrote: > Dear TCP gurus, > > It seems like there is sub-optimal behaviour in tcp_output(), > and I'm wondering what other people think. > > Consider an output interface whose transmit queue is full. > tcp_output() calls ip_output(), and it will return ENOBUFS. > Here's where this is handled (tcp_output, line 863): I get the impression that ENOBUFS was never tested, if it makes you feel any better. The code which checks to make sure a timer is pending wasn't even there until a few weeks ago. Until it was added, sockets could semi-easily get stuck in the LAST_ACK state forever. So, while you're fixing the case you just found, you may want to try to think of other bad outcomes due to ENOBUFS - there probably are a few more. Mike "Silby" Silbersack 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?Pine.BSF.4.21.0007272130290.16889-100000>