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

Sean Hefty mshefty at ichips.intel.com
Mon May 2 09:07:03 PDT 2005


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.

- Sean



More information about the general mailing list