From owner-freebsd-net Sat Jul 29 11:10:45 2000 Delivered-To: freebsd-net@freebsd.org Received: from mail-out1.apple.com (mail-out1.apple.com [17.254.0.52]) by hub.freebsd.org (Postfix) with ESMTP id D80A237B50B for ; Sat, 29 Jul 2000 11:10:32 -0700 (PDT) (envelope-from justin@apple.com) Received: from mailgate1.apple.com (A17-128-100-225.apple.com [17.128.100.225]) by mail-out1.apple.com (8.9.3/8.9.3) with ESMTP id LAA16612 for ; Sat, 29 Jul 2000 11:10:24 -0700 (PDT) Received: from scv2.apple.com (scv2.apple.com) by mailgate1.apple.com (Content Technologies SMTPRS 4.1.5) with ESMTP id for ; Sat, 29 Jul 2000 11:10:23 -0700 Received: from grinch ([17.219.158.67]) by scv2.apple.com (8.9.3/8.9.3) with SMTP id LAA14583 for ; Sat, 29 Jul 2000 11:10:23 -0700 (PDT) Message-Id: <200007291810.LAA14583@scv2.apple.com> To: freebsd-net@freebsd.org Subject: Re: sub-optimal tcp_ouput() performance in the face of ENOBUFS Date: Sat, 29 Jul 2000 11:11:25 -0700 From: "Justin C. Walker" Reply-To: justin@apple.com mime-version: 1.0 (Apple Message framework v317) content-type: text/plain; charset=iso-8859-1 content-transfer-encoding: quoted-printable x-mailer: Apple Mail (2.317) Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Saturday, July 29, 2000, at 10:56 AM, Mike Silbersack wrote: > > On Sat, 29 Jul 2000, Justin C. Walker wrote: > > > On Friday, July 28, 2000, at 07:58 PM, Mike Silbersack wrote: > > > Hm, I was going to wager that some calling procedure was acting > > > differently depending on the return value of tcp_output, but since = =20 ENOBUFS > > > returns 0, and the error isn't checked anyway. > > > > Forgive my early-morning density, but I've read this sentence = several =20 > > times, and it just doesn't look right. Could you try again? I know = =20 > > there's value in it, but it isn't making it through. > > > > Regards, > > > > Justin > > In the case of ip_output returning ENOBUFS to tcp_output, tcp_output > returns 0, even though there's an error. (I guess if the ENOBUFS case = was=20 > handled properly, 0 would be correct. But for now, it's certainly an > error.) > > But tcp_output returning an error wouldn't matter anyway, since = nothing > which calls tcp_output actually checks the return value. Thanks for the clarification. FWIW in our source (FB3.2-based), while a lot of calls are cast as = (void), =20 the returned error actually is checked in a number of places =20 (tcp_usrreq.c). These eventually wander back into user space, I think. Regards, Justin Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics =A0=A0 | Manager, CoreOS Networking =A0=A0 | =A0=A0Men are from = Earth. Apple Computer, Inc. =A0=A0=A0 =A0| = =A0=A0Women are from Earth. 2 Infinite Loop=A0=A0=A0=A0=A0=A0 = | =20 =A0=A0=A0=A0=A0=A0Deal with it. Cupertino, CA 95014=A0=A0=A0=A0 | = *------------------------------------------------------*------------------= ------------------* To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message