[dpdk-dev,RFC] mlx5: update NIC documentation on RDMA core version

Message ID 20180102214421.22707-1-stephen@networkplumber.org (mailing list archive)
State Rejected, archived
Delegated to: Shahaf Shuler
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Stephen Hemminger Jan. 2, 2018, 9:44 p.m. UTC
  The current driver requires v16.  It will not work or build with
the older version (as in Debian stable). Note: libmlx5 is rolled
into rdma-core in current versions.

Mlx4 probably requires similar documentation update.

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
---
 doc/guides/nics/mlx5.rst | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)
  

Comments

Nélio Laranjeiro Jan. 3, 2018, 7:52 a.m. UTC | #1
Hi Stephen,

Seems you missed an important point, MLNX_OFED is still supported with
this driver allowing it to work on stable releases like strict debian 9
i.e. without updating the Linux kernel.

On Tue, Jan 02, 2018 at 01:44:21PM -0800, Stephen Hemminger wrote:
> The current driver requires v16.  It will not work or build with
> the older version (as in Debian stable). Note: libmlx5 is rolled
> into rdma-core in current versions.
> 
> Mlx4 probably requires similar documentation update.
> 
> Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
> ---
>  doc/guides/nics/mlx5.rst | 18 +++++++++---------
>  1 file changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
> index f9558da89b61..603dd4e9c1cd 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -299,26 +299,26 @@ Prerequisites
>  -------------
>  
>  This driver relies on external libraries and kernel drivers for resources
> -allocations and initialization. The following dependencies are not part of
> -DPDK and must be installed separately:
> +allocations and initialization. The following packages come from the
> +Linux RDMA core https://github.com/linux-rdma/rdma-core. The current
> +version of this driver requires version version 16 or later.

Not only, they are also present in MLNX_OFED >= 4.2 for regular
distribution without updating the Linux Kernel.  In such situation
installing RDMA-Core is useless.

>  - **libibverbs**
>  
>    User space Verbs framework used by librte_pmd_mlx5. This library provides
> -  a generic interface between the kernel and low-level user space drivers
> -  such as libmlx5.
> +  a generic interface between the kernel and low-level user space drivers.
>  
>    It allows slow and privileged operations (context initialization, hardware
>    resources allocations) to be managed by the kernel and fast operations to
>    never leave user space.
>  
> -- **libmlx5**
> +  The development package (libibverbs-dev or libibverbs-devel) are necessary
> +  for compilation.

Not really MLNX_OFED >= 4.2 or libibverbs-dev or libibverbs-devel are
necessary.  People using MLNX_OFED must not install libibverbs-dev(el)
packages.

> -  Low-level user space driver library for Mellanox ConnectX-4/ConnectX-5
> -  devices, it is automatically loaded by libibverbs.
> +- **rdma-core**
>  
> -  This library basically implements send/receive calls to the hardware
> -  queues.
> +  The basic userspace infrastructure for interaction with RDMA subsystem
> +  on Linux.
>  
>  - **Kernel modules**
>  
> -- 
> 2.15.1

Keep both situation in the documentation for costumers who uses:

 - stable distribution in conjunction with MLNX_OFED
 - stable distribution with updated Linux kernel using RDMA-Core.

Both are supported.

Thanks,
  
Stephen Hemminger Jan. 3, 2018, 3:23 p.m. UTC | #2
On Wed, 3 Jan 2018 08:52:01 +0100
Nelio Laranjeiro <nelio.laranjeiro@6wind.com> wrote:

> Hi Stephen,
> 
> Seems you missed an important point, MLNX_OFED is still supported with
> this driver allowing it to work on stable releases like strict debian 9
> i.e. without updating the Linux kernel.

So the documentation should reflect the two possibilities more clearly.

OFED version > ??
or RDMA core version >= 16

The current documentation is unclear and doesn't help the users.
  
Nélio Laranjeiro Jan. 4, 2018, 7:54 a.m. UTC | #3
On Wed, Jan 03, 2018 at 07:23:30AM -0800, Stephen Hemminger wrote:
> On Wed, 3 Jan 2018 08:52:01 +0100
> Nelio Laranjeiro <nelio.laranjeiro@6wind.com> wrote:
> 
> > Hi Stephen,
> > 
> > Seems you missed an important point, MLNX_OFED is still supported with
> > this driver allowing it to work on stable releases like strict debian 9
> > i.e. without updating the Linux kernel.
> 
> So the documentation should reflect the two possibilities more clearly.
> 
> OFED version > ??
> or RDMA core version >= 16
> 
> The current documentation is unclear and doesn't help the users.

It is explained in the section "21.5.1. Installation" [1] of the mlx5
documentation.

I am not against modifying the documentation to make it more clearer,
but we need to keep both information MLNX_OFED with un-modified
distributions or Linux Kernel upstream with RDMA-Core for those who have
modified their Linux Kernel.

Thanks,

[1] http://dpdk.org/doc/guides/nics/mlx5.html#installation
  

Patch

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index f9558da89b61..603dd4e9c1cd 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -299,26 +299,26 @@  Prerequisites
 -------------
 
 This driver relies on external libraries and kernel drivers for resources
-allocations and initialization. The following dependencies are not part of
-DPDK and must be installed separately:
+allocations and initialization. The following packages come from the
+Linux RDMA core https://github.com/linux-rdma/rdma-core. The current
+version of this driver requires version version 16 or later.
 
 - **libibverbs**
 
   User space Verbs framework used by librte_pmd_mlx5. This library provides
-  a generic interface between the kernel and low-level user space drivers
-  such as libmlx5.
+  a generic interface between the kernel and low-level user space drivers.
 
   It allows slow and privileged operations (context initialization, hardware
   resources allocations) to be managed by the kernel and fast operations to
   never leave user space.
 
-- **libmlx5**
+  The development package (libibverbs-dev or libibverbs-devel) are necessary
+  for compilation.
 
-  Low-level user space driver library for Mellanox ConnectX-4/ConnectX-5
-  devices, it is automatically loaded by libibverbs.
+- **rdma-core**
 
-  This library basically implements send/receive calls to the hardware
-  queues.
+  The basic userspace infrastructure for interaction with RDMA subsystem
+  on Linux.
 
 - **Kernel modules**