[ofw] RE: Patch: [ipoib] Make sure that the dlid is zero ifitisnot in the list.

Tzachi Dar tzachid at mellanox.co.il
Sun Nov 16 05:37:14 PST 2008


Applied in 1765.

Thanks
Tzachi 

> -----Original Message-----
> From: Tzachi Dar 
> Sent: Wednesday, November 12, 2008 6:55 PM
> To: Tzachi Dar; Fab Tillier; Sean Hefty; Alex Estrin; 
> ofw at lists.openfabrics.org
> Subject: RE: [ofw] RE: Patch: [ipoib] Make sure that the dlid 
> is zero ifitisnot in the list.
> 
> After some more consulting with Fab, I have came to the 
> following patch.
> 
> (please note that this patch is not a must and if there won't 
> be another rc this will go to the trunk only) .
> 
> Thanks
> Tzachi
> 
> Index: ulp/ipoib/kernel/ipoib_endpoint.c 
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_endpoint.c	(revision 1724)
> +++ ulp/ipoib/kernel/ipoib_endpoint.c	(working copy)
> @@ -183,7 +183,7 @@
>  		return status;
>  	}
>  	p_endpt->h_mcast = p_mcast_rec->h_mcast;
> -	p_endpt->dlid = p_mcast_rec->p_member_rec->mlid;
> +	CL_ASSERT(p_endpt->dlid == 0);
>  
>  	IPOIB_EXIT( IPOIB_DBG_ENDPT );
>  	return IB_SUCCESS;
> Index: ulp/ipoib/kernel/ipoib_port.c
> ===================================================================
> --- ulp/ipoib/kernel/ipoib_port.c	(revision 1747)
> +++ ulp/ipoib/kernel/ipoib_port.c	(working copy)
> @@ -5066,7 +5066,7 @@
>  
>  	/* Allocate the broadcast endpoint. */
>  	p_endpt = ipoib_endpt_create( &p_mcast_rec->p_member_rec->mgid,
> -		p_mcast_rec->p_member_rec->mlid, 
> CL_HTON32(0x00FFFFFF) );
> +		0 , CL_HTON32(0x00FFFFFF) );
>  	if( !p_endpt )
>  	{
>  		IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, 
> IPOIB_DBG_ERROR, @@ -6064,7 +6064,6 @@
>  	ib_api_status_t		status;
>  	ipoib_port_t		*p_port;
>  	cl_fmap_item_t		*p_item;
> -	cl_map_item_t		*p_qitem;
>  	ipoib_endpt_t		*p_endpt;
>  
>  	IPOIB_ENTER( IPOIB_DBG_MCAST );
> @@ -6146,22 +6145,9 @@
>  
>  	/*
>  	 * The endpoint is already in the GID and MAC maps.
> -	 * Add it to the LID map if it has local scope.
> +	 * mast endpoint are not used in the LID map.
>  	 */
> -	if( p_endpt->dlid )
> -	{
> -		while( p_port->endpt_rdr )
> -			;
> -    
> -		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 );
> -		if (p_qitem != &p_endpt->lid_item) {
> -			// Since we failed to insert into the 
> list, make sure it is not removed
> -			p_endpt->dlid =0;
> -		}
> -		
> -	}
> +	CL_ASSERT(p_endpt->dlid == 0);
>  	/* set flag that endpoint is use */
>  	p_endpt->is_in_use = TRUE;
>  	cl_obj_unlock( &p_port->obj );
> 
> > -----Original Message-----
> > From: ofw-bounces at lists.openfabrics.org 
> > [mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
> > Sent: Tuesday, November 11, 2008 7:06 PM
> > To: Fab Tillier; Sean Hefty; Alex Estrin; ofw at lists.openfabrics.org
> > Subject: RE: [ofw] RE: Patch: [ipoib] Make sure that the 
> dlid is zero 
> > ifitisnot in the list.
> > 
> > Hi Fab,
> > 
> > I have tried creating a patch based on the suggestion you have 
> > mentioned.
> > 
> > On line 186 of  ipoib_endpoint.c I have changed the code from
> > 
> > p_endpt->dlid1 = p_mcast_rec->p_member_rec->mlid;
> > 
> > To CL_ASSERT(p_endpt->dlid1 == 0);
> > 
> > However this assert has happened as soon as I have loaded 
> the driver.
> > 
> > This might be because of a broadcast call, or something else, I'll 
> > debug it tomorrow.
> > 
> > Please also note that if the dlid is not zero, this means 
> that we will 
> > crash, since we will try to remove things from the lists.
> > 
> > Thanks
> > Tzachi
> > 
> > > -----Original Message-----
> > > From: Fab Tillier [mailto:ftillier at windows.microsoft.com]
> > > Sent: Tuesday, November 11, 2008 1:56 AM
> > > To: Sean Hefty; Tzachi Dar; Alex Estrin; ofw at lists.openfabrics.org
> > > Subject: RE: [ofw] RE: Patch: [ipoib] Make sure that the
> > dlid is zero
> > > if itisnot in the list.
> > > 
> > > >> So multicast endpoints shouldn't need to be in the LID
> > > map, though I
> > > >> can't imagine a reason why that would be problematic
> > > (unless multiple
> > > >> groups map to the same LID - though is that even possible?)
> > > >
> > > > I think multiple multicast groups can map to the same MLID,
> > > and this
> > > > is needed to support IPv6.
> > > 
> > > Ok, then line 186 of ipoib_endpoint.c needs to go away, and lines
> > > 6084-6096 of ipoib_port.c probably do too (multicast
> > endpoints should
> > > never go in the LID map).
> > > 
> > > -Fab
> > > 
> > _______________________________________________
> > ofw mailing list
> > ofw at lists.openfabrics.org
> > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> > 



More information about the ofw mailing list