]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
refresh
authorSean Hefty <sean.hefty@intel.com>
Thu, 14 Oct 2010 17:47:38 +0000 (10:47 -0700)
committerSean Hefty <sean.hefty@intel.com>
Thu, 14 Oct 2010 17:47:38 +0000 (10:47 -0700)
meta
patches/dapl-spawn
patches/refresh-temp [deleted file]

diff --git a/meta b/meta
index 9847be553d12a2a74f4a577e48f95acef8e99f2e..b4a201678add200f211709a4ab1a45870a73ba55 100644 (file)
--- a/meta
+++ b/meta
@@ -1,9 +1,8 @@
 Version: 1
-Previous: 2664bad1dfab6301b2e3635bdd10a3a18c69d0cf
-Head: 0c9f909fcffeeabf36750f372e2727c2325f8029
+Previous: 297b381dd86be102c8c4162e4a85253de7122559
+Head: 615619baa0e8be70fd30a890bac007247759802b
 Applied:
-  dapl-spawn: d041a67f795a0efa2b1ff30a48915b3bace8f489
-  refresh-temp: 0c9f909fcffeeabf36750f372e2727c2325f8029
+  dapl-spawn: 615619baa0e8be70fd30a890bac007247759802b
 Unapplied:
   dapl-win: bfc5e1442631c70deb47f6c429aff6a64dcdfcb4
   create_ep: 375b7c37ebf66efede67163fb01a7f2ce07d83c7
index f46723b7f4a911a21f06f7818e45bc164ebaaf83..56d3159fdbbdf27c80479bb0bbde09d7c4b0b9a3 100644 (file)
@@ -1,5 +1,5 @@
 Bottom: 6e1690af48f30c8d7839fc5dbf6e9f6c7bd92ede
-Top:    6e1690af48f30c8d7839fc5dbf6e9f6c7bd92ede
+Top:    df47ff742cc2547287e425bd50227b8e3674b817
 Author: Sean Hefty <sean.hefty@intel.com>
 Date:   2010-10-14 10:46:46 -0700
 
@@ -8,4 +8,146 @@ dapl: fix spawn test
 
 ---
 
