[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