From owner-freebsd-net Thu Jul 27 18:54:55 2000 Delivered-To: freebsd-net@freebsd.org Received: from khavrinen.lcs.mit.edu (khavrinen.lcs.mit.edu [18.24.4.193]) by hub.freebsd.org (Postfix) with ESMTP id B10D737C1D9 for ; Thu, 27 Jul 2000 18:54:32 -0700 (PDT) (envelope-from wollman@khavrinen.lcs.mit.edu) Received: (from wollman@localhost) by khavrinen.lcs.mit.edu (8.9.3/8.9.3) id VAA19214; Thu, 27 Jul 2000 21:54:27 -0400 (EDT) (envelope-from wollman) Date: Thu, 27 Jul 2000 21:54:27 -0400 (EDT) From: Garrett Wollman Message-Id: <200007280154.VAA19214@khavrinen.lcs.mit.edu> To: Archie Cobbs Cc: freebsd-net@FreeBSD.ORG Subject: sub-optimal tcp_ouput() performance in the face of ENOBUFS In-Reply-To: <200007272138.OAA11016@bubba.whistle.com> References: <200007272138.OAA11016@bubba.whistle.com> Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org < said: > 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): [snip snip] > The result is that even though TCP "knows" that the packet was > lost, it fails to retransmit the data in the lost packet with the > next packet output, instead skipping to the next chunk of data when > it sends the next packet. I think your analysis is correct, although I haven't thought through the ramifications of the change you suggest. -GAWollman -- Garrett A. Wollman | O Siem / We are all family / O Siem / We're all the same wollman@lcs.mit.edu | O Siem / The fires of freedom Opinions not those of| Dance in the burning flame MIT, LCS, CRS, or NSA| - Susan Aglukark and Chad Irschick To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message