[openib-general] RE: userspace event reporting

Fab Tillier ftillier at silverstorm.com
Tue Jul 12 22:20:33 PDT 2005


> From: Michael S. Tsirkin [mailto:mst at mellanox.co.il]
> Sent: Tuesday, July 12, 2005 3:15 PM
> 
> Quoting r. Sean Hefty <sean.hefty at intel.com>:
> >
> > I believe that this is purely a userspace issue.  I can't see why
> > using a mutex wouldn't work, but I believe that get_event() currently
> > blocks waiting for an event.
> >
> > Note that get_event() may be reporting events associated with an
> > object other than the one being destroyed.
> 
> Maybe, create a special kind of event after the object has been destroyed?

Adding such an event in effect makes destruction asynchronous - the user must
wait until the destroy event before freeing their context.  This is similar to
what is done in Windows, but still requires tracking each CM ID in user-mode to
provide the proper serialization of events.  All non-destroyed events must have
been put back to the CM before the destroy event can be generated.  Note also
that having the kernel take references to track get_event/put_event pairs can
lead to issues if an app dies before performing the put unless there's a good
way for the kernel to distinguish graceful from abortive CM ID destruction.

So I think anyway I look at it, the uCM ends up needing to shadow the CM IDs in
user-land to maintain references.  If it does that, then Sean's earlier idea of
performing reference counting and blocking destruction should work fine and
maintain the synchronous behavior that exists today.

- Fab




More information about the general mailing list