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
[EMAIL PROTECTED]
Research Assistant, Dr. Brett Bode
AmesLab - US Dept.Energy
Scalable Computing Laboratory
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to