Commit bf6a6019 authored by tone.zhang's avatar tone.zhang Committed by Jim Harris
Browse files

Doc: Clarify the IOMMU configuration for User Space Drivers



In the case system charges PCI devices with the "uio_pci_generic"
kernel driver, the IOMMU should be disabled or passthrough, because
the virtual / physical address conversion by IOMMU will make the DMA
transmission invalid.

The patch guides users configure IOMMU in SPDK target system on both
x86_64 and arm64 systems.

Change-Id: I66df4df855a6669d4838eb88bd400ded87d08a49
Signed-off-by: default avatartone.zhang <tone.zhang@arm.com>
Reviewed-on: https://review.gerrithub.io/424470


Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
parent 9b72146b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -827,6 +827,7 @@ INPUT += \
                         porting.md \
                         spdkcli.md \
                         ssd_internals.md \
                         system_configuration.md \
                         userspace.md \
                         vagrant.md \
                         vhost.md \
+17 −0
Original line number Diff line number Diff line
# System Configuration User Guide {#system_configuration}

This system configuration guide describes how to configure a system for use with SPDK.

# IOMMU configuration {#iommu_config}

An IOMMU may be present and enabled on many platforms. When an IOMMU is present and enabled, it is
recommended that SPDK applications are deployed with the `vfio-pci` kernel driver. SPDK's
`scripts/setup.sh` script will automatically select `vfio-pci` in this case.

However, some devices do not function correctly when bound to `vfio-pci` and instead must be
attached to the `uio_pci_generic` kernel driver. In that case, users should take care to disable
the IOMMU or to set it into passthrough mode prior to running `scripts/setup.sh`.

To disable the IOMMU or place it into passthrough mode, add `intel_iommu=off`
or `amd_iommu=off` or `intel_iommu=on iommu=pt` to the GRUB command line on
x86_64 system, or add `iommu.passthrough=1` on arm64 systems.
+1 −0
Original line number Diff line number Diff line
# User Guides {#user_guides}

- @subpage system_configuration
- @subpage app_overview
- @subpage iscsi
- @subpage nvmf