> With current code, when we destroy a QP, we remove it from table first, > and move QP to reset. This is clearly wrong, and this patch fixes this.
I guess so, but it still leaves some other obvious races. First, the QP is removed from the table before its CQEs are cleaned -- to fix this, we should move the mthca_cq_clean() call inside the CQ locks (and change mthca_cq_clean to require the CQ lock be held). Second, I think we do need to synchronize against the asynchronous event interrupt when freeing a QP. I don't think the modify QP to reset code needs to change, since the QP is not being removed from the table there. > To fix the issue completely, the simplest approach is to use the same > EQ for completion and async events and for command interface. > I plan to send such a patch next week. I don't get it -- how do you handle having multiple completion EQs with this idea? - R. _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
