Subject: Re: ne2000 (driver) performance
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Erik Rungi <blackbox@openface.ca>
List: port-i386
Date: 04/18/1999 17:50:46
On Sat, 10 Apr 1999, Manuel Bouyer wrote:

> On Fri, Apr 09, 1999 at 04:54:56PM -0400, Erik Rungi wrote:
> > 
> > Hello!
> > 
> > I'm using a NetBSD-1.3.3/i386 box as a router with 4 ne2000 PCI cards in it,
> > and I'm beginning to see occasional:
> > 
> > Apr  9 16:07:17 bob /netbsd: ne5: warning - receiver ring buffer overrun
> > 
> > Since there is quite a bit more potential capacity for traffic going through
> > this things, I'm beginning to get a little worried.
> > 
> > Does anyone know if the ne2000 pci driver is Known To Suck?  Or maybe its just
> > my cards (Kingston KNE30's I believe).
> 
> NE2000 uses PIO trasfers to read/write datas, this really limit the bandwidth.
> Better get DMA-capable NICs.
> I have 6 ThunderLAN-based NICs in a p200 here, (5 in 100Mbs mode, one unused),
> I don't have any problems (well, I get some underruns when a lot of data
> scrolls on the display, or when running X, but I think the fault is the
> old ISA video board which looks up the bus for too long. In normal
> operations, no problems).


After briefly mucking around with NetBSD 1.3/i386 I have made the following
observation:

When pingflooding a machine on the LAN, a machine with an ne2000 ethernet
adapter based machine seems to average two hardware interrupts per packet
sent/received.

A 3C905 based machine averages one hardware interrupt per packet
sent/received under the same conditions.

I'm curious what the upper limits of a NetBSD-as-router machine are in terms
of packet forwarding.

Is there any easy way I can determine how many packets per second each
interface is forwarding?

Does anyone have any impressive numbers for how many pps a netbsd box can
push?  

Is there any way I can determine how much load a machine is under other than
watching interrupt counts?  My router is always showing 100% cpu idle even
though its handling 2500-3500 hardware ints/s.

EJR