From: Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Jiri Pirko <jiri-rHqAuBHg3fBzbRFIqnYvSA@public.gmane.org>,
Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Subject: Re: [PATCH rdma-next 2/6] IB/uverbs: Enable QP creation which is associated to underlay QP
Date: Sun, 04 Jun 2017 09:43:14 -0400 [thread overview]
Message-ID: <1496583794.7171.134.camel@redhat.com> (raw)
In-Reply-To: <20170530073352.GA1838@nanopsycho>
On Tue, 2017-05-30 at 09:33 +0200, Jiri Pirko wrote:
> Tue, May 30, 2017 at 09:15:58AM CEST, leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org wrote:
> >
> > From: Yishai Hadas <yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> >
> > 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-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> > Reviewed-by: Maor Gottlieb <maorg-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org
> > Signed-off-by: Leon Romanovsky <leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
> > ---
>
> [...]
>
>
> >
> > 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...
We don't really care about this particular uapi breakage.
First, this is the ib_uverbs_*ex*_create_qp struct, so this is already
part of the "extensible uAPI" we created back when we included XRC
support into the mainline kernel. A fundamental part of that uAPI was
that we were allowed to extend structs (but not reorganize them) so
that we could add new stuff to the end as we added features, but old
apps would continue to work. As a result, it was understood that the
uapi structs would continue to grow.
Given that fact, if we put a reserved1 element into a struct to pad it
out to a given size (which we did roughly 1 year ago with
commit c70285f880e88 (IB/uverbs: Extend create QP to get RWQ
indirection table) which made this change to the ex_create_qp struct:
__u32 create_flags;
+ __u32 rwq_ind_tbl_handle;
+ __u32 reserved1;
};
that doesn't mean a user of the uapi should directly reference this
element, it means we added 32 bits out of a 64 bit line and we'll add
the other 32 bits later, so don't reference that pad element by name,
use the preferred means of clearing the struct prior to use:
memset(sizeof(struct)) or calloc or equivalent. Given that only user
space verbs providers that have been updated to support the RWQ
indirection table would possibly ever even have seen this API element,
and given that those should be fairly rare at this point (I doubt that
any exist besides possibly libibverbs or rdma-core, I'm not sure if
this support went into libibverbs before we merged it into rdma-core,
but if it didn't, then only rdma-core would have been updated to know
about these last two struct elements), I'm not going to have Mellanox
put a bunch of ugly cruft in here for probably non-existent, but very
recently updated if it even exists, consumers that don't follow best
practice when accessing/clearing elements of an extensible struct.
--
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2017-06-04 13:43 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-30 7:15 [PATCH rdma-next 0/6] Enable flow steering on IPoIB UD QP Leon Romanovsky
[not found] ` <20170530071602.8139-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-05-30 7:15 ` [PATCH rdma-next 1/6] IB/core: Enable QP creation which is associated to underlay QP Leon Romanovsky
[not found] ` <20170530071602.8139-2-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-05-30 16:04 ` Jason Gunthorpe
[not found] ` <20170530160447.GA21513-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-06-01 14:42 ` Yishai Hadas
[not found] ` <1d799662-bc2b-ed12-882c-42d12d1ed8a1-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2017-06-05 15:36 ` Jason Gunthorpe
[not found] ` <CAFgAxU9c1SwehkCY3o0RZPO_CTHGJb2A1omjVvJvyabO0V57iQ@mail.gmail.com>
[not found] ` <CAFgAxU9c1SwehkCY3o0RZPO_CTHGJb2A1omjVvJvyabO0V57iQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-06 16:33 ` Jason Gunthorpe
[not found] ` <20170606163320.GC8671-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2017-06-07 12:23 ` Alex Rosenbaum
[not found] ` <CAFgAxU-=i2=yNnjE2kYHV0Re6Vrd=LyTB55q=p_1fc+zuotwvA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-06-07 17:44 ` Jason Gunthorpe
2017-05-30 7:15 ` [PATCH rdma-next 2/6] IB/uverbs: " Leon Romanovsky
[not found] ` <20170530071602.8139-3-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2017-05-30 7:33 ` Jiri Pirko
2017-05-30 7:58 ` Leon Romanovsky
[not found] ` <20170530075845.GA5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-30 8:00 ` Leon Romanovsky
2017-05-30 8:15 ` Jiri Pirko
2017-05-30 17:22 ` Leon Romanovsky
[not found] ` <20170530172259.GD5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-30 18:03 ` Jiri Pirko
2017-05-31 4:20 ` Leon Romanovsky
[not found] ` <20170531042031.GG5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-31 5:37 ` Jiri Pirko
2017-05-31 8:39 ` Leon Romanovsky
[not found] ` <20170531083955.GJ5406-U/DQcQFIOTAAJjI8aNfphQ@public.gmane.org>
2017-05-31 20:05 ` Hefty, Sean
2017-06-04 13:43 ` Doug Ledford [this message]
[not found] ` <1496583794.7171.134.camel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-06-04 13:51 ` Jiri Pirko
[not found] ` <20170604135122.GC1910-6KJVSR23iU488b5SBfVpbw@public.gmane.org>
2017-06-04 14:25 ` Doug Ledford
2017-06-05 15:26 ` Jason Gunthorpe
2017-05-30 7:15 ` [PATCH rdma-next 3/6] IB/mlx5: Add support for underlay QP managing Leon Romanovsky
2017-05-30 7:16 ` [PATCH rdma-next 4/6] IB/mlx5: Add multicast flow steering support for underlay QP Leon Romanovsky
2017-05-30 7:16 ` [PATCH rdma-next 5/6] net/mlx5: Report enhanced capabilities for IPoIB Leon Romanovsky
2017-05-30 7:16 ` [PATCH rdma-next 6/6] IB/mlx5: Report RX checksum " Leon Romanovsky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1496583794.7171.134.camel@redhat.com \
--to=dledford-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=jiri-rHqAuBHg3fBzbRFIqnYvSA@public.gmane.org \
--cc=leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=yishaih-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).