[openib-general] RE: userspace event reporting

Libor Michalek limichal at cisco.com
Wed Jul 20 17:54:43 PDT 2005


On Wed, Jul 20, 2005 at 05:17:09PM -0700, Fab Tillier wrote:
> > From: Libor Michalek [mailto:libor at topspin.com]
> > Sent: Wednesday, July 20, 2005 5:02 PM
> > 
> >   My question is do we really want this, since an application will likely
> > have yet another table containing the app specific connection structure.
> > How that table is locked and managed will differ based on the threading
> > model. I think it's an incorrect assumption that if we create this level
> > thread safety in the uCM then the app connection structure can be placed
> > in a uCM user supplied pointer (e.g. the kCM context variable) and avoid
> > this type of app level connection table.
> 
> Ok, now that I think more about it, I think that having the ability to do
> an async, per-CM ID get_event call would help tremendously.  The
> application knows what CM IDs it has, and thus can initiate such a
> get_event request for each. The app can then maintain its own reference
> count on its internal structures (which is really what is needs to do),
> rather than rely on the CM providing the reference counting and
> synchronization.

  Well, I think having a per-CM ID get_event is a useful thread based
programming model, but I don't think it's the one and only approach
for all applications. Again, it's a layer that could (should?) be 
implemented entirely in userspace on top of the current interface.

  Also, I agree with your last sentence. I don't think it necessarily
follows or depends on the previous two, it's true for all most all 
serious apps, not just if there is a per-CM ID get_event.

> Is it even possible to make async get_event requests, from a coding 
> perspective? Would the resulting usage model work for clients?  If
> using an AIO read request, could the file offset could be used to
> convey the CM ID being polled?

  Well, you can poll on the file descriptor, which means you can submit
an AIO poll request. You could submit an AIO read, and you would get
back the ABI data in your buffer, which contains the cm_id. However, I'm
not sure what you're getting at.


-Libor



More information about the general mailing list