[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