[v3,3/4] doc: add VFIO no-IOMMU Linux GSG section

Message ID 5d2b797b8f97381dac97bd59957df2ec96cd5239.1605785484.git.anatoly.burakov@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v3,1/4] doc: move VFIO driver to be first |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Burakov, Anatoly Nov. 19, 2020, 11:32 a.m. UTC
  Currently, we have no documentation on how to use VFIO in no-IOMMU mode.
Add such documentation.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---

Notes:
    v2:
    - Fixed the noiommu parameter name

 doc/guides/linux_gsg/linux_drivers.rst | 28 +++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)
  

Comments

Bruce Richardson Nov. 27, 2020, 3:47 p.m. UTC | #1
On Thu, Nov 19, 2020 at 11:32:31AM +0000, Anatoly Burakov wrote:
> Currently, we have no documentation on how to use VFIO in no-IOMMU mode.
> Add such documentation.
> 
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> 
> Notes:
>     v2:
>     - Fixed the noiommu parameter name
> 
>  doc/guides/linux_gsg/linux_drivers.rst | 28 +++++++++++++++++++++++++-
>  1 file changed, 27 insertions(+), 1 deletion(-)
> 
This looks good to me. This info is good to have in the GSG.

Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  

Patch

diff --git a/doc/guides/linux_gsg/linux_drivers.rst b/doc/guides/linux_gsg/linux_drivers.rst
index 19ac61d8f9..9c61850dbb 100644
--- a/doc/guides/linux_gsg/linux_drivers.rst
+++ b/doc/guides/linux_gsg/linux_drivers.rst
@@ -99,9 +99,35 @@  DPDK setup script (called ``dpdk-setup.sh`` and located in the ``usertools``
 directory). For more information, please refer to
 :ref:`Running_Without_Root_Privileges`.
 
+VFIO no-IOMMU mode
+------------------
+
+If there is no IOMMU available on the system, VFIO can still be used, but it has
+to be loaded with an additional module parameter:
+
+.. code-block:: console
+
+    modprobe vfio enable_unsafe_noiommu_mode=1
+
+Alternatively, one can also enable this option in an already loaded kernel module:
+
+.. code-block:: console
+
+    echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
+
+After that, VFIO can be used with hardware devices as usual.
+
 .. note::
 
-    VFIO can be used without IOMMU. While this is unsafe, it does make it possible for the user to keep the degree of device access and programming that VFIO has, in situations where IOMMU is not available.
+    It may be required to unload all VFIO related-modules before probing the
+    module again with ``enable_unsafe_noiommu_mode=1`` parameter.
+
+.. warning::
+
+    Since no-IOMMU mode forgoes IOMMU protection, it is inherently unsafe. That
+    said, it does make it possible for the user to keep the degree of device
+    access and programming that VFIO has, in situations where IOMMU is not
+    available.
 
 UIO
 ---