[openib-general] create QP failure

Kyle Schochenmaier kschoche at scl.ameslab.gov
Fri Feb 24 10:16:14 PST 2006


Roland Dreier wrote:

> >   In my case, where I was pretty much literally calling:
> >    ibv_create_qp(c->qp,&attr);
> >    check_for_errors();
> >    ibv_create_qp(c->qp_ack,&attr);
> >    check_for_errors();
>
> >    The second create_qp call failed over.
> >    So maybe the answer to your question about parameter passing can
> > be discovered from that ;)
>
> >    Apparently it is (now?) necessary to use a seperate - or 'reset'
> > the old one - ibv_qp_init_attr struct to pass to subsequent
> > ibv_create_qp() calls.
>
>No, this is a bug in the verbs library or the kernel driver.  It
>should work fine to reuse the same structure, and it should not be
>necessary to clear anything in the attributes.  Can you give more
>details about the failure you're seeing?  For example, could you dump
>the QP attributes structure before and after the first ibv_create_qp()
>call?  Or you could just post a test case that shows the problem.
>
> - R.
>
>
>
>  
>
It appears as if att.cap.max_inline_data is getting set by create_qp()
(**ibv_qp_init_attr att**)
qp_context:(nil) send_cq:0x597020 recv_cq:0x597020 srq:(nil) s_wr:65535 
r_wr:65535 s_sge:28 r_sge:28 inline:0

    c->qp = ibv_create_qp(c->pd, &att);

(**ibv_qp_init_attr att**)
qp_context:(nil) send_cq:0x597020 recv_cq:0x597020 srq:(nil) s_wr:65535 
r_wr:65535 s_sge:28 r_sge:28 inline:476


..which causes the second create_qp() to fail.
I'm not entirely sure how to get any other useful return codes from this 
type of function call..
any ideas?

hope that helps,

 - Kyle

-- 
Kyle Schochenmaier
kschoche at scl.ameslab.gov
Research Assistant, Dr. Brett Bode
AmesLab - US Dept.Energy
Scalable Computing Laboratory 




More information about the general mailing list