*BSD News Article 64843


Return to BSD News archive

Newsgroups: comp.unix.bsd.freebsd.misc
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!news.cs.su.oz.au!inferno.mpx.com.au!news.unimelb.EDU.AU!munnari.OZ.AU!news.hawaii.edu!ames!usenet.kornet.nm.kr!news.kreonet.re.kr!usenet.seri.re.kr!news.cais.net!news.jsums.edu!gatech!swrinde!howland.reston.ans.net!vixen.cso.uiuc.edu!uwm.edu!news.inap.net!news1!not-for-mail
From: root@dyson.iquest.net (Charlie Root)
Subject: Re: FreeBSD Losing to Linux - Please Help
X-Nntp-Posting-Host: dyson.iquest.net
Message-ID: <4k0n9h$815@dyson.iquest.net>
Sender: news@iquest.net (News Admin)
Organization: John S. Dyson's Machine
References: <4ju4rb$67q@post.gsfc.nasa.gov>
Date: Thu, 4 Apr 1996 14:45:05 GMT
Lines: 50

In article <4ju4rb$67q@post.gsfc.nasa.gov>,
Karen Jefferson x2857 <kjeffers@nastg.gsfc.nasa.gov> wrote:
>
>We are in the midst of a development project which uses alot of UDP 
>and serial communications.
>
>Although our preference had been to use FreeBSD, the UDP
>performance was terrible (200 Kbps over Ethernet), and we
>kept getting ENOBUF errors  which  makes FreeBSD an unacceptable choice.
>Our previous posts for possible parameters to tune didn't
>turn up anything helpful, and messages to freebsd.org haven't been
>answered yet.
>
The UDP performance on FreeBSD is basically wire speed.  On BSD, at
least an indication of udp packets being dropped for transmission is
given.  UDP writes that return ENOBUF should probably be followed
by a wait of some kind and retry (many times, ENOBUF means retry later.)

On other OSes it is typical to return a success, even though the packet
is being dropped in the local machine.  To see what kind of UDP performance
you can really get, use TTCP between two machines.

Discussion to clarify the situation:
With fast machines, almost any OS can saturate an ethernet with UDP
packets.  UDP has NO flow control between machines (unlike TCP) on
any OS.  If you write an application to blast UDP packets between
machines, you will create packets much more quickly than the network
can absorb them.  The ENOBUF return on FreeBSD is telling you that is
happening.  It is technically legal to return success on such an error,
because it is OK (but not desirable) to drop udp packets.  FreeBSD is
just giving you more info.  I guess to be equiv to those OSes, ignore
ENOBUF error return???

I haven't looked at your machine, but if the above is not your problem,
it is possible that there is a misconfiguration of a network card (incorrect
IRQ or somesuch.)  I dont see that is likely.

>
>Is there anything we can do to improve the UDP performance of FreeBSD?
>Why does it care about buffering for UDP?  Please respond via email
>to tjeffers@nastg.gsfc.nasa.gov.  Thanks.
>
Actually, as I said above, FreeBSD is returning more info than the other
OSes (modulo hardware problems.)  On a 486/66 <--> 386/25, I could easily
get 600-800K bytes/sec between the two machines with very slow NE2000 e-net
adapters.

John
dyson@freebsd.org