From c8e542d964c4b6eda3e15023da8f6fda84d09bdf Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Thu, 17 Nov 2016 16:47:07 +0000 Subject: [PATCH] [admin-guide] Minor refactoring of the PCI guide Clarify some wording and fix some text wrapping. Change-Id: I5d42d5bfc38037f6de7f31951da685b54da5a6bb --- .../source/compute-pci-passthrough.rst | 57 +++++++++---------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/doc/admin-guide/source/compute-pci-passthrough.rst b/doc/admin-guide/source/compute-pci-passthrough.rst index a7ecf5bf0c..d6de3251b2 100644 --- a/doc/admin-guide/source/compute-pci-passthrough.rst +++ b/doc/admin-guide/source/compute-pci-passthrough.rst @@ -4,23 +4,22 @@ Attaching physical PCI devices to guests ======================================== -The PCI passthrough feature in OpenStack allows full access and direct -control of a physical PCI device in guests. This mechanism is generic for any -kind of PCI devices (for example: Network Interface Card (NIC), Graphics -Processing Unit (GPU) or any other devices that can be attached to a PCI bus). -Correct driver installation is the only requirement for the guest to properly +The PCI passthrough feature in OpenStack allows full access and direct control +of a physical PCI device in guests. This mechanism is generic for any kind of +PCI device, and runs with a Network Interface Card (NIC), Graphics Processing +Unit (GPU), or any other devices that can be attached to a PCI bus. Correct +driver installation is the only requirement for the guest to properly use the devices. -PCI devices, if supported by the hardware, can provide Single Root I/O -Virtualization and Sharing (SR-IOV) functionality. In this case, a physical -device is virtualized and appears as multiple PCI devices. Virtual PCI -devices are assigned to the same or different guests. In the case of PCI -passthrough, the full physical device is assigned to only one guest and cannot -be shared. +Some PCI devices provide Single Root I/O Virtualization and Sharing (SR-IOV) +capabilities. When SR-IOV is used, a physical device is virtualized and appears +as multiple PCI devices. Virtual PCI devices are assigned to the same or +different guests. In the case of PCI passthrough, the full physical device is +assigned to only one guest and cannot be shared. .. note:: - For Attaching virtual SR-IOV devices to guests, refer to the + For information on attaching virtual SR-IOV devices to guests, refer to the `Networking Guide`_. To enable PCI passthrough, follow the steps below: @@ -33,8 +32,8 @@ To enable PCI passthrough, follow the steps below: .. note:: - The PCI device with address ``0000:41:00.0`` is as an example. Expect - to change this according to your actual environment. + The PCI device with address ``0000:41:00.0`` is used as an example. This + will differ between environments. Configure nova-scheduler (Controller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -59,16 +58,16 @@ Configure nova-api (Controller) [default] pci_alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" } - For more information about the syntax of ``pci_alias``, refer to - `nova.conf configuration options`_. + For more information about the syntax of ``pci_alias``, refer to `nova.conf + configuration options`_. #. Restart the ``nova-api`` service. Configure a flavor (Controller) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Configure a flavor to request two PCI devices, each with ``vendor_id`` as -``0x8086`` and ``product_id`` as ``0x154d``. +Configure a flavor to request two PCI devices, each with ``vendor_id`` of +``0x8086`` and ``product_id`` of ``0x154d``: .. code-block:: console @@ -80,13 +79,13 @@ For more information about the syntax for ``pci_passthrough:alias``, refer to Enable PCI passthrough (Compute) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Enable VT-d and IOMMU. For more information, refer to steps one and two -in `Create Virtual Functions`_. +Enable VT-d and IOMMU. For more information, refer to steps one and two in +`Create Virtual Functions`_. -Configure PCI devices ``nova-compute`` (Compute) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Configure PCI devices (Compute) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. Configure ``nova-compute`` to allow the PCI device to be passed through to +#. Configure ``nova-compute`` to allow the PCI device to pass through to VMs. Edit ``/etc/nova/nova.conf``: .. code-block:: ini @@ -109,8 +108,8 @@ Configure PCI devices ``nova-compute`` (Compute) #. Specify the PCI alias for the device. - From the Newton release, to resize guest with PCI device, configure - the PCI alias on the compute node as well. + From the Newton release, to resize guest with PCI device, configure the PCI + alias on the compute node as well. Configure a PCI alias ``a1`` to request a PCI device with a ``vendor_id`` of ``0x8086`` and a ``product_id`` of ``0x154d``. The ``vendor_id`` and @@ -123,8 +122,8 @@ Configure PCI devices ``nova-compute`` (Compute) [default] pci_alias = { "vendor_id":"8086", "product_id":"154d", "device_type":"type-PF", "name":"a1" } - For more information about the syntax of ``pci_alias``, refer to - `nova.conf configuration options`_. + For more information about the syntax of ``pci_alias``, refer to `nova.conf + configuration options`_. #. Restart the ``nova-compute`` service. @@ -132,8 +131,8 @@ Create instances with PCI passthrough devices ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The ``nova-scheduler`` selects a destination host that has PCI devices -available with the specified ``vendor_id`` and ``product_id`` that matches -the ``pci_alias`` from the flavor. +available with the specified ``vendor_id`` and ``product_id`` that matches the +``pci_alias`` from the flavor. .. code-block:: console