[v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel module

Message ID 1536124655-27163-1-git-send-email-tone.zhang@arm.com (mailing list archive)
State Superseded, archived
Delegated to: Thomas Monjalon
Headers
Series [v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel module |

Checks

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

Commit Message

tone.zhang Sept. 5, 2018, 5:17 a.m. UTC
  If the devices used for DPDK are bound to the "uio_pci_generic" kernel
module, the IOMMU should be disabled in order not to break the IO
transmission because of the virtual / physical address mapping.

The patch clarifies the IOMMU configurations on both x86_64 and arm64
systems.

Signed-off-by: tone.zhang <tone.zhang@arm.com>
---
 doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Gavin Hu Sept. 5, 2018, 5:23 a.m. UTC | #1
> -----Original Message-----
> From: tone.zhang <tone.zhang@arm.com>
> Sent: Wednesday, September 5, 2018 1:18 PM
> To: dev@dpdk.org
> Cc: Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>;
> bruce.richardson@intel.com; bluca@debian.org; roszenrami@gmail.com; nd
> <nd@arm.com>
> Subject: [PATCH v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel
> module
> 
> If the devices used for DPDK are bound to the "uio_pci_generic" kernel
> module, the IOMMU should be disabled in order not to break the IO
> transmission because of the virtual / physical address mapping.
> 
> The patch clarifies the IOMMU configurations on both x86_64 and arm64
> systems.
> 
> Signed-off-by: tone.zhang <tone.zhang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
> ---
>  doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/doc/guides/linux_gsg/linux_drivers.rst
> b/doc/guides/linux_gsg/linux_drivers.rst
> index 371a817..b46fc6a 100644
> --- a/doc/guides/linux_gsg/linux_drivers.rst
> +++ b/doc/guides/linux_gsg/linux_drivers.rst
> @@ -48,6 +48,13 @@ be loaded as shown below:
>     ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``.
>     For more details see :ref:`linux_gsg_binding_kernel` below.
> 
> +.. note::
> +
> +   If the devices used for DPDK are bound to the ``uio_pci_generic`` kernel
> module,
> +   please make sure that the IOMMU is disabled. One can add
> ``intel_iommu=off`` or
> +   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on
> x86_64 systems,
> +   or add ``iommu.passthrough=1`` on arm64 system.
> +
>  Since DPDK release 1.7 onward provides VFIO support, use of UIO is optional
> for platforms that support using VFIO.
> 
> --
> 2.7.4
  
tone.zhang Sept. 19, 2018, 7:44 a.m. UTC | #2
Hello Bruce, Luca, Rami and Stephen,

Could you please help to review the change? 

Any comments are welcome.

Thanks a lot!

Br,
Tone

-----Original Message-----
From: dev <dev-bounces@dpdk.org> On Behalf Of tone.zhang
Sent: Wednesday, September 5, 2018 1:18 PM
To: dev@dpdk.org
Cc: Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>; bruce.richardson@intel.com; bluca@debian.org; roszenrami@gmail.com; nd <nd@arm.com>
Subject: [dpdk-dev] [PATCH v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel module

If the devices used for DPDK are bound to the "uio_pci_generic" kernel module, the IOMMU should be disabled in order not to break the IO transmission because of the virtual / physical address mapping.

The patch clarifies the IOMMU configurations on both x86_64 and arm64 systems.

Signed-off-by: tone.zhang <tone.zhang@arm.com>
---
 doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst
index 371a817..b46fc6a 100644
--- a/doc/guides/linux_gsg/linux_drivers.rst
+++ b/doc/guides/linux_gsg/linux_drivers.rst
@@ -48,6 +48,13 @@ be loaded as shown below:
    ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``.
    For more details see :ref:`linux_gsg_binding_kernel` below.
 
+.. note::
+
+   If the devices used for DPDK are bound to the ``uio_pci_generic`` kernel module,
+   please make sure that the IOMMU is disabled. One can add ``intel_iommu=off`` or
+   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on x86_64 systems,
+   or add ``iommu.passthrough=1`` on arm64 system.
+
 Since DPDK release 1.7 onward provides VFIO support, use of UIO is optional  for platforms that support using VFIO.
 
--
2.7.4
  
Luca Boccassi Sept. 19, 2018, 10:42 a.m. UTC | #3
On Wed, 2018-09-05 at 13:17 +0800, tone.zhang wrote:
> If the devices used for DPDK are bound to the "uio_pci_generic"
> kernel
> module, the IOMMU should be disabled in order not to break the IO
> transmission because of the virtual / physical address mapping.
> 
> The patch clarifies the IOMMU configurations on both x86_64 and arm64
> systems.
> 
> Signed-off-by: tone.zhang <tone.zhang@arm.com>
> ---
>  doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/doc/guides/linux_gsg/linux_drivers.rst
> b/doc/guides/linux_gsg/linux_drivers.rst
> index 371a817..b46fc6a 100644
> --- a/doc/guides/linux_gsg/linux_drivers.rst
> +++ b/doc/guides/linux_gsg/linux_drivers.rst
> @@ -48,6 +48,13 @@ be loaded as shown below:
>     ``vfio-pci`` kernel module rather than ``igb_uio`` or
> ``uio_pci_generic``.
>     For more details see :ref:`linux_gsg_binding_kernel` below.
>  
> +.. note::
> +
> +   If the devices used for DPDK are bound to the ``uio_pci_generic``
> kernel module,
> +   please make sure that the IOMMU is disabled. One can add
> ``intel_iommu=off`` or
> +   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on
> x86_64 systems,
> +   or add ``iommu.passthrough=1`` on arm64 system.
> +
>  Since DPDK release 1.7 onward provides VFIO support, use of UIO is
> optional
>  for platforms that support using VFIO.
>  

Acked-by: Luca Boccassi <bluca@debian.org>
  
Bruce Richardson Sept. 19, 2018, 11:33 a.m. UTC | #4
On Wed, Sep 19, 2018 at 07:44:36AM +0000, Tone Zhang (Arm Technology China) wrote:
> Hello Bruce, Luca, Rami and Stephen,
> 
> Could you please help to review the change? 
> 
> Any comments are welcome.
> 
> Thanks a lot!
> 
> Br,
> Tone
> 
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of tone.zhang
> Sent: Wednesday, September 5, 2018 1:18 PM
> To: dev@dpdk.org
> Cc: Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>; bruce.richardson@intel.com; bluca@debian.org; roszenrami@gmail.com; nd <nd@arm.com>
> Subject: [dpdk-dev] [PATCH v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel module
> 
> If the devices used for DPDK are bound to the "uio_pci_generic" kernel module, the IOMMU should be disabled in order not to break the IO transmission because of the virtual / physical address mapping.
> 
> The patch clarifies the IOMMU configurations on both x86_64 and arm64 systems.
> 
> Signed-off-by: tone.zhang <tone.zhang@arm.com>
> ---
>  doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst
> index 371a817..b46fc6a 100644
> --- a/doc/guides/linux_gsg/linux_drivers.rst
> +++ b/doc/guides/linux_gsg/linux_drivers.rst
> @@ -48,6 +48,13 @@ be loaded as shown below:
>     ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``.
>     For more details see :ref:`linux_gsg_binding_kernel` below.
>  
> +.. note::
> +
> +   If the devices used for DPDK are bound to the ``uio_pci_generic`` kernel module,
> +   please make sure that the IOMMU is disabled. One can add ``intel_iommu=off`` or
> +   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on x86_64 systems,
> +   or add ``iommu.passthrough=1`` on arm64 system.
> +

I'm not really an expert in these IOMMU commands, but for the passthrough
option on my systems, I've always used "intel_iommu=on iommu=pt", rather
than "intel_iommu=pt". Can someone confirm that the latter works ok, as
documented here?

/Bruce
  
Luca Boccassi Sept. 19, 2018, 11:54 a.m. UTC | #5
On Wed, 2018-09-19 at 12:33 +0100, Bruce Richardson wrote:
> On Wed, Sep 19, 2018 at 07:44:36AM +0000, Tone Zhang (Arm Technology
> China) wrote:
> > Hello Bruce, Luca, Rami and Stephen,
> > 
> > Could you please help to review the change? 
> > 
> > Any comments are welcome.
> > 
> > Thanks a lot!
> > 
> > Br,
> > Tone
> > 
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of tone.zhang
> > Sent: Wednesday, September 5, 2018 1:18 PM
> > To: dev@dpdk.org
> > Cc: Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>; bruce.richa
> > rdson@intel.com; bluca@debian.org; roszenrami@gmail.com; nd <nd@arm
> > .com>
> > Subject: [dpdk-dev] [PATCH v3] doc: Clarify IOMMU usage with
> > "uio_pci_generic" kernel module
> > 
> > If the devices used for DPDK are bound to the "uio_pci_generic"
> > kernel module, the IOMMU should be disabled in order not to break
> > the IO transmission because of the virtual / physical address
> > mapping.
> > 
> > The patch clarifies the IOMMU configurations on both x86_64 and
> > arm64 systems.
> > 
> > Signed-off-by: tone.zhang <tone.zhang@arm.com>
> > ---
> >  doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/doc/guides/linux_gsg/linux_drivers.rst
> > b/doc/guides/linux_gsg/linux_drivers.rst
> > index 371a817..b46fc6a 100644
> > --- a/doc/guides/linux_gsg/linux_drivers.rst
> > +++ b/doc/guides/linux_gsg/linux_drivers.rst
> > @@ -48,6 +48,13 @@ be loaded as shown below:
> >     ``vfio-pci`` kernel module rather than ``igb_uio`` or
> > ``uio_pci_generic``.
> >     For more details see :ref:`linux_gsg_binding_kernel` below.
> >  
> > +.. note::
> > +
> > +   If the devices used for DPDK are bound to the
> > ``uio_pci_generic`` kernel module,
> > +   please make sure that the IOMMU is disabled. One can add
> > ``intel_iommu=off`` or
> > +   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on
> > x86_64 systems,
> > +   or add ``iommu.passthrough=1`` on arm64 system.
> > +
> 
> I'm not really an expert in these IOMMU commands, but for the
> passthrough
> option on my systems, I've always used "intel_iommu=on iommu=pt",
> rather
> than "intel_iommu=pt". Can someone confirm that the latter works ok,
> as
> documented here?
> 
> /Bruce

Whops you are right, just checked and we use iommu=pt
  
tone.zhang Sept. 21, 2018, 2:39 a.m. UTC | #6
Hi Luca and Bruce,

I appreciate for the comments. I ran more test cases in my test bed, and I will update the patch and push v4 soon.

Thanks a lot for your help!

Br,
Tone

-----Original Message-----
From: Luca Boccassi <bluca@debian.org> 
Sent: Wednesday, September 19, 2018 7:54 PM
To: Bruce Richardson <bruce.richardson@intel.com>; Tone Zhang (Arm Technology China) <Tone.Zhang@arm.com>
Cc: dev@dpdk.org; Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>; roszenrami@gmail.com; Stephen Hemminger <stephen@networkplumber.org>; nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH v3] doc: Clarify IOMMU usage with "uio_pci_generic" kernel module

On Wed, 2018-09-19 at 12:33 +0100, Bruce Richardson wrote:
> On Wed, Sep 19, 2018 at 07:44:36AM +0000, Tone Zhang (Arm Technology
> China) wrote:
> > Hello Bruce, Luca, Rami and Stephen,
> > 
> > Could you please help to review the change?
> > 
> > Any comments are welcome.
> > 
> > Thanks a lot!
> > 
> > Br,
> > Tone
> > 
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of tone.zhang
> > Sent: Wednesday, September 5, 2018 1:18 PM
> > To: dev@dpdk.org
> > Cc: Gavin Hu (Arm Technology China) <Gavin.Hu@arm.com>; bruce.richa 
> > rdson@intel.com; bluca@debian.org; roszenrami@gmail.com; nd <nd@arm 
> > .com>
> > Subject: [dpdk-dev] [PATCH v3] doc: Clarify IOMMU usage with 
> > "uio_pci_generic" kernel module
> > 
> > If the devices used for DPDK are bound to the "uio_pci_generic"
> > kernel module, the IOMMU should be disabled in order not to break 
> > the IO transmission because of the virtual / physical address 
> > mapping.
> > 
> > The patch clarifies the IOMMU configurations on both x86_64 and
> > arm64 systems.
> > 
> > Signed-off-by: tone.zhang <tone.zhang@arm.com>
> > ---
> >  doc/guides/linux_gsg/linux_drivers.rst | 7 +++++++
> >  1 file changed, 7 insertions(+)
> > 
> > diff --git a/doc/guides/linux_gsg/linux_drivers.rst
> > b/doc/guides/linux_gsg/linux_drivers.rst
> > index 371a817..b46fc6a 100644
> > --- a/doc/guides/linux_gsg/linux_drivers.rst
> > +++ b/doc/guides/linux_gsg/linux_drivers.rst
> > @@ -48,6 +48,13 @@ be loaded as shown below:
> >     ``vfio-pci`` kernel module rather than ``igb_uio`` or 
> > ``uio_pci_generic``.
> >     For more details see :ref:`linux_gsg_binding_kernel` below.
> >  
> > +.. note::
> > +
> > +   If the devices used for DPDK are bound to the
> > ``uio_pci_generic`` kernel module,
> > +   please make sure that the IOMMU is disabled. One can add
> > ``intel_iommu=off`` or
> > +   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on
> > x86_64 systems,
> > +   or add ``iommu.passthrough=1`` on arm64 system.
> > +
> 
> I'm not really an expert in these IOMMU commands, but for the 
> passthrough option on my systems, I've always used "intel_iommu=on 
> iommu=pt", rather than "intel_iommu=pt". Can someone confirm that the 
> latter works ok, as documented here?
> 
> /Bruce

Whops you are right, just checked and we use iommu=pt

--
Kind regards,
Luca Boccassi
  

Patch

diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst
index 371a817..b46fc6a 100644
--- a/doc/guides/linux_gsg/linux_drivers.rst
+++ b/doc/guides/linux_gsg/linux_drivers.rst
@@ -48,6 +48,13 @@  be loaded as shown below:
    ``vfio-pci`` kernel module rather than ``igb_uio`` or ``uio_pci_generic``.
    For more details see :ref:`linux_gsg_binding_kernel` below.
 
+.. note::
+
+   If the devices used for DPDK are bound to the ``uio_pci_generic`` kernel module,
+   please make sure that the IOMMU is disabled. One can add ``intel_iommu=off`` or
+   ``intel_iommu=pt`` or ``amd_iommu=off`` in GRUB command line on x86_64 systems,
+   or add ``iommu.passthrough=1`` on arm64 system.
+
 Since DPDK release 1.7 onward provides VFIO support, use of UIO is optional
 for platforms that support using VFIO.