Message ID | 20190704021259.15489-16-jeffrey.t.kirsher@intel.com (mailing list archive) |
---|---|
State | Changes Requested |
Headers | show |
Series | Intel RDMA Diver Updates 2019-07-03 | expand |
On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 ++++++++++++++++++++++++++++++++++ > 1 file changed, 130 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..bdfbda4c829e > --- /dev/null > +++ b/include/uapi/rdma/irdma-abi.h > @@ -0,0 +1,130 @@ > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > +/* 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 Can you please elaborate about it more? There is no irdma code in RDMA yet, so it makes me wonder why new define shouldn't start from 1. Thanks
On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 ++++++++++++++++++++++++++++++++++ > > 1 file changed, 130 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..bdfbda4c829e > > +++ b/include/uapi/rdma/irdma-abi.h > > @@ -0,0 +1,130 @@ > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > +/* 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 > > Can you please elaborate about it more? > There is no irdma code in RDMA yet, so it makes me wonder why new define > shouldn't start from 1. It is because they are ABI compatible with the current user space, which raises the question why we even have this confusing header file.. I think this needs to be added after you delete the old driver. Jason
> Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > ++++++++++++++++++++++++++++++++++ > > > 1 file changed, 130 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..bdfbda4c829e > > > +++ b/include/uapi/rdma/irdma-abi.h > > > @@ -0,0 +1,130 @@ > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > +/* 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 > > > > Can you please elaborate about it more? > > There is no irdma code in RDMA yet, so it makes me wonder why new > > define shouldn't start from 1. > > It is because they are ABI compatible with the current user space, which raises the > question why we even have this confusing header file.. It is because we need to support current providers/i40iw user-space. Our user-space patch series will introduce a new provider (irdma) whose ABI ver. is also 6 (capable of supporting X722 and which will work with i40iw driver on older kernels) and removes providers/i40iw from rdma-core.
On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > ++++++++++++++++++++++++++++++++++ > > > > 1 file changed, 130 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..bdfbda4c829e > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > @@ -0,0 +1,130 @@ > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > +/* 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 > > > > > > Can you please elaborate about it more? > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > define shouldn't start from 1. > > > > It is because they are ABI compatible with the current user space, which raises the > > question why we even have this confusing header file.. > > It is because we need to support current providers/i40iw user-space. > Our user-space patch series will introduce a new provider (irdma) whose ABI > ver. is also 6 (capable of supporting X722 and which will work with i40iw driver > on older kernels) and removes providers/i40iw from rdma-core. Why on earth would we do that? Jason
> Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > > ++++++++++++++++++++++++++++++++++ > > > > > 1 file changed, 130 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..bdfbda4c829e > > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > > @@ -0,0 +1,130 @@ > > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > > +/* 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 > > > > > > > > Can you please elaborate about it more? > > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > > define shouldn't start from 1. > > > > > > It is because they are ABI compatible with the current user space, > > > which raises the question why we even have this confusing header file.. > > > > It is because we need to support current providers/i40iw user-space. > > Our user-space patch series will introduce a new provider (irdma) > > whose ABI ver. is also 6 (capable of supporting X722 and which will > > work with i40iw driver on older kernels) and removes providers/i40iw from rdma- > core. > > Why on earth would we do that? > A unified library providers/irdma to go in hand with the driver irdma and uses the ABI header. It can support the new network device e810 and existing x722 iWARP device. It obsoletes providers/i40iw and extends its ABI. So why keep providers/i40iw around in rdma-core? Shiraz
On Sat, Jul 06, 2019 at 04:15:20PM +0000, Saleem, Shiraz wrote: > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > > > ++++++++++++++++++++++++++++++++++ > > > > > > 1 file changed, 130 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..bdfbda4c829e > > > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > > > @@ -0,0 +1,130 @@ > > > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > > > +/* 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 > > > > > > > > > > Can you please elaborate about it more? > > > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > > > define shouldn't start from 1. > > > > > > > > It is because they are ABI compatible with the current user space, > > > > which raises the question why we even have this confusing header file.. > > > > > > It is because we need to support current providers/i40iw user-space. > > > Our user-space patch series will introduce a new provider (irdma) > > > whose ABI ver. is also 6 (capable of supporting X722 and which will > > > work with i40iw driver on older kernels) and removes providers/i40iw from rdma- > > core. > > > > Why on earth would we do that? > > > A unified library providers/irdma to go in hand with the driver irdma and uses the ABI header. > It can support the new network device e810 and existing x722 iWARP device. It obsoletes > providers/i40iw and extends its ABI. So why keep providers/i40iw around in rdma-core? Why rewrite a perfectly good userspace that is compatible with the future and past kernels? Is there something so wrong with the userspace provider to need this? Jason
On Mon, Jul 08, 2019 at 02:13:39PM +0000, Jason Gunthorpe wrote: > On Sat, Jul 06, 2019 at 04:15:20PM +0000, Saleem, Shiraz wrote: > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > > > > ++++++++++++++++++++++++++++++++++ > > > > > > > 1 file changed, 130 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..bdfbda4c829e > > > > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > > > > @@ -0,0 +1,130 @@ > > > > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > > > > +/* 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 > > > > > > > > > > > > Can you please elaborate about it more? > > > > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > > > > define shouldn't start from 1. > > > > > > > > > > It is because they are ABI compatible with the current user space, > > > > > which raises the question why we even have this confusing header file.. > > > > > > > > It is because we need to support current providers/i40iw user-space. > > > > Our user-space patch series will introduce a new provider (irdma) > > > > whose ABI ver. is also 6 (capable of supporting X722 and which will > > > > work with i40iw driver on older kernels) and removes providers/i40iw from rdma- > > > core. > > > > > > Why on earth would we do that? > > > > > A unified library providers/irdma to go in hand with the driver irdma and uses the ABI header. > > It can support the new network device e810 and existing x722 iWARP device. It obsoletes > > providers/i40iw and extends its ABI. So why keep providers/i40iw around in rdma-core? > > Why rewrite a perfectly good userspace that is compatible with the > future and past kernels? > > Is there something so wrong with the userspace provider to need this? > Yes, the issue is that providers/i40iw was never designed to work with a unified driver which supports multiple hardware generations. Henry
On Tue, Jul 09, 2019 at 03:56:13PM -0500, Henry Orosco wrote: > On Mon, Jul 08, 2019 at 02:13:39PM +0000, Jason Gunthorpe wrote: > > On Sat, Jul 06, 2019 at 04:15:20PM +0000, Saleem, Shiraz wrote: > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > > > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > > > > > ++++++++++++++++++++++++++++++++++ > > > > > > > > 1 file changed, 130 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..bdfbda4c829e > > > > > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > > > > > @@ -0,0 +1,130 @@ > > > > > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > > > > > +/* 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 > > > > > > > > > > > > > > Can you please elaborate about it more? > > > > > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > > > > > define shouldn't start from 1. > > > > > > > > > > > > It is because they are ABI compatible with the current user space, > > > > > > which raises the question why we even have this confusing header file.. > > > > > > > > > > It is because we need to support current providers/i40iw user-space. > > > > > Our user-space patch series will introduce a new provider (irdma) > > > > > whose ABI ver. is also 6 (capable of supporting X722 and which will > > > > > work with i40iw driver on older kernels) and removes providers/i40iw from rdma- > > > > core. > > > > > > > > Why on earth would we do that? > > > > > > > A unified library providers/irdma to go in hand with the driver irdma and uses the ABI header. > > > It can support the new network device e810 and existing x722 iWARP device. It obsoletes > > > providers/i40iw and extends its ABI. So why keep providers/i40iw around in rdma-core? > > > > Why rewrite a perfectly good userspace that is compatible with the > > future and past kernels? > > > > Is there something so wrong with the userspace provider to need this? > > > > Yes, the issue is that providers/i40iw was never designed to work with a unified driver > which supports multiple hardware generations. Do you plan to remove i40iw from kernel immediately after your irdma will be merged? Thanks > > Henry
On Tue, Jul 09, 2019 at 03:56:13PM -0500, Henry Orosco wrote: > On Mon, Jul 08, 2019 at 02:13:39PM +0000, Jason Gunthorpe wrote: > > On Sat, Jul 06, 2019 at 04:15:20PM +0000, Saleem, Shiraz wrote: > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > On Fri, Jul 05, 2019 at 04:42:19PM +0000, Saleem, Shiraz wrote: > > > > > > Subject: Re: [rdma 14/16] RDMA/irdma: Add ABI definitions > > > > > > > > > > > > On Thu, Jul 04, 2019 at 10:40:21AM +0300, Leon Romanovsky wrote: > > > > > > > On Wed, Jul 03, 2019 at 07:12:57PM -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 | 130 > > > > > > > > ++++++++++++++++++++++++++++++++++ > > > > > > > > 1 file changed, 130 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..bdfbda4c829e > > > > > > > > +++ b/include/uapi/rdma/irdma-abi.h > > > > > > > > @@ -0,0 +1,130 @@ > > > > > > > > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ > > > > > > > > +/* 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 > > > > > > > > > > > > > > Can you please elaborate about it more? > > > > > > > There is no irdma code in RDMA yet, so it makes me wonder why new > > > > > > > define shouldn't start from 1. > > > > > > > > > > > > It is because they are ABI compatible with the current user space, > > > > > > which raises the question why we even have this confusing header file.. > > > > > > > > > > It is because we need to support current providers/i40iw user-space. > > > > > Our user-space patch series will introduce a new provider (irdma) > > > > > whose ABI ver. is also 6 (capable of supporting X722 and which will > > > > > work with i40iw driver on older kernels) and removes providers/i40iw from rdma- > > > > core. > > > > > > > > Why on earth would we do that? > > > > > > > A unified library providers/irdma to go in hand with the driver irdma and uses the ABI header. > > > It can support the new network device e810 and existing x722 iWARP device. It obsoletes > > > providers/i40iw and extends its ABI. So why keep providers/i40iw around in rdma-core? > > > > Why rewrite a perfectly good userspace that is compatible with the > > future and past kernels? > > > > Is there something so wrong with the userspace provider to need this? > > > > Yes, the issue is that providers/i40iw was never designed to work with a unified driver > which supports multiple hardware generations. But Shiraz said it works fine with the new kernel driver.. So what is actually the problem? Jason
diff --git a/include/uapi/rdma/irdma-abi.h b/include/uapi/rdma/irdma-abi.h new file mode 100644 index 000000000000..bdfbda4c829e --- /dev/null +++ b/include/uapi/rdma/irdma-abi.h @@ -0,0 +1,130 @@ +/* SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */ +/* 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; + __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; + __u8 hw_rev; + __u8 rsvd3[6]; +}; + +struct i40iw_alloc_ucontext_resp { + __u32 max_pds; + __u32 max_qps; + __u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */ + __u8 kernel_ver; + __u8 rsvd[3]; +}; + +struct irdma_alloc_pd_resp { + __u32 pd_id; + __u8 rsvd[4]; +}; + +struct irdma_resize_cq_req { + __aligned_u64 user_cq_buffer; +}; + +struct irdma_create_cq_req { + __aligned_u64 user_cq_buf; + __aligned_u64 user_shadow_area; +}; + +struct irdma_create_qp_req { + __aligned_u64 user_wqe_bufs; + __aligned_u64 user_compl_ctx; +}; + +struct i40iw_create_qp_req { + __aligned_u64 user_wqe_bufs; + __aligned_u64 user_compl_ctx; +}; + +struct irdma_mem_reg_req { + __u16 reg_type; /* Memory, QP or CQ */ + __u16 cq_pages; + __u16 rq_pages; + __u16 sq_pages; +}; + +struct irdma_create_cq_resp { + __u32 cq_id; + __u32 cq_size; +}; + +struct irdma_create_qp_resp { + __u32 qp_id; + __u32 actual_sq_size; + __u32 actual_rq_size; + __u32 irdma_drv_opt; + __u32 qp_caps; + __u16 rsvd1; + __u8 lsmm; + __u8 rsvd2; +}; + +struct i40iw_create_qp_resp { + __u32 qp_id; + __u32 actual_sq_size; + __u32 actual_rq_size; + __u32 i40iw_drv_opt; + __u16 push_idx; + __u8 lsmm; + __u8 rsvd; +}; + +struct irdma_modify_qp_resp { + __u16 push_idx; + __u16 push_offset; + __u8 rsvd[4]; +}; + +struct irdma_create_ah_resp { + __u32 ah_id; + __u8 rsvd[4]; +}; +#endif /* IRDMA_ABI_H */