On Wed, May 31, 2017 at 07:37:11AM +0200, Jiri Pirko wrote: > Wed, May 31, 2017 at 06:20:31AM CEST, leon@xxxxxxxxxx wrote: > >On Tue, May 30, 2017 at 08:03:58PM +0200, Jiri Pirko wrote: > >> Tue, May 30, 2017 at 07:22:59PM CEST, leon@xxxxxxxxxx wrote: > >> >On Tue, May 30, 2017 at 10:15:14AM +0200, Jiri Pirko wrote: > >> >> Tue, May 30, 2017 at 09:58:45AM CEST, leon@xxxxxxxxxx wrote: > >> >> >On Tue, May 30, 2017 at 09:33:52AM +0200, Jiri Pirko wrote: > >> >> >> Tue, May 30, 2017 at 09:15:58AM CEST, leon@xxxxxxxxxx wrote: > >> >> >> >From: Yishai Hadas <yishaih@xxxxxxxxxxxx> > >> >> >> > > >> >> >> >Enable QP creation which is associated to underlay QP. This comes as a > >> >> >> >pre-patch for downstream patches in this series to enable flow steering > >> >> >> >from user space application on the underlay IPoIB QP. > >> >> >> > > >> >> >> >Signed-off-by: Yishai Hadas <yishaih@xxxxxxxxxxxx> > >> >> >> >Reviewed-by: Maor Gottlieb <maorg@xxxxxxxxxxxx > >> >> >> >Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx> > >> >> >> >--- > >> >> >> > >> >> >> [...] > >> >> >> > >> >> >> > >> >> >> >diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h > >> >> >> >index 477d629f539d..422b20456975 100644 > >> >> >> >--- a/include/uapi/rdma/ib_user_verbs.h > >> >> >> >+++ b/include/uapi/rdma/ib_user_verbs.h > >> >> >> >@@ -578,7 +578,7 @@ struct ib_uverbs_ex_create_qp { > >> >> >> > __u32 comp_mask; > >> >> >> > __u32 create_flags; > >> >> >> > __u32 rwq_ind_tbl_handle; > >> >> >> >- __u32 reserved1; > >> >> >> >+ __u32 associated_qpn; > >> >> >> > >> >> >> This breaks uapi... > >> >> > > >> >> >Not really, we are using comp_mask scheme to signal changes/predecessor > >> >> >of these structs. Users of this file and structs check comp_mask and > >> >> >access new fields only if they are exposed there. > >> >> > > >> >> >In this case, there are no users of reserved1 and hence it can be > >> >> >replace to the new field with corresponding comp_mask flag (IB_QP_CREATE_ASSOC_QPN) > >> >> >without worry of breakage. > >> >> > >> >> I, as an app could include ib_user_verbs.h and do: > >> >> > >> >> struct ib_uverbs_ex_create_qp something; > >> >> > >> >> something.reserved1 = 0; > >> >> > >> >> Than I won't compile, would I? > >> > > >> >You are right, the good thing that in IB world, there is no direct usage > >> >of these files and they are needed for rdma-core (libibverbs) library. > >> > >> Unfortunatelly, that does not make any difference. UAPI is UAPI... > > > >Yes, it makes. Changes in UAPI are allowed as long they don't break user > >space applications. In this case, there are no applications which uses > >this reserved fields directly. > > How do you know? I might have one in my drawer :) Because, we had this brave man [1] who wanted to implement libibverbs by himself in GO language and Jason gave a very good explanation [2, 3] why it is not likely to happen in near future. [1] http://marc.info/?l=linux-rdma&m=149302796407374&w=2 [2] http://marc.info/?l=linux-rdma&m=149305872017354&w=2 [3] http://marc.info/?l=linux-rdma&m=149314196207011&w=2 > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: PGP signature