svn commit: r215368 - in stable/7/sys: arm/at91 arm/xscale/ixp425 contrib/dev/oltr dev/ae dev/an dev/ar dev/arl dev/ath dev/awi dev/ce dev/cm dev/cnw dev/cp dev/cs dev/ctau dev/cx dev/cxgb dev/ed d...

Maxim Sobolev sobomax at
Wed Nov 17 13:59:26 UTC 2010

On 11/16/2010 8:12 AM, Bruce Evans wrote:
> This was quite low for yestdeay's uses (starting in about 1995), but today
> it is little missed since only yesterday's low-end hardware uses it.  Most
> of today's interfaces are 1Gbps, and for this it is almost essential for
> the hardware to have a ring buffer with > 50 entries, so most of today's
> drivers ignore ifqmaxlen and set the queue length to the almost equally
> bogus value of the ring buffer size (-1).  I set it to about 10000 instead
> in bge and em (10000 is too large, but fixes streaming under certain loads
> when hz is small).

One of those interfaces is if_rl, which is still quite popular these 
days and supports speeds up to 1gbps (which I believe triggered this 
change). But in general I agree, unfortunately FreeBSD network subsystem 
is tuned for yesteday's speeds. We are seeing lot of lookups and other 
issues under high PPS. I wish somebody could stand and pick up the task 
of cleaning it up and re-tuning eventually for 2010. We could probably 
even sponsor in part such a work (anyone).

Apart from interface tuning for Gbps speeds, another area that needs 
more work is splitting up memory pool for the IPC from the memory pool 
for the other networking. Today's software is highly distributed and 
rock-solid IPC is a must for the FreeBSD being a solid server 
application platform. That's OK when under the load we drop some 
packets, but it's not OK when extreme network activity can bring down 
communications between application and database system within the host 
itself. And that's exactly what can happen in FreeBSD.

Maksym Sobolyev
Sippy Software, Inc.
Internet Telephony (VoIP) Experts
T/F: +1-646-651-1110
MSN: sales at
Skype: SippySoft

More information about the svn-src-stable-7 mailing list