[openib-general] RFC on CM error handling
Libor Michalek
libor at topspin.com
Fri Jan 21 10:25:41 PST 2005
On Thu, Jan 20, 2005 at 08:31:12PM -0800, Sean Hefty wrote:
>
> Some thoughts about destroying cm_id's based on a callback return value.
>
> Given the current code structure, it's possible for a user to receive
> multiple simultaneous callbacks. For example, a user could be notified of a
> reply and reject (sent as a result of an rtu timeout) at the same time. The
> CM will handle the state transitions properly to fail calls into the API.
> But I can see where it would be easy for a user to end up trying to destroy
> the cm_id multiple times, or receiving the second callback after they had
> already destroyed their context.
>
> I'm not seeing an easy way to handle this condition. I think that I need to
> serialize all callbacks for a given cm_id.
I would think lack of cm_id serialization would be a bigger problem
for the CM itself, since it needs to update the cm_id state in a sane
manner. The consumer could serialize callbacks, I know I do, but it
would be a bigger problem if the state transitions didn't make sense.
The older CM used a model where the connection identifier was checked-out
from the table, and only thread of control had it at a given time. This
I think would solve a lot of issues.
-Libor
More information about the general
mailing list