All of lore.kernel.org
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel.org>
To: "Saleem, Shiraz" <shiraz.saleem@intel.com>
Cc: "Kirsher, Jeffrey T" <jeffrey.t.kirsher@intel.com>,
	"gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
	"jgg@ziepe.ca" <jgg@ziepe.ca>,
	"Ismail, Mustafa" <mustafa.ismail@intel.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>,
	"nhorman@redhat.com" <nhorman@redhat.com>,
	"sassmann@redhat.com" <sassmann@redhat.com>
Subject: Re: [RFC PATCH v5 14/16] RDMA/irdma: Add ABI definitions
Date: Tue, 21 Apr 2020 10:22:53 +0300	[thread overview]
Message-ID: <20200421072253.GH121146@unreal> (raw)
In-Reply-To: <9DD61F30A802C4429A01CA4200E302A7DCD485D1@fmsmsx124.amr.corp.intel.com>

On Tue, Apr 21, 2020 at 12:29:15AM +0000, Saleem, Shiraz wrote:
> > Subject: Re: [RFC PATCH v5 14/16] RDMA/irdma: Add ABI definitions
> >
> > On Fri, Apr 17, 2020 at 10:12:49AM -0700, Jeff Kirsher wrote:
> > > From: Mustafa Ismail <mustafa.ismail@intel.com>
> > >
> > > Add ABI definitions for irdma.
> > >
> > > Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
> > > Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
> > > ---
> > >  include/uapi/rdma/irdma-abi.h | 140
> > > ++++++++++++++++++++++++++++++++++
> > >  1 file changed, 140 insertions(+)
> > >  create mode 100644 include/uapi/rdma/irdma-abi.h
> > >
> > > diff --git a/include/uapi/rdma/irdma-abi.h
> > > b/include/uapi/rdma/irdma-abi.h new file mode 100644 index
> > > 000000000000..2eb253220161
> > > --- /dev/null
> > > +++ b/include/uapi/rdma/irdma-abi.h
> > > @@ -0,0 +1,140 @@
> > > +/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR
> > > +Linux-OpenIB) */
> > > +/*
> > > + * Copyright (c) 2006 - 2019 Intel Corporation.  All rights reserved.
> > > + * Copyright (c) 2005 Topspin Communications.  All rights reserved.
> > > + * Copyright (c) 2005 Cisco Systems.  All rights reserved.
> > > + * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
> > > + */
> > > +
> > > +#ifndef IRDMA_ABI_H
> > > +#define IRDMA_ABI_H
> > > +
> > > +#include <linux/types.h>
> > > +
> > > +/* irdma must support legacy GEN_1 i40iw kernel
> > > + * and user-space whose last ABI ver is 5  */ #define IRDMA_ABI_VER 6
> > > +
> > > +enum irdma_memreg_type {
> > > +	IW_MEMREG_TYPE_MEM  = 0,
> > > +	IW_MEMREG_TYPE_QP   = 1,
> > > +	IW_MEMREG_TYPE_CQ   = 2,
> > > +	IW_MEMREG_TYPE_RSVD = 3,
> > > +	IW_MEMREG_TYPE_MW   = 4,
> > > +};
> > > +
> > > +struct irdma_alloc_ucontext_req {
> > > +	__u32 rsvd32;
> > > +	__u8 userspace_ver;
> > > +	__u8 rsvd8[3];
> > > +};
> > > +
> > > +struct i40iw_alloc_ucontext_req {
> > > +	__u32 rsvd32;
> > > +	__u8 userspace_ver;
> > > +	__u8 rsvd8[3];
> > > +};
> > > +
> > > +struct irdma_alloc_ucontext_resp {
> > > +	__aligned_u64 feature_flags;
> > > +	__aligned_u64 db_mmap_key;
> > > +	__u32 max_hw_wq_frags;
> > > +	__u32 max_hw_read_sges;
> > > +	__u32 max_hw_inline;
> > > +	__u32 max_hw_rq_quanta;
> > > +	__u32 max_hw_wq_quanta;
> > > +	__u32 min_hw_cq_size;
> > > +	__u32 max_hw_cq_size;
> > > +	__u32 rsvd1[7];
> > > +	__u16 max_hw_sq_chunk;
> > > +	__u16 rsvd2[11];
> > > +	__u8 kernel_ver;
> >
> > Why do you need to copy this kernel_ver from i40iw?
> > Especially given the fact that i40iw didn't use it too much
> >  120 static int i40iw_alloc_ucontext(struct ib_ucontext *uctx,
> >  121                                 struct ib_udata *udata)
> >  <...>
> >  140         uresp.kernel_ver = req.userspace_ver;
> >
> Its used to pass the current driver ABI ver. to user-space so that
> there is compatibility check in user-space as well.
> for example: old i40iw user-space provider wont bind to gen_2 devices
> by checking the kernel_ver and finding its incompatible. It will bind with
> gen_1 devices though..

I understand that you must keep it in struct i40iw_alloc_ucontext_resp,
but here we are talking about struct irdma_alloc_ucontext_resp. Anyway
the rdma-core should be extended to work with this new struct and you
always return kernel_ver == userspace_ver, which makes impossible to
do any compatibility check.

Plus kernel is expected to be backward compatible.

Thanks

>

  reply	other threads:[~2020-04-21  7:22 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-17 17:12 [RFC PATCH v5 00/16] Add Intel Ethernet Protocol Driver for RDMA (irdma) Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 01/16] RDMA/irdma: Add driver framework definitions Jeff Kirsher
2020-04-17 19:34   ` Leon Romanovsky
2020-04-21  0:23     ` Saleem, Shiraz
2020-04-21  0:46       ` Jason Gunthorpe
2020-04-21 18:19         ` Saleem, Shiraz
2020-04-21 18:22           ` Jason Gunthorpe
2020-04-23  0:32             ` Saleem, Shiraz
2020-04-23 15:02               ` Jason Gunthorpe
2020-04-23 17:15                 ` Saleem, Shiraz
2020-04-23 19:03                   ` Jason Gunthorpe
2020-04-23 23:54                     ` Saleem, Shiraz
2020-04-24  0:48                       ` Jason Gunthorpe
2020-04-27 23:57                         ` Saleem, Shiraz
2020-04-28  0:03                           ` Jason Gunthorpe
2020-04-21  7:14       ` Leon Romanovsky
2020-04-17 19:37   ` Jason Gunthorpe
2020-04-17 17:12 ` [RFC PATCH v5 02/16] RDMA/irdma: Implement device initialization definitions Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 03/16] RDMA/irdma: Implement HW Admin Queue OPs Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 04/16] RDMA/irdma: Add HMC backing store setup functions Jeff Kirsher
2020-04-17 20:17   ` Leon Romanovsky
2020-04-21  0:25     ` Saleem, Shiraz
2020-04-17 17:12 ` [RFC PATCH v5 05/16] RDMA/irdma: Add privileged UDA queue implementation Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 06/16] RDMA/irdma: Add QoS definitions Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 07/16] RDMA/irdma: Add connection manager Jeff Kirsher
2020-04-17 20:23   ` Leon Romanovsky
2020-04-21  0:26     ` Saleem, Shiraz
2020-04-21  7:33       ` Leon Romanovsky
2020-04-17 17:12 ` [RFC PATCH v5 08/16] RDMA/irdma: Add PBLE resource manager Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 09/16] RDMA/irdma: Implement device supported verb APIs Jeff Kirsher
2020-04-17 19:59   ` Leon Romanovsky
2020-04-21  0:29     ` Saleem, Shiraz
2020-04-21  7:16       ` Leon Romanovsky
2020-04-17 17:12 ` [RFC PATCH v5 10/16] RDMA/irdma: Add RoCEv2 UD OP support Jeff Kirsher
2020-04-17 19:46   ` Leon Romanovsky
2020-04-21  0:27     ` Saleem, Shiraz
2020-04-17 17:12 ` [RFC PATCH v5 11/16] RDMA/irdma: Add user/kernel shared libraries Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 12/16] RDMA/irdma: Add miscellaneous utility definitions Jeff Kirsher
2020-04-17 20:32   ` Leon Romanovsky
2020-04-21  0:27     ` Saleem, Shiraz
2020-04-21  7:30       ` Leon Romanovsky
2020-04-22  0:02         ` Saleem, Shiraz
2020-04-22  0:06           ` Jason Gunthorpe
2020-04-23  0:32             ` Saleem, Shiraz
2020-04-17 17:12 ` [RFC PATCH v5 13/16] RDMA/irdma: Add dynamic tracing for CM Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 14/16] RDMA/irdma: Add ABI definitions Jeff Kirsher
2020-04-17 19:43   ` Leon Romanovsky
2020-04-21  0:29     ` Saleem, Shiraz
2020-04-21  7:22       ` Leon Romanovsky [this message]
2020-04-17 17:12 ` [RFC PATCH v5 15/16] RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw Jeff Kirsher
2020-04-17 17:12 ` [RFC PATCH v5 16/16] RDMA/irdma: Update MAINTAINERS file Jeff Kirsher

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=20200421072253.GH121146@unreal \
    --to=leon@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jeffrey.t.kirsher@intel.com \
    --cc=jgg@ziepe.ca \
    --cc=linux-rdma@vger.kernel.org \
    --cc=mustafa.ismail@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=nhorman@redhat.com \
    --cc=sassmann@redhat.com \
    --cc=shiraz.saleem@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.