[openib-general] ib_cancel_mad and the CM

Libor Michalek libor at topspin.com
Wed Feb 23 14:55:50 PST 2005


On Wed, Feb 23, 2005 at 02:46:42PM -0800, Sean Hefty wrote:
> Libor Michalek wrote:
> 
> >   Are you saying that the layer which assigns the wr_id is not the
> > same layer that actually executes the cancel? That would seem like
> > a recipe for problems. 
> 
> No.  For both the CM and SA query code, the layer that assigns the 
> wr_id executes the cancel.  For the CM, it's the fact that the 
> assignment goes to a pointer, which would allow two MADs sent one after 
> the other's completion to use the same wr_id.

  No, what I'm saying is that having the CM assigns the wr_id, and then
having the mad code actually executes the cancel, is a problem. There is
nothing to prevent multiple mad consumers from using the same wr_id, in
fact I would assume it. If you want to use wr_id as a handle that the
mad layer can use to lookup a message, then the mad layer needs to be
where the wr_id is assigned/generated. Either that or you need some other
identifier which you can use to cancel messages.

  In my opinion using pointers in the wr_id is bad for other reasons,
this is a problem with the scope of a certain value. The assignment and
cancel execution have to occur in the same scope.

-Libor



More information about the general mailing list