tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: BNX driver problem when mbuf clusters run out



On Thu, Apr 19, 2012 at 07:48:44PM -0400, Greg Troxel wrote:
> A fair point, but the driver doesn't actually free an mbuf with the
> packet.  The 'drop' mechanism is to leave the cluster in place (to be
> overwritten later), and the error is in the ring pointer accounting.
> 
> My approach would be to try to have the code path in the error case be
> as similar to the normal case as possible (in terms of updating ring
> pointers), and just not call *if_input with the received mbuf.

My feeling is that this is the right approach. When we're out of
mbuf cluster we should drop the received packet(s) and reuse the
mbuf(s) from the ring. If we fail to ack the received packets,
we can either create an interrupt storm or stop the receive process
completely.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index