[ofa-general] Re: IB/core: Add creation flags to QPs

Jack Morgenstein jackm at dev.mellanox.co.il
Wed Mar 26 08:16:25 PDT 2008


On Wednesday 26 March 2008 16:53, Or Gerlitz wrote:
> and this means breaking the ABI, correct. If such a breakage is going to 
> happen anyway for the merge of XRC into the mainline kernel and the 
> official libibverbs as maintained by Roland, I guess this is fine. I see 
> 
Actually, we did not break the ABI for XRC (we had to do cartwheels to avoid
this, but what the heck).

The create_flags field was added ONLY to struct ib_qp_init_attr (kernel only),
and was not exported upwards to the userspace API (so as not to break the ABI).

I got around the create_flags problem by adding a new verb to userspace
(ibv_create_xrc_rcv_qp() ) with its own ABI to kernel space.  Since the kernel-space
function (added to uverbs_cmd: ib_uverbs_create_xrc_rcv_qp() ) "knew" that it 
was creating an XRC_RCV qp, it set the flag in ib_qp_init_attr appropriately.

Additionally, Eli did not need user-space involvement for his LSO flag -- so
we escaped needing to increment the ABI version number.

If we need to use the create_flags field in userspace, we WILL need to break the ABI.

You can avoid doing this in one of 2 ways:
Either:  create a new QP type
Or:      add new verbs to the core.

- Jack



More information about the general mailing list