FreeBSD problems and preliminary ways to solve

Slawa Olhovchenkov slw at zxy.spb.ru
Fri Aug 19 09:50:33 UTC 2011


On Fri, Aug 19, 2011 at 10:36:29AM +0100, Robert N. M. Watson wrote:

> 
> On 19 Aug 2011, at 10:05, Slawa Olhovchenkov wrote:
> 
> >> Is the issue here that FreeBSD is dropping more packes, or just that FreeBSD 
> >> is reporting that it drops packets?  Historically, we've returned ENOBUFS from 
> >> datagram sockets when the interface queue is overflowed, but some other 
> >> systems (most noticeably Linux) simply return success when they drop a packet 
> >> on an outgoing interface queue.  You can debate which is the better model, but 
> >> one impact is that sometimes people report errors on FreeBSD that they don't 
> >> see on Linux -- when actually, the same failure is present, we just allow the 
> >> application to learn about it.
> > 
> > Historically, Linux on datagram (UDP) socket allow use select, FreeBSD
> > -- don't allow. FreeBSD always report 'UDP socket ready to transmit'.
> > And after try to send packet -- 'oops, ENOBUFS'.
> 
> 
> And if you have two consumers sending UDP on Linux, they both get unreported 50% packet loss, to my understanding?

In my test I use netperf.
netperf/UDP on linux send only packets can be proccessed by box (and
NIC) and packets don't drop. netperf don't allocate all CPU cycles.

netperf/UDP on FreeBSD get all CPU, try to send HUGE UDP flow and
report about massive packets drop. select on UDP socket report 'ready' allways.


More information about the freebsd-arch mailing list