[Openib-windows] LID change event

Yossi Leybovich sleybo at mellanox.co.il
Tue Jul 4 00:31:25 PDT 2006


Fab
 
We check IPoIB on small cluster (16 nodes).
While running with check version we got ASSERT while inserting entry to
the lid_endpt list.
	
Line 4301 in ipoib_port:

	if( p_endpt->dlid )
	{
		p_qitem = cl_qmap_insert(
			&p_port->endpt_mgr.lid_endpts, p_endpt->dlid,
&p_endpt->lid_item );
		CL_ASSERT( p_qitem == &p_endpt->lid_item );
	}

(looks like the lid is already exist)


It seems that IPoIB does not handle the case when new SM change the LID
assignments of the nodes.
I think that solving this problem is to clean the endpt lid list while
flushing the avs of the endpts.
The code will refill the lid field when the path record query is back.
 
We tried this patch and its work.
 
 
Index: W:/work/latest/ulp/ipoib/kernel/ipoib_port.c
===================================================================
--- W:/work/latest/ulp/ipoib/kernel/ipoib_port.c (revision 1496)
+++ W:/work/latest/ulp/ipoib/kernel/ipoib_port.c (working copy)
@@ -3994,11 +3994,7 @@
     &p_endpt->mac_item );
    cl_fmap_remove_item( &p_port->endpt_mgr.gid_endpts,
     &p_endpt->gid_item );
-   if( p_endpt->dlid )
-   {
-    cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,
-     &p_endpt->lid_item );
-   }
+
    cl_qlist_insert_tail(
     &mc_list, &p_endpt->mac_item.pool_item.list_item );
   }
@@ -4008,6 +4004,14 @@
    p_port->p_adapter->p_ifc->destroy_av( p_endpt->h_av );
    p_endpt->h_av = NULL;
   }
+  
+  if( p_endpt->dlid )
+  {
+   cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,
+    &p_endpt->lid_item );
+   p_endpt->dlid = 0;
+  }
+  
  }
  cl_obj_unlock( &p_port->obj );
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: lid_change.patch
Type: application/octet-stream
Size: 924 bytes
Desc: lid_change.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20060704/8140c89d/attachment.obj>


More information about the ofw mailing list