-
+diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
+index 32d50cc..56b3686 100644
+--- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
++++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
+@@ -157,16 +157,16 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
+                                  pz_ref_count);
+               param->pz_handle = NULL;
+       }
+-      if (param->recv_evd_handle != NULL) {
+-              dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
+-                                 evd_ref_count);
+-              param->recv_evd_handle = NULL;
+-      }
+-      if (param->request_evd_handle != NULL) {
+-              dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
+-                                 evd_ref_count);
+-              param->request_evd_handle = NULL;
+-      }
++      //if (param->recv_evd_handle != NULL) {
++      //      dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
++      //                         evd_ref_count);
++      //      param->recv_evd_handle = NULL;
++      //}
++      //if (param->request_evd_handle != NULL) {
++      //      dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
++      //                         evd_ref_count);
++      //      param->request_evd_handle = NULL;
++      //}
+       if (param->connect_evd_handle != NULL) {
+               dapl_os_atomic_dec(&((DAPL_EVD *) param->connect_evd_handle)->
+                                  evd_ref_count);
+@@ -202,7 +202,20 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
+               }
+       }
+-      dapls_ep_flush_cqs(ep_ptr);
++      /*
++       * Release the EVD handles after we destroy the QP, so we can flush all
++       * QP entries.
++       */
++      if (param->recv_evd_handle != NULL) {
++              dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
++                                 evd_ref_count);
++              param->recv_evd_handle = NULL;
++      }
++      if (param->request_evd_handle != NULL) {
++              dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
++                                 evd_ref_count);
++              param->request_evd_handle = NULL;
++      }
+       /* Free the resource */
+       dapl_ep_dealloc(ep_ptr);
+diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
+index e843829..7a64f1d 100644
+--- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
++++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
+@@ -317,6 +317,7 @@ dapls_ib_qp_free (
+         IN  DAPL_IA                *ia_ptr,
+         IN  DAPL_EP                *ep_ptr )
+ {
++      ib_qp_handle_t qp;
+       UNREFERENCED_PARAMETER(ia_ptr);
+@@ -327,12 +328,20 @@ dapls_ib_qp_free (
+       dapl_os_lock(&ep_ptr->header.lock);
+       if (( ep_ptr->qp_handle != IB_INVALID_HANDLE ))
+       {
+-              ib_destroy_qp ( ep_ptr->qp_handle, ib_sync_destroy );
++              qp  = ep_ptr->qp_handle;
++              ep_ptr->qp_handle = IB_INVALID_HANDLE;
++              dapl_os_unlock(&ep_ptr->header.lock);
++
++              dapls_modify_qp_state_to_error(qp);
++              dapls_modify_qp_state_to_reset(qp);
++              dapls_ep_flush_cqs(ep_ptr);
++
++              ib_destroy_qp ( qp, ib_sync_destroy );
+               dapl_dbg_log (DAPL_DBG_TYPE_EP, "--> DsQF: freed QP %p\n",
+                               ep_ptr->qp_handle ); 
+-              ep_ptr->qp_handle = IB_INVALID_HANDLE;
++      } else {
++              dapl_os_unlock(&ep_ptr->header.lock);
+       }
+-      dapl_os_unlock(&ep_ptr->header.lock);
+     return DAT_SUCCESS;
+ }
+diff --git a/trunk/ulp/dapl2/dapl/openib_common/qp.c b/trunk/ulp/dapl2/dapl/openib_common/qp.c
+index 179eef0..6024db3 100644
+--- a/trunk/ulp/dapl2/dapl/openib_common/qp.c
++++ b/trunk/ulp/dapl2/dapl/openib_common/qp.c
+@@ -209,30 +209,38 @@ dapls_ib_qp_alloc(IN DAPL_IA * ia_ptr,
+  */
+ DAT_RETURN dapls_ib_qp_free(IN DAPL_IA * ia_ptr, IN DAPL_EP * ep_ptr)
+ {
++      struct ibv_qp *qp;
++
+ #ifdef _OPENIB_CMA_
+       dp_ib_cm_handle_t cm_ptr = dapl_get_cm_from_ep(ep_ptr);
++      if (!cm_ptr)
++              return DAT_SUCCESS;
++#endif
+       dapl_os_lock(&ep_ptr->header.lock);
+-      if (cm_ptr && cm_ptr->cm_id->qp) {
+-              rdma_destroy_qp(cm_ptr->cm_id);
+-              cm_ptr->cm_id->qp = NULL;
+-              ep_ptr->qp_handle = NULL;
+-      }
+-#else
+-      dapl_os_lock(&ep_ptr->header.lock);
+       if (ep_ptr->qp_handle != NULL) {
++              qp = ep_ptr->qp_handle;
++              ep_ptr->qp_handle = NULL;
++              dapl_os_unlock(&ep_ptr->header.lock);
++
+               /* force error state to flush queue, then destroy */
+-              dapls_modify_qp_state(ep_ptr->qp_handle, IBV_QPS_ERR, 0,0,0);
++              dapls_modify_qp_state(qp, IBV_QPS_ERR, 0,0,0);
++              dapls_modify_qp_state(qp, IBV_QPS_RESET, 0,0,0);
++              dapls_ep_flush_cqs(ep_ptr);
+-              if (ibv_destroy_qp(ep_ptr->qp_handle)) {
++#ifdef _OPENIB_CMA_
++              rdma_destroy_qp(cm_ptr->cm_id);
++              cm_ptr->cm_id->qp = NULL;
++#else
++              if (ibv_destroy_qp(qp)) {
+                       dapl_log(DAPL_DBG_TYPE_ERR, 
+                                " qp_free: ibv_destroy_qp error - %s\n",
+                                strerror(errno));
+               }
+-              ep_ptr->qp_handle = NULL;
+-      }
+ #endif
+-      dapl_os_unlock(&ep_ptr->header.lock);
++      } else {
++              dapl_os_unlock(&ep_ptr->header.lock);
++      }
+       return DAT_SUCCESS;
+ }
diff --git a/patches/refresh-temp b/patches/refresh-temp
deleted file mode 100644 (file)
index a947680..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-Bottom: 6e1690af48f30c8d7839fc5dbf6e9f6c7bd92ede
-Top:    df47ff742cc2547287e425bd50227b8e3674b817
-Author: Sean Hefty <sean.hefty@intel.com>
-Date:   2010-10-14 10:47:31 -0700
-
-Refresh of dapl-spawn
-
----
-
-diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-index 32d50cc..56b3686 100644
---- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-+++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c
-@@ -157,16 +157,16 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
-                                  pz_ref_count);
-               param->pz_handle = NULL;
-       }
--      if (param->recv_evd_handle != NULL) {
--              dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
--                                 evd_ref_count);
--              param->recv_evd_handle = NULL;
--      }
--      if (param->request_evd_handle != NULL) {
--              dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
--                                 evd_ref_count);
--              param->request_evd_handle = NULL;
--      }
-+      //if (param->recv_evd_handle != NULL) {
-+      //      dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
-+      //                         evd_ref_count);
-+      //      param->recv_evd_handle = NULL;
-+      //}
-+      //if (param->request_evd_handle != NULL) {
-+      //      dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
-+      //                         evd_ref_count);
-+      //      param->request_evd_handle = NULL;
-+      //}
-       if (param->connect_evd_handle != NULL) {
-               dapl_os_atomic_dec(&((DAPL_EVD *) param->connect_evd_handle)->
-                                  evd_ref_count);
-@@ -202,7 +202,20 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle)
-               }
-       }
--      dapls_ep_flush_cqs(ep_ptr);
-+      /*
-+       * Release the EVD handles after we destroy the QP, so we can flush all
-+       * QP entries.
-+       */
-+      if (param->recv_evd_handle != NULL) {
-+              dapl_os_atomic_dec(&((DAPL_EVD *) param->recv_evd_handle)->
-+                                 evd_ref_count);
-+              param->recv_evd_handle = NULL;
-+      }
-+      if (param->request_evd_handle != NULL) {
-+              dapl_os_atomic_dec(&((DAPL_EVD *) param->request_evd_handle)->
-+                                 evd_ref_count);
-+              param->request_evd_handle = NULL;
-+      }
-       /* Free the resource */
-       dapl_ep_dealloc(ep_ptr);
-diff --git a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-index e843829..7a64f1d 100644
---- a/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-+++ b/trunk/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c
-@@ -317,6 +317,7 @@ dapls_ib_qp_free (
-         IN  DAPL_IA                *ia_ptr,
-         IN  DAPL_EP                *ep_ptr )
- {
-+      ib_qp_handle_t qp;
-       UNREFERENCED_PARAMETER(ia_ptr);
-@@ -327,12 +328,20 @@ dapls_ib_qp_free (
-       dapl_os_lock(&ep_ptr->header.lock);
-       if (( ep_ptr->qp_handle != IB_INVALID_HANDLE ))
-       {
--              ib_destroy_qp ( ep_ptr->qp_handle, ib_sync_destroy );
-+              qp  = ep_ptr->qp_handle;
-+              ep_ptr->qp_handle = IB_INVALID_HANDLE;
-+              dapl_os_unlock(&ep_ptr->header.lock);
-+
-+              dapls_modify_qp_state_to_error(qp);
-+              dapls_modify_qp_state_to_reset(qp);
-+              dapls_ep_flush_cqs(ep_ptr);
-+
-+              ib_destroy_qp ( qp, ib_sync_destroy );
-               dapl_dbg_log (DAPL_DBG_TYPE_EP, "--> DsQF: freed QP %p\n",
-                               ep_ptr->qp_handle ); 
--              ep_ptr->qp_handle = IB_INVALID_HANDLE;
-+      } else {
-+              dapl_os_unlock(&ep_ptr->header.lock);
-       }
--      dapl_os_unlock(&ep_ptr->header.lock);
-     return DAT_SUCCESS;
- }
-diff --git a/trunk/ulp/dapl2/dapl/openib_common/qp.c b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-index 179eef0..6024db3 100644
---- a/trunk/ulp/dapl2/dapl/openib_common/qp.c
-+++ b/trunk/ulp/dapl2/dapl/openib_common/qp.c
-@@ -209,30 +209,38 @@ dapls_ib_qp_alloc(IN DAPL_IA * ia_ptr,
-  */
- DAT_RETURN dapls_ib_qp_free(IN DAPL_IA * ia_ptr, IN DAPL_EP * ep_ptr)
- {
-+      struct ibv_qp *qp;
-+
- #ifdef _OPENIB_CMA_
-       dp_ib_cm_handle_t cm_ptr = dapl_get_cm_from_ep(ep_ptr);
-+      if (!cm_ptr)
-+              return DAT_SUCCESS;
-+#endif
-       dapl_os_lock(&ep_ptr->header.lock);
--      if (cm_ptr && cm_ptr->cm_id->qp) {
--              rdma_destroy_qp(cm_ptr->cm_id);
--              cm_ptr->cm_id->qp = NULL;
--              ep_ptr->qp_handle = NULL;
--      }
--#else
--      dapl_os_lock(&ep_ptr->header.lock);
-       if (ep_ptr->qp_handle != NULL) {
-+              qp = ep_ptr->qp_handle;
-+              ep_ptr->qp_handle = NULL;
-+              dapl_os_unlock(&ep_ptr->header.lock);
-+
-               /* force error state to flush queue, then destroy */
--              dapls_modify_qp_state(ep_ptr->qp_handle, IBV_QPS_ERR, 0,0,0);
-+              dapls_modify_qp_state(qp, IBV_QPS_ERR, 0,0,0);
-+              dapls_modify_qp_state(qp, IBV_QPS_RESET, 0,0,0);
-+              dapls_ep_flush_cqs(ep_ptr);
--              if (ibv_destroy_qp(ep_ptr->qp_handle)) {
-+#ifdef _OPENIB_CMA_
-+              rdma_destroy_qp(cm_ptr->cm_id);
-+              cm_ptr->cm_id->qp = NULL;
-+#else
-+              if (ibv_destroy_qp(qp)) {
-                       dapl_log(DAPL_DBG_TYPE_ERR, 
-                                " qp_free: ibv_destroy_qp error - %s\n",
-                                strerror(errno));
-               }
--              ep_ptr->qp_handle = NULL;
--      }
- #endif
--      dapl_os_unlock(&ep_ptr->header.lock);
-+      } else {
-+              dapl_os_unlock(&ep_ptr->header.lock);
-+      }
-       return DAT_SUCCESS;
- }