[openib-general] [PATCHv2][RFC] kDAPL: use cm timers instead of own
Sean Hefty
sean.hefty at intel.com
Thu May 26 22:25:10 PDT 2005
>So, here is the strategy I am taking. Please let me know if it is
>wrong.
>
>When dapl_ep_connect() is called, I save off the timeout value into the
>dapl_ep struct. Then, when we get ready to call ib_send_cm_req(), I
>stuff the timeout value (after munging it into IB's strange format) into
>the conn params remote_cm_response_timeout.
>From a CM perspective, this sounds fine. Note that the CM timeout will not
occur until the number of retries has been met. So I don't know if the
timeout passed to dapl_ep_connect() should convert directly into the
remote_cm_response_timeout, or needs to be divided by the number of retries.
>If the connection fails to complete within the timeout,
>dapl_cm_active_cb_handler() is called with IB_CM_REQ_ERROR which in turn
>calls dapl_evd_connection_callback() which does the same thing that
>dapl_ep_timeout() used to do -- tear down the connection.
I haven't looked at your changes, but note that calling ib_destroy_cm_id
from within the CM callback thread will hang. The callback holds a
reference on the cm_id. The good news is that there should be code in kDAPL
to catch this.
>Here is a patch that implements this, *untested*, please take a look.
I'll look over the patch tomorrow and let you know if anything stands out,
but I'm not overly familiar with the kDAPL code...
- Sean
More information about the general
mailing list