[ofa-general] Two element types on cancel_list in cancel_mads()?
Hal Rosenstock
hrosenstock at xsigo.com
Sat Dec 1 07:23:40 PST 2007
On Sat, 2007-12-01 at 06:12 -0800, Hal Rosenstock wrote:
> On Thu, 2007-11-29 at 16:43 -0800, Sean Hefty wrote:
> > > In cancel_mads, elements from two different lists are added to the
> > > cancel_list: wait_list and local_list. Subsequent processing of the
> > > cancel_list treats all elements as struct ib_mad_send_wr_private, and
> > > uses the send_buf field of that structure. But it appears to me that
> > > the items from local_list are actually of type struct
> > > ib_mad_local_private, and hence the reference to send_buf for these
> > > elements is incorrect. Can you help me understand how this works?
> >
> > I was looking at the local_list handling in cancel_mads() and the rest
> > of mad code myself. Hal knows this part of the code better than I do,
> > maybe he can look here and see if there's a definite problem. This
> > looks like the cause of the bug Dotan just reported.
>
> Sorry for the slow response. I've been consumed with other matters for
> the last couple days.
>
> I started investigating this and found that this change was first
> introduced over 2 years ago by the following:
>
> 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
-- Hal
>
> -- Hal
>
> > - Sean
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
More information about the general
mailing list