[ofa-general] ***SPAM*** [PATCH v3] RDMA/nes: CM connection setup/teardown rework
Faisal Latif
flatif at neteffect.com
Fri Jul 25 14:40:35 PDT 2008
Major rework of CM connection setup/teardown. We had a number of issues
with MPI applications not starting/terminating properly over time. With
these changes we were able to run longer on larger clusters.
* Removed memory allocation from nes_connect() and nes_cm_connect().
* Fixed mini_cm_dec_refcnt_listen() when destroying listener.
* Removed unnecessary code from schedule_nes_timer() and nes_cm_timer_tick().
* Functionalized mini_cm_recv_pkt() and process_packet().
* Cleaned up cm_node->ref_count usage.
* Reuse skbs if available.
Signed-off-by: Faisal Latif <flatif at neteffect.com>
---
v3 - Delta patch to v2. Missed two changes to nes_cm.c that caused a BUG_ON in
nes_destroy_qp().
diff -Nurp a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
--- a/drivers/infiniband/hw/nes/nes_cm.c 2008-07-24 05:23:57.000000000 -0500
+++ b/drivers/infiniband/hw/nes/nes_cm.c 2008-07-24 05:18:45.000000000 -0500
@@ -2837,6 +2837,7 @@ int nes_connect(struct iw_cm_id *cm_id,
cm_node->apbvt_set = 1;
nesqp->cm_node = cm_node;
cm_node->nesqp = nesqp;
+ nes_add_ref(&nesqp->ibqp);
return 0;
}
@@ -3167,7 +3168,6 @@ static void cm_event_connect_error(struc
if (ret)
printk(KERN_ERR "%s[%u] OFA CM event_handler returned, "
"ret=%d\n", __func__, __LINE__, ret);
- nes_rem_ref(&nesqp->ibqp);
cm_id->rem_ref(cm_id);
rem_ref_cm_node(event->cm_node->cm_core, event->cm_node);
More information about the general
mailing list