[openib-general] queue pair destruction on dat_ep_disconnect
mark kowalski
mkowalski01 at gmail.com
Fri Mar 18 09:24:53 PST 2005
I've been doing some experimentation to see if a client using udapl
can recover from a hard port failure if the second port on the hca
offers a path to the same destination. I've noticed a problem.
when on the client I see a timeout waiting on a response from
the server or I get a transport error from the evd_wait on the
dat_ep_post_send, I will eventually dat_ep_disconnect the endpoint in
preparation of recreating the endpoint and trying to connect to a new
IA obtained from data_ia_open on a name associated with the other port
on the hca. What I've noticed is that the ep_disconnect does not seem
to destroy the underlying queue pair and eventhough I issue a new
dat_ep_create, access to the new end point fails with "resource busy"
because the destroy_cbk field is still filled in. If I issue the
dat_ep_free after the dat_ep_disconnect and then start the process of
creating and connecting to a new end point then it works fine.
I've noticed in the dapls_ib_disconnect (not the openib one) that
the call to VAPI_destroy_qp is ifdef'd out. in the openib
dapls_ib_disconnect there is no call at all to VAPI_destroy_qp. Is
this intentional? It seems that the dat_ep_disconnect should cleanup
the underlying queue pair and a dat_ep_free shouldn't be required.
Thanks in advance for any help you can provide,
Mark Kowalski
More information about the general
mailing list