The patch for ib_sa_serv_notice_hdlr() handles multiple callers registering for the same event by maintaining a linked list of callback handlers. So I didn't think that the multiple user count was necessary. The actual registration with the MAD layer happens only when the ib_sa module is initialized and unregistered when it is unloaded.
In sa_query.c file the multicasting handling code is almost similar to ib_sa_serv_notice_hdlr(). I implemented this interface by just following the same model for the rest of the calls in the same file. But this interface is bit different in other aspects like registering for the event notification (InformInfo) and processing when the event actually happens (Notice). So we need more code to handle it correctly. VBabu Sean Hefty wrote: >>The problem is for the the remote node where RC QP listen was accepted >>this connection (Passive side). There is no way for this node to know >>that port failure has occurred on the Active side. So it requires some >>interfaces to get this notification. So ib_sa_serv_notice_hdlr() >>interface as described in the patch attached to bug#159 can be used to >>register for the remote port events. This interface has to be called >>separately for for PORT_ERR and PORT_ACTIVE events. When the handler for >>remote PORT_ERR occurs, then RC QP's path_mig_state can be changed to >>IB_MIG_MIGRATED to cause the failover. >> >> > >Hal pointed me to your patches for this, since I'm working on adding InformInfo >/ Notice support. I believe that a good portion of the code there is usable. >What I didn't see in the patch was reference counting to handle multiple users >registering for the same event, but I'm planning on leveraging the multicast >handling code for that. > >- Sean > > _______________________________________________ openib-general mailing list openib-general@openib.org http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general