Subject: Re: receiver ring buffer overrrun
To: Adam Johnson <adamjapan@yahoo.com>
From: Thilo Manske <Thilo.Manske@HEH.Uni-Oldenburg.DE>
List: port-i386
Date: 03/22/2001 13:18:48
On Thu, Mar 22 2001 at 03:33:25 -0800, Adam Johnson wrote:
> '/netbsd: ec0: Reciever ring beffer overrun'  --  appears quite often on my
> NAT machine.  I think, (but very unsure) it's caused when my other computer
[...] 
> What exactly does this message mean?
Your network card puts ethernet frames faster into it's buffer than your computer
fetches them out of the buffer. When the buffer is full a overrun occurs and
the network card has to drop frames.

And it looks like with your kind of network card all frames already in the
buffer will be lost as well to make it even worse, see below.

> Should I worry about it?
When it doesn't happen that often (i.e. a few times a seconds even when
there's only little network traffic), no.
It just means you loose a little bit of network performance.

> Is there anything I can do to fix this?
Yes, try a different network card, even a cheap (nowadays usually RealTek 
based) ne2000-clone should be better. From the ec manpage:

     ec0: warning - receiver ring buffer overrun

     The DP8390 Ethernet chip used by this board implements a shared-memory
     ring-buffer to store incoming packets.  The 3c503 usually has only 8K
     bytes of shared memory.  This is only enough room for about 4 full-size
     (1500 byte) packets.  This can sometimes be a problem, especially on the
     original 3c503, because these boards' shared-memory access speed is quite
     slow; typically only about 1MB/second.  The overhead of this slow memory
     access, and the fact that there is only room for 4 full-sized packets
     means that the ring-buffer will occassionally overrun.

     When an overrun occurrs, the board must be reset to avoid a lockup prob-
     lem in early revision DP8390 Ethernet chips.  Resetting the board causes
     all of the data in the ring-buffer to be lost, requiring the data to be
     retransmitted/received, congesting the board further.  Because of this,
     maximum throughput on these boards is only about 400-600K bytes per sec-
     ond.

     This problem is exacerbated by NFS because the 8-bit boards lack suffi-
     cient packet buffer memory to support the default 8K byte packets that
     NFS and other protocols use as their default.  If these cards must be
     used with NFS, use the mount_nfs(8) -r and -w options in /etc/fstab to
     limit NFS's packet size.  4K (4096) byte packets generally work.


-- 
Dies ist Thilos Unix Signature! Viel Spass damit.