[openib-general] No resource tracking per qp for multicast groups

Jack Morgenstein jackm at mellanox.co.il
Mon Nov 21 08:48:04 PST 2005


Hi,

I noticed that there is no per-qp tracking of multicast groups of which it is a member. Thus, for example, if a user-space app dies without a chance to perform its cleanup, the (nonexistent) QP will still be listed in the HCA firmware as a member of its multicast groups.  This has 2 effects:
1. The effective number of qp's which can join that multicast group has been reduced (since it has zombie entries).
2. If the above QP gets re-used, it will still be a member of the multicast groups (and therefore receive packets which were not intended for the new user of the QP).

I suggest tracking mcast group membership in kernel-space only. If we don't wish to change the verbs layer behavior, we can just detach a qp from all its multicast groups (if any) in ib_destroy_qp (although this is not IB compliant -- see IB Spec 11.2.4.4 (we should return an error in this case)).  Otherwise, I think we'll need something messy  (such as an ib_verbs layer function requesting a QP to detach from all its multicast groups.

My preference is to leave the verbs layer alone as much as possible.  Track the multicast group membership per qp (gid and lid) in struct ib_qp, and make calls in ib_destroy_qp() to ib_mcast_detach().

Jack
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20051121/d549038c/attachment.html>


More information about the general mailing list