This fell out of the uCM connection ID discussion... There's an issue reporting events to userspace clients for an object that a user may have destroyed. The problem exists with user verbs, but is much more likely to be seen by a userspace CM client. To avoid reporting events for a destroyed object, I think that something similar to the following could be used from userspace:
destroy() should set a state marking destruction and wait for a reference count to go to 0 before transitioning to the kernel. The kernel code should destroy the associated kernel object and then discard any unclaimed events. get_event() should check the object state and discard the event if the object is being destroyed. It should increment a reference count before reporting any events. put_event() should decrement the reference count and unblock destroy if the reference count goes to 0. I'm at least a week away from trying to work on a patch for this, but I think that this would work. (I'm not even sure that we need to set a destroying state.) We could then provide user context that could be safely accessed from an event handler, as long as the user frees the related object after destroy returns. Comments? - Sean _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
