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 <[EMAIL PROTECTED]>

---
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);
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to