doc: add required Linux capabilities in mlx5 guide

Message ID 20200302230853.1628014-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series doc: add required Linux capabilities in mlx5 guide |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot success Travis build: passed
ci/Intel-compilation success Compilation OK

Commit Message

Thomas Monjalon March 2, 2020, 11:08 p.m. UTC
  If running DPDK as non-root, some extra capabilities may be required.
The Mellanox devices, using a bifurcated model with Linux drivers,
have some specific requirements summarized in mlx5 PMD guide.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 doc/guides/nics/mlx5.rst | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
  

Comments

Raslan Darawsheh May 14, 2020, 8:23 a.m. UTC | #1
Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> Sent: Tuesday, March 3, 2020 1:09 AM
> To: dev@dpdk.org
> Cc: Adrian Chiris <adrianc@mellanox.com>; Moshe Levi
> <moshele@mellanox.com>; Matan Azrad <matan@mellanox.com>; Shahaf
> Shuler <shahafs@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; John McNamara
> <john.mcnamara@intel.com>; Marko Kovacevic
> <marko.kovacevic@intel.com>
> Subject: [dpdk-dev] [PATCH] doc: add required Linux capabilities in mlx5
> guide
> 
> If running DPDK as non-root, some extra capabilities may be required.
> The Mellanox devices, using a bifurcated model with Linux drivers,
> have some specific requirements summarized in mlx5 PMD guide.
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Raslan Darwsheh <rasland@mellanox.com>
> ---
>  doc/guides/nics/mlx5.rst | 26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
> index afd11cd830..7650e57dd0 100644
> --- a/doc/guides/nics/mlx5.rst
> +++ b/doc/guides/nics/mlx5.rst
> @@ -359,6 +359,32 @@ Run-time configuration
> 
>  - **ethtool** operations on related kernel interfaces also affect the PMD.
> 
> +Run as non-root
> +^^^^^^^^^^^^^^^
> +
> +In order to run as a non-root user,
> +some capabilities must be granted to the application::
> +
> +   setcap cap_sys_admin,cap_net_admin,cap_net_raw,cap_ipc_lock+ep
> <dpdk-app>
> +
> +Below are the reasons of the need for each capability:
> +
> +``cap_sys_admin``
> +   When using physical addresses (PA mode), with Linux >= 4.0,
> +   for access to ``/proc/self/pagemap``.
> +
> +``cap_net_admin``
> +   For MTU and link state modifications.
> +
> +``cap_net_raw``
> +   For raw ethernet queue allocation through kernel driver.
> +
> +``cap_ipc_lock``
> +   For DMA memory pinning.
> +
> +Driver options
> +^^^^^^^^^^^^^^
> +
>  - ``rxq_cqe_comp_en`` parameter [int]
> 
>    A nonzero value enables the compression of CQE on RX side. This feature
> --
> 2.25.1


Patch applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  
Moshe Levi May 14, 2020, 5:29 p.m. UTC | #2
Hi Raslan, 
PSB

> -----Original Message-----
> From: Raslan Darawsheh <rasland@mellanox.com>
> Sent: Thursday, May 14, 2020 11:24 AM
> To: Thomas Monjalon <thomas@monjalon.net>; dev@dpdk.org
> Cc: Adrian Chiris <adrianc@mellanox.com>; Moshe Levi
> <moshele@mellanox.com>; Matan Azrad <matan@mellanox.com>; Shahaf
> Shuler <shahafs@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; John McNamara
> <john.mcnamara@intel.com>; Marko Kovacevic
> <marko.kovacevic@intel.com>
> Subject: RE: [dpdk-dev] [PATCH] doc: add required Linux capabilities in mlx5
> guide
> 
> Hi,
> 
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Thomas Monjalon
> > Sent: Tuesday, March 3, 2020 1:09 AM
> > To: dev@dpdk.org
> > Cc: Adrian Chiris <adrianc@mellanox.com>; Moshe Levi
> > <moshele@mellanox.com>; Matan Azrad <matan@mellanox.com>; Shahaf
> > Shuler <shahafs@mellanox.com>; Slava Ovsiienko
> > <viacheslavo@mellanox.com>; John McNamara
> <john.mcnamara@intel.com>;
> > Marko Kovacevic <marko.kovacevic@intel.com>
> > Subject: [dpdk-dev] [PATCH] doc: add required Linux capabilities in
> > mlx5 guide
> >
> > If running DPDK as non-root, some extra capabilities may be required.
> > The Mellanox devices, using a bifurcated model with Linux drivers,
> > have some specific requirements summarized in mlx5 PMD guide.
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Reviewed-by: Raslan Darwsheh <rasland@mellanox.com>
> > ---
> >  doc/guides/nics/mlx5.rst | 26 ++++++++++++++++++++++++++
> >  1 file changed, 26 insertions(+)
> >
> > diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index
> > afd11cd830..7650e57dd0 100644
> > --- a/doc/guides/nics/mlx5.rst
> > +++ b/doc/guides/nics/mlx5.rst
> > @@ -359,6 +359,32 @@ Run-time configuration
> >
> >  - **ethtool** operations on related kernel interfaces also affect the PMD.
> >
> > +Run as non-root
> > +^^^^^^^^^^^^^^^
> > +
> > +In order to run as a non-root user,
> > +some capabilities must be granted to the application::
> > +
> > +   setcap cap_sys_admin,cap_net_admin,cap_net_raw,cap_ipc_lock+ep
> > <dpdk-app>
> > +
> > +Below are the reasons of the need for each capability:
> > +
> > +``cap_sys_admin``
> > +   When using physical addresses (PA mode), with Linux >= 4.0,
> > +   for access to ``/proc/self/pagemap``.
> > +
> > +``cap_net_admin``
> > +   For MTU and link state modifications
It more than that like change mac address . maybe better to write for interface configuration 
You can see the full list in [1] look for CAP_NET_ADMIN
[1] - http://man7.org/linux/man-pages/man7/capabilities.7.html
.
> > +
> > +``cap_net_raw``
> > +   For raw ethernet queue allocation through kernel driver.
Maybe can you add a note that for containers the net_raw is enabled by default see [1] and you don't need to specify it. 
 [1] - https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities 
> > +
> > +``cap_ipc_lock``
> > +   For DMA memory pinning.
> > +
> > +Driver options
> > +^^^^^^^^^^^^^^
> > +
> >  - ``rxq_cqe_comp_en`` parameter [int]
> >
> >    A nonzero value enables the compression of CQE on RX side. This
> > feature
> > --
> > 2.25.1
> 
> 
> Patch applied to next-net-mlx,
> 
> Kindest regards,
> Raslan Darawsheh
  
Thomas Monjalon May 19, 2020, 9:05 a.m. UTC | #3
14/05/2020 19:29, Moshe Levi:
> > From: Thomas Monjalon
> > > +``cap_net_admin``
> > > +   For MTU and link state modifications
> 
> It more than that like change mac address . maybe better to write for interface configuration 
> You can see the full list in [1] look for CAP_NET_ADMIN
> [1] - http://man7.org/linux/man-pages/man7/capabilities.7.html

Changed to "For device configuration." while merging in master.


> > > +``cap_net_raw``
> > > +   For raw ethernet queue allocation through kernel driver.
> Maybe can you add a note that for containers the net_raw is enabled by default see [1] and you don't need to specify it. 
>  [1] - https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities

It would require a separate patch please.
  

Patch

diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index afd11cd830..7650e57dd0 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -359,6 +359,32 @@  Run-time configuration
 
 - **ethtool** operations on related kernel interfaces also affect the PMD.
 
+Run as non-root
+^^^^^^^^^^^^^^^
+
+In order to run as a non-root user,
+some capabilities must be granted to the application::
+
+   setcap cap_sys_admin,cap_net_admin,cap_net_raw,cap_ipc_lock+ep <dpdk-app>
+
+Below are the reasons of the need for each capability:
+
+``cap_sys_admin``
+   When using physical addresses (PA mode), with Linux >= 4.0,
+   for access to ``/proc/self/pagemap``.
+
+``cap_net_admin``
+   For MTU and link state modifications.
+
+``cap_net_raw``
+   For raw ethernet queue allocation through kernel driver.
+
+``cap_ipc_lock``
+   For DMA memory pinning.
+
+Driver options
+^^^^^^^^^^^^^^
+
 - ``rxq_cqe_comp_en`` parameter [int]
 
   A nonzero value enables the compression of CQE on RX side. This feature