[ofa-general] Two element types on cancel_list in cancel_mads()?

Sean Hefty mshefty at ichips.intel.com
Mon Dec 3 10:12:39 PST 2007


>> commit 2c153b934dca08d58e0aafde18a182e0891aa201
>> Author: Hal Rosenstock <halr at voltaire.com>
>> Date:   Wed Jul 27 11:45:31 2005 -0700
>>
>>     [PATCH] IB: Eliminate MAD cache leak associated with local completions
>>     
>>     Eliminate MAD cache leak associated with local completions.  Also, when
>>     canceling MAD, empty local completion list as well.
>>     
>>     Signed-off-by: Hal Rosenstock <halr at voltaire.com>
>>     Cc: Roland Dreier <rolandd at cisco.com>
>>     Signed-off-by: Andrew Morton <akpm at osdl.org>
>>     Signed-off-by: Linus Torvalds <torvalds at osdl.org>
>>
>> More later...
> 
> FWIW, I traced the origin of this change back to the following thread:
> 
> http://lists.openfabrics.org/pipermail/general/2005-May/thread.html
> 
> http://lists.openfabrics.org/pipermail/general/2005-May/005951.html
> 
> Subject:
> 
> slab error in kmem_cache_destroy(): cache `ib_mad': Can't free all
> objects

Looking back at the patch above, I think that emptying the local 
completion list in cancel_mads() is separate from fixing the cache leak 
in local_completions().  By removing the local list handling from 
cancel_mads(), all handling of those mads should go through 
local_completions() instead, where the memory leak was addressed.

- Sean



More information about the general mailing list