[Click] RX Overruns with eepro100

Barry Gowan barry_gowan at yahoo.co.uk
Fri Aug 1 11:31:57 EDT 2003


Thanks for the response Chip.
I'm just trying to get this straight in my head...

So _dev->rx_refill() blocks while a memory access on
the card is done to refill the ring buffer in the
driver.
In the eepro100 driver code DMA to the device is being
performed over the PCI bus. 
So it looks like _dev->rx_refill() has to wait while
the DMA over PCI executes. 
So is there nothing I can change to improve this
situation? If I had a faster PCI bus would I get a
better result? Or is it just down to the eepro100 NIC
being too busy to serve the memory fast enough?

When I replace the eepro100 with e1000 NICs, the same
test runs fine. I guess this is because whatever DMA
that _dev->rx_refill() triggers runs faster on the
e1000 hardware than the eepro100. Have I got this
analysis correct?

thanks again,
BG

 --- coldwell at mazunetworks.com wrote: > On Thu, 31 Jul
2003, Barry Gowan wrote:
> > 
> > Hello, 
> > Can someone please shed some light on how
> interface
> > overruns can happen when using click with
> PollDevice. 
> 
> The E1000 card has a hardware FIFO that gets
> transferred to a software
> ring buffer of sk_buffs in the driver with
> producer/consumer pointers
> stored in hardware registers.  If the ring buffer is
> empty, a received
> packet will be stored in the hardware FIFO until one
> becomes
> available.  If the FIFO fills up before one becomes
> available, the
> packet is dropped and an overrun gets counted.
> 
> The Click PollDevice element calls _dev->rx_refill
> in its "run_task"
> method.  This is the device-specific function which
> refills the ring
> buffer with allocated (but empty) sk_buffs for
> received packets.  If
> run_task is not called before all the buffers from
> the last refill are
> consumed, you will get overruns.
> 
> Chip
> 
> -- 
> 
> Charles M. "Chip" Coldwell
> "Turn on, log in, tune out."
>  

________________________________________________________________________
Want to chat instantly with your online friends?  Get the FREE Yahoo!
Messenger http://uk.messenger.yahoo.com/


More information about the click mailing list