From a1e02bcfd3decea25567c25cfdca6dbcb79661c7 Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Thu, 16 Sep 2010 13:24:57 -0700 Subject: [PATCH] Refresh of dapl-evd --- trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c | 1 + trunk/ulp/dapl2/dapl/common/dapl_ep_free.c | 14 +------------- trunk/ulp/dapl2/dapl/common/dapl_ep_util.c | 16 ++++++++++++++++ trunk/ulp/dapl2/dapl/common/dapl_ep_util.h | 4 +++- trunk/ulp/dapl2/dapl/common/dapl_evd_util.c | 8 -------- trunk/ulp/dapl2/dapl/openib_ucm/device.c | 2 -- 6 files changed, 21 insertions(+), 24 deletions(-) diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c index 72da6200..90748b0f 100644 --- a/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c +++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_disconnect.c @@ -165,6 +165,7 @@ dapl_ep_disconnect(IN DAT_EP_HANDLE ep_handle, } dapl_os_unlock(&ep_ptr->header.lock); dat_status = dapls_ib_disconnect(ep_ptr, disconnect_flags); + dapls_ep_flush_cqs(ep_ptr); bail: dapl_dbg_log(DAPL_DBG_TYPE_RTN | DAPL_DBG_TYPE_CM, diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c index e7268ace..32d50cce 100644 --- a/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c +++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_free.c @@ -65,7 +65,6 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle) { DAPL_EP *ep_ptr; DAPL_IA *ia_ptr; - DAPL_EVD *evd_ptr; DAT_EP_PARAM *param; dp_ib_cm_handle_t cm_ptr, next_cm_ptr; ib_qp_state_t save_qp_state; @@ -203,18 +202,7 @@ DAT_RETURN DAT_API dapl_ep_free(IN DAT_EP_HANDLE ep_handle) } } - if (ep_ptr->param.request_evd_handle) { - evd_ptr = (DAPL_EVD *) ep_ptr->param.request_evd_handle; - dapl_os_lock(&evd_ptr->header.lock); - dapls_evd_copy_cq(evd_ptr); - dapl_os_unlock(&evd_ptr->header.lock); - } - if (ep_ptr->param.recv_evd_handle) { - evd_ptr = (DAPL_EVD *) ep_ptr->param.recv_evd_handle; - dapl_os_lock(&evd_ptr->header.lock); - dapls_evd_copy_cq(evd_ptr); - dapl_os_unlock(&evd_ptr->header.lock); - } + dapls_ep_flush_cqs(ep_ptr); /* Free the resource */ dapl_ep_dealloc(ep_ptr); diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c index 9aff242c..bd91fc72 100644 --- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c +++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.c @@ -606,6 +606,22 @@ void dapl_ep_unlink_cm(IN DAPL_EP *ep_ptr, IN dp_ib_cm_handle_t cm_ptr) dapl_os_unlock(&ep_ptr->header.lock); } +static void dapli_ep_flush_evd(DAPL_EVD *evd_ptr) +{ + dapl_os_lock(&evd_ptr->header.lock); + dapls_evd_copy_cq(evd_ptr); + dapl_os_unlock(&evd_ptr->header.lock); +} + +void dapls_ep_flush_cqs(DAPL_EP * ep_ptr) +{ + if (ep_ptr->param.request_evd_handle) + dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.request_evd_handle); + + if (ep_ptr->param.recv_evd_handle) + dapli_ep_flush_evd((DAPL_EVD *) ep_ptr->param.recv_evd_handle); +} + /* * Local variables: * c-indent-level: 4 diff --git a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h index 31d0e233..66b2de6d 100644 --- a/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h +++ b/trunk/ulp/dapl2/dapl/common/dapl_ep_util.h @@ -101,5 +101,7 @@ STATIC _INLINE_ dp_ib_cm_handle_t dapl_get_cm_from_ep(IN DAPL_EP *ep_ptr) return cm_ptr; } - + +extern void dapls_ep_flush_cqs(DAPL_EP * ep_ptr); + #endif /* _DAPL_EP_UTIL_H_ */ diff --git a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c index b27fd15a..675e9487 100644 --- a/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c +++ b/trunk/ulp/dapl2/dapl/common/dapl_evd_util.c @@ -673,14 +673,6 @@ dapli_evd_post_event(IN DAPL_EVD * evd_ptr, IN const DAT_EVENT * event_ptr) dapl_os_unlock(&evd_ptr->header.lock); } } else { - /* - * We're in DAPL_EVD_STATE_WAITED. Take the lock if - * we don't have it, recheck, and signal. - */ - if (!evd_ptr->evd_producer_locking_needed) { - dapl_os_lock(&evd_ptr->header.lock); - } - if (evd_ptr->evd_state == DAPL_EVD_STATE_WAITED && (dapls_rbuf_count(&evd_ptr->pending_event_queue) >= evd_ptr->threshold)) { diff --git a/trunk/ulp/dapl2/dapl/openib_ucm/device.c b/trunk/ulp/dapl2/dapl/openib_ucm/device.c index 1959c767..b7d9efd3 100644 --- a/trunk/ulp/dapl2/dapl/openib_ucm/device.c +++ b/trunk/ulp/dapl2/dapl/openib_ucm/device.c @@ -581,8 +581,6 @@ void ucm_async_event(struct dapl_hca *hca) struct ibv_async_event event; struct _ib_hca_transport *tp = &hca->ib_trans; - dapl_log(DAPL_DBG_TYPE_WARN, " async_event(%p)\n", hca); - if (!ibv_get_async_event(hca->ib_hca_handle, &event)) { switch (event.event_type) { -- 2.46.0