[openib-general] ibv_cmd_create_qp() question

Roland Dreier rdreier at cisco.com
Wed Feb 15 13:30:52 PST 2006


    Heiko> Hello Steven, we had this problem, too. For
    Heiko> ibv_cmd_create_qp we pass via our cmd struct the address of
    Heiko> the response block to the kernel.The kernel can copies then
    Heiko> all values into the response block (from kernel space to
    Heiko> user space).

    Heiko> The provider library can then the provider specific
    Heiko> information which are passed from the kernel.

Oh man, I didn't notice that before.  Please don't work around the
existing code like that -- just fix the interface to do what you need.
I really don't want low-level drivers using extra userspace pointers
to stick their extra data into.

Please use the existing ib_copy_to_udata() function to add
driver-specific after the core response instead.  You can look at how
mthca gives the device-specific CQ number back to userspace for the
create CQ operation to see the right way to do this.

Making this work for create QP means that ibv_cmd_create_qp() needs to
handle responses the same what ibv_cmd_create_cq() does, which is a
driver API change.  But given that ehca needs it too, I'm now
convinced that the change that Steve wants for ibv_cmd_create_qp() is
necessary in libibverbs 1.0.

 - R.



More information about the general mailing list