diff --git a/doc/tutorials/images/nvmx_cfg_1.png b/doc/tutorials/images/nvmx_cfg_1.png deleted file mode 100644 index cd21d7281..000000000 Binary files a/doc/tutorials/images/nvmx_cfg_1.png and /dev/null differ diff --git a/doc/tutorials/images/nvmx_cfg_2.png b/doc/tutorials/images/nvmx_cfg_2.png deleted file mode 100644 index cc93a6f68..000000000 Binary files a/doc/tutorials/images/nvmx_cfg_2.png and /dev/null differ diff --git a/doc/tutorials/images/nvmx_cfg_3.png b/doc/tutorials/images/nvmx_cfg_3.png deleted file mode 100644 index 506eba098..000000000 Binary files a/doc/tutorials/images/nvmx_cfg_3.png and /dev/null differ diff --git a/doc/tutorials/nvmx_virtualization.rst b/doc/tutorials/nvmx_virtualization.rst index 685e7f5b7..82f6dd3cf 100644 --- a/doc/tutorials/nvmx_virtualization.rst +++ b/doc/tutorials/nvmx_virtualization.rst @@ -99,41 +99,55 @@ The nested virtualization feature is disabled by default in ACRN. You can enable it using the :ref:`Use the ACRN Configuration Editor ` with these settings: +.. note:: Normally you'd use the configuration tool GUI to edit the scenario XML file. + The tool wasn't updated in time for the v2.5 release, so you'll need to manually edit + the ACRN scenario XML configuration file to edit the ``SCHEDULER``, ``NVMX_ENABLED``, + ``pcpu_id`` , ``guest_flags``, ``legacy_vuart``, and ``console_vuart`` settings for + the Service VM (SOS), as shown below: + #. Configure system level features: - - Select ``y`` on :option:`hv.FEATURES.NVMX_ENABLED` to enable nested virtualization + - Edit :option:`hv.FEATURES.NVMX_ENABLED` to `y` to enable nested virtualization - - Select ``SCHED_NOOP`` on :option:`hv.FEATURES.SCHEDULER` + - Edit :option:`hv.FEATURES.SCHEDULER` to ``SCHED_NOOP`` to disable CPU sharing - .. figure:: images/nvmx_cfg_1.png - :width: 400px - :align: center + .. code-block:: xml + :emphasize-lines: 3,18 - Setting NVMX_ENABLED and SCHEDULER with configuration tool + + y + SCHED_NOOP + y + y + + n + y + 0xfff + 0xfff + 0xfff + 0xfff + 0xfff + 0xfff + 0xfff + 0xfff + + y + y #. In each guest VM configuration: - - Select ``GUEST_FLAG_NVMX_ENABLED`` on :option:`vm.guest_flags.guest_flag` on the SOS VM section + - Edit :option:`vm.guest_flags.guest_flag` on the SOS VM section and add ``GUEST_FLAG_NVMX_ENABLED`` to enable the nested virtualization feature on the Service VM. - - Select ``GUEST_FLAG_LAPIC_PASSTHROUGH`` on :option:`vm.guest_flags.guest_flag` to enable local + - Edit :option:`vm.guest_flags.guest_flag` and add ``GUEST_FLAG_LAPIC_PASSTHROUGH`` to enable local APIC passthrough on the Service VM. - - .. figure:: images/nvmx_cfg_3.png - :width: 700px - :align: center - - Service VM (SOS) ``guest_flag`` settings - - Edit :option:`vm.cpu_affinity.pcpu_id` to assign ``pCPU`` IDs to run the Service VM. If you are using debug build and need the hypervisor console, don't assign ``pCPU0`` to the Service VM. - You may need to manually edit the ACRN scenario XML configuration file to edit the ``pcpu_id`` for the Service VM (SOS): - .. code-block:: xml - :emphasize-lines: 5,6,7 + :emphasize-lines: 5,6,7,10,11 - + SOS_VM ACRN SOS VM @@ -151,15 +165,33 @@ with these settings: the PCI-vUART for the Service VM. Refer to :ref:`Enable vUART Configurations ` for more details about VUART configuration. - - Set :option:`vm.legacy_vuart.base` in ``legacy_vuart 0`` to ``INVALID_LEGACY_PIO`` + - Edit :option:`vm.legacy_vuart.base` in ``legacy_vuart 0`` and set it to ``INVALID_LEGACY_PIO`` - - Set :option:`vm.console_vuart.base` in ``console_vuart 0`` to ``PCI_VUART`` + - Edit :option:`vm.console_vuart.base` in ``console_vuart 0`` and set it to ``PCI_VUART`` - .. figure:: images/nvmx_cfg_2.png - :width: 500px - :align: center + .. code-block:: xml + :emphasize-lines: 3, 14 - Service VM legacy and console vUART settings + + VUART_LEGACY_PIO + INVALID_COM_BASE + COM1_IRQ + + + VUART_LEGACY_PIO + INVALID_COM_BASE + COM2_IRQ + 1 + 1 + + + PCI_VUART + + +#. Remove CPU sharing VMs + + Since CPU sharing is disabled, you may need to delete all ``POST_STD_VM`` and ``KATA_VM`` VMs + from the scenario configuration file, which may share pCPU with the Service OS VM. #. Follow instructions in :ref:`getting-started-building` and build with this XML configuration.