[openib-general] slab error in kmem_cache_destroy(): cache `ib_mad': Can't free all objects

Hal Rosenstock halr at voltaire.com
Mon May 2 09:29:26 PDT 2005


On Mon, 2005-05-02 at 12:07, Sean Hefty wrote:
> Hal Rosenstock wrote:
> >>What prevents an agent from deregistering while a send is outstanding? 
> >>What'll free the mad_priv then?
> > 
> > 
> > Nothing. I think there is some missing code in ib_agent_port_close to
> > handle this scenario.
> > 
> > However, unless that MAD from the SM were directed locally (and was
> > pending), that would not cause the problem where the ib_mad cache could
> > not be destroyed. I will see if I can recreate this and work up a patch
> > for this.
> 
> Sending a MAD will result in taking a reference on the corresponding 
> MAD agent.  If unregister is called, the call will first cancel all 
> outstanding sends, and then wait for the reference count to go to zero.
> 
> It should be noted that until unregister returns MADs can be received 
> by the user, and the MADs must be freed.

I stand corrected. This is already taken care of. I forgot about this.

-- Hal




More information about the general mailing list