[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