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

Michael S. Tsirkin mst at mellanox.co.il
Mon May 2 09:33:27 PDT 2005


Quoting r. Sean Hefty <mshefty at ichips.intel.com>:
> Subject: Re: [openib-general] slab error in kmem_cache_destroy(): cache?`ib_mad': Can't free all objects
> 
> 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
> 

Do you have a theory on why are MADs leaking?

-- 
MST - Michael S. Tsirkin



More information about the general mailing list