[openib-general] IPoIB: Waiting for ib0 to become free

William Jordan bjordan.ics at gmail.com
Fri Jun 10 10:32:16 PDT 2005


On 6/10/05, Roland Dreier <roland at topspin.com> wrote:
>    Hal> dev/core.c netdev_wait_allrefs says: * Any protocol or device
>    Hal> that holds a reference should register * for netdevice
>    Hal> notification, and cleanup and put back the * reference if
>    Hal> they receive an UNREGISTER event.
> 
>    Hal> Is it correct that IPoIB does not need to register for these
>    Hal> events ? If it is, then this must be something else which is
>    Hal> using the IPoIB driver causing the reference count to be
>    Hal> incremented but not handling these events. Troy, any idea on
>    Hal> how to recreate this ?
> 
> IPoIB doesn't need to handle these events, since it is the one doing
> the unregistering.

> 

I've seen this problem before with several network drivers. Is there
any possibility that any skb's have been leaked (lost by the driver,
never freed), or that the driver is still holding onto any skb's
(waiting in a send queue)? The refcount of the skb's dst is
decremented when an skb is freed.

I also sometimes see this problem with particular kernels with our own
IPoIB implementation when IPoIB is the only network interface. In this
instance, I'm suspicious that there may be someone else in the stack
that is still holding a reference on an skb that our driver has freed,
preventing the refcount from being decremented.
-- 
Bill Jordan
SilverStorm Technologies



More information about the general mailing list