[ofw] IBAL CM ignores responder resources of the passive side
Leonid Keller
leonid at mellanox.co.il
Wed Jun 22 10:02:43 PDT 2011
I'm afraid that just
p_cep->resp_res = p_cm_rep->resp_res;
can break some existing applications, which do not fill p_cm_rep->resp_res and still work.
Maybe
if (p_cm_rep->resp_res)
p_cep->resp_res = p_cm_rep->resp_res;
> -----Original Message-----
> From: Hefty, Sean [mailto:sean.hefty at intel.com]
> Sent: Wednesday, June 22, 2011 7:04 PM
> To: Leonid Keller; Fab Tillier
> Cc: ofw_list
> Subject: RE: IBAL CM ignores responder resources of the passive side
>
> without looking at more of the code, it looks like a bug
>
>
> > __save_user_rep(
> >
> > IN
> > cep_agent_t* const p_port_cep,
> >
> > IN
> > kcep_t* const
> p_cep,
> >
> > IN const iba_cm_rep*
> const
> > p_cm_rep,
> >
> > IN
> > uint8_t
> > rnr_nak_timeout )
> >
> > {
> >
> > AL_ENTER( AL_DBG_CM );
> >
> >
> >
> > p_cep->local_qpn = p_cm_rep->qpn;
> >
> > p_cep->rq_psn = p_cm_rep->starting_psn;
> >
> > p_cep->init_depth = p_cm_rep->init_depth;
> >
> >
> >
>
>
> I think we can just always do the assignment:
>
> p_cep->resp_res = p_cm_rep->resp_res;
>
> here. Is the p_cep->resp_res the value that actually goes into the
> REP?
>
>
> > ci_ca_lock_attr( p_port_cep->h_ca->obj.p_ci_ca );
> >
> > /* Check the CA's responder resource max and trim if
> > necessary. */
> >
> > if( p_port_cep->h_ca->obj.p_ci_ca->p_pnp_attr-
> > >max_qp_resp_res <
>
>
> whine: The max_qp_resp_res isn't going to dynamically change. We
> should use a saved value somewhere that doesn't require serializing all
> CM users for this check.
>
> - Sean
More information about the ofw
mailing list