[ofa-general] Expected behavior
Barry Reinhold
bbr at lampreynetworks.com
Wed Oct 17 10:05:40 PDT 2007
During the OFA plugfest at UNH I came across a problem in which a verbs
consumer application made a call to ibv_poll_cq after having called
ibv_destroy_qp(). The application segfaults in a call to a module supplied
by a verb provider that is invoked as a result of the call to
ibv_destroy_qp().
As the writer of the application I am unclear as to ownership of this
problem - is this behavior "badness" in the code of the verb provider, or is
it an issue in my application.
The application is processing an abortive teardown process in which it is
attempting to terminate the RDMA stream and recover associated resources.
The peer at the other end may be doing the same thing at the "same" time.
The application, when aborting does the following:
1. Sets the qp_state to IBV_QPS_ERR
2. Sleeps for a second
3. Calls ibv_destroy_qp
4. Calls ibv_destoy_cq
The event processing thread is doing the following:
1. Calls bv_get_cq_event
2. Calls ibv_req_notify_cq
3. while((ibv_poll_cq(cq_event, 1, xx) ==1 ) {};
4. more stuff
Does the application need to ensure that ibv_poll_cq is never called after
the associated qp is destroyed?
Barry Reinhold
(603) 868-8411
<mailto:bbr at lampreynetworks.com> bbr at lampreynetworks.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/general/attachments/20071017/6d04ef5d/attachment.html>
More information about the general
mailing list