[ofw] RE: [IPoIB CM] patch makes priority for remotely initiated connection.

Alex Estrin alex.estrin at qlogic.com
Tue Jan 20 12:21:16 PST 2009


 Hi Fab,

Just noticed a typo in a subject line. 
I guess my new glasses are not as good as should be :(

> -----Original Message-----
> From: Fab Tillier [mailto:ftillier at windows.microsoft.com] 
> Sent: Tuesday, January 20, 2009 12:09 PM
> To: Alex Estrin; ofw at lists.openfabrics.org
> Subject: RE: [IPoIB CM] patch makes proprity for remotely 
> initiated connection.
> 
> > Index: kernel/ipoib_cm.c
> > ===================================================================
> > --- kernel/ipoib_cm.c   (revision 1856)
> > +++ kernel/ipoib_cm.c   (working copy)
> > @@ -666,9 +666,9 @@
> >         IPOIB_PRINT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT,
> >                 ("Endpoint [ %p ] CONNECT ACCEPTED\n", p_endpt ) );
> >
> > -       InterlockedCompareExchangePointer(
> > +       InterlockedExchangePointer(
> >                                 (void *)&p_endpt->conn.h_work_qp,
> > -                               p_endpt->conn.h_recv_qp, 
> (void *)NULL
> > );
> > +                               p_endpt->conn.h_recv_qp );
> 
> What happens to the original QP (h_work_qp)?  Is it tracked 
> elsewhere and freed?

Yes, one endpoint connection can have one or two RC queue pairs.
Windows never sends connect request if it is already connected or in a process, so it uses only one RC QP for CM path.
While Linux always sends CREQ even if it already accepted remote one, so for Linux-windows pair t
Both QP handlers are tracked in endpt_conn_t struct. Freed on endpoint destruction.

typedef struct _endpt_conn 
{
	ib_net64_t			service_id;
	cm_private_data_t	private_data;
	ib_qp_handle_t		h_send_qp;
	ib_qp_handle_t		h_recv_qp;
	ib_qp_handle_t		h_work_qp;
	ib_cq_handle_t		h_send_cq;
	ib_cq_handle_t		h_recv_cq;
	ib_listen_handle_t h_cm_listen;
	cm_state_t			state;

} endpt_conn_t;

Alex.

> 
> >
> >         cl_obj_lock( &p_port->obj );
> >         if( endpt_cm_set_state( p_endpt, IPOIB_CM_CONNECTED ) !=
> > IPOIB_CM_CONNECTED )
> >
> > _______________________________________________
> > ofw mailing list
> > ofw at lists.openfabrics.org
> > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
> 
> 


More information about the ofw mailing list