From ad7ccc28a9569f865621019e5927afbf4dfdd285 Mon Sep 17 00:00:00 2001 From: "Reyes, Amy" Date: Fri, 7 Jan 2022 11:31:49 -0800 Subject: [PATCH] doc: editorial cleanup in enable s5 guide - Address grammar and formatting comments from PR #6814 - General grammar cleanup Signed-off-by: Reyes, Amy --- doc/tutorials/enable_s5.rst | 269 +++++++++++++---------- doc/tutorials/images/system_shutdown.png | Bin 15483 -> 20541 bytes 2 files changed, 149 insertions(+), 120 deletions(-) diff --git a/doc/tutorials/enable_s5.rst b/doc/tutorials/enable_s5.rst index 1d9418d41..766b7d28e 100644 --- a/doc/tutorials/enable_s5.rst +++ b/doc/tutorials/enable_s5.rst @@ -21,71 +21,77 @@ ACRN S5 function is required. S5 Architecture *************** -ACRN provides a mechanism to trigger the S5 state transition throughout the system. -It uses a vUART channel to communicate between the Service and User VMs. -The diagram below shows the overall architecture: +ACRN provides a mechanism to trigger the S5 state transition throughout the +system. It uses a vUART channel to communicate between the Service VM and User +VMs. The diagram below shows the overall architecture: .. figure:: images/s5_overall_architecture.png :align: center :name: s5-architecture - S5 overall architecture + S5 Overall Architecture -- **vUART channel**: +**vUART channel**: - The User VM's serial port device (``/dev/ttySn``) is emulated in the - Hypervisor. The channel from the Service VM to the User VM: +The User VM's serial port device (``/dev/ttySn``) is emulated in the +hypervisor. The channel from the Service VM to the User VM: - .. graphviz:: images/s5-scenario-2.dot - :name: s5-scenario-2 +.. graphviz:: images/s5-scenario-2.dot + :name: s5-scenario-2 Lifecycle Manager Overview ========================== -As part of the S5 reference design, a Lifecycle Manager daemon (``life_mngr`` in Linux, -``life_mngr_win.exe`` in Windows) runs in the Service VM and User VMs to implement S5. -Operator or user can use ``s5_trigger_linux.py`` or ``s5_trigger_win.py`` script to initialize -a system S5 in the Service VM or User VMs. The Lifecycle Manager in the Service VM and -User VMs wait for system S5 request on the local socket port. +As part of the S5 reference design, a Lifecycle Manager daemon (``life_mngr`` in +Linux, ``life_mngr_win.exe`` in Windows) runs in the Service VM and User VMs to +implement S5. You can use the ``s5_trigger_linux.py`` or +``s5_trigger_win.py`` script to initialize a system S5 in the Service VM or User +VMs. The Lifecycle Manager in the Service VM and User VMs wait for the system S5 +request on the local socket port. Initiate a System S5 from within a User VM (e.g., HMI) ====================================================== -As shown in the :numref:`s5-architecture`, a request to Service VM initiates the shutdown flow. -This could come from a User VM, most likely the HMI (running Windows or Linux). -When a human operator initiates the flow through running ``s5_trigger_linux.py`` or ``s5_trigger_win.py``, -the Lifecycle Manager (``life_mngr``) running in that User VM sends the system S5 request via -the vUART to the Lifecycle Manager in the Service VM which in turn acknowledges the request. -The Lifecycle Manager in Service VM sends ``poweroff_cmd`` request to User VMs, when the Lifecycle Manager -in User VMs receives ``poweroff_cmd`` request, it sends ``ack_poweroff`` to the Service VM; -then it shuts down the User VMs. If the User VMs is not ready to shut down, it can ignore the -``poweroff_cmd`` request. +As shown in :numref:`s5-architecture`, a request to the Service VM initiates the +shutdown flow. This request could come from a User VM, most likely the human +machine interface (HMI) running Windows or Linux. When a human operator +initiates the flow by running ``s5_trigger_linux.py`` or ``s5_trigger_win.py``, +the Lifecycle Manager (``life_mngr``) running in that User VM sends the system +S5 request via the vUART to the Lifecycle Manager in the Service VM which in +turn acknowledges the request. The Lifecycle Manager in the Service VM sends a +``poweroff_cmd`` request to each User VM. When the Lifecycle Manager in a User +VM receives the ``poweroff_cmd`` request, it sends ``ack_poweroff`` to the +Service VM; then it shuts down the User VM. If a User VM is not ready to shut +down, it can ignore the ``poweroff_cmd`` request. -.. note:: The User VM need to be authorized to be able to request a system S5, this is achieved - by configuring ``ALLOW_TRIGGER_S5`` in the Lifecycle Manager service configuration :file:`/etc/life_mngr.conf` - in the Service VM. There is only one User VM in the system can be configured to request a shutdown. - If this configuration is wrong, the system S5 request from User VM is rejected by - Lifecycle Manager of Service VM, the following error message is recorded in Lifecycle Manager - log :file:`/var/log/life_mngr.log` of Service VM: - ``The user VM is not allowed to trigger system shutdown`` +.. note:: The User VM needs to be authorized to be able to request a system S5. + This is achieved by configuring ``ALLOW_TRIGGER_S5`` in the Lifecycle + Manager service configuration :file:`/etc/life_mngr.conf` in the Service VM. + Only one User VM in the system can be configured to request a shutdown. If + this configuration is wrong, the Lifecycle Manager of the Service VM rejects + the system S5 request from the User VM. The following error message is + recorded in the Lifecycle Manager log :file:`/var/log/life_mngr.log` of the + Service VM: ``The user VM is not allowed to trigger system shutdown``. Initiate a System S5 within the Service VM ========================================== -On the Service VM side, it uses the ``s5_trigger_linux.py`` to trigger the system S5 flow. Then, -the Lifecycle Manager in service VM sends a ``poweroff_cmd`` request to the lifecycle manager in each -User VM through the vUART channel. If the User VM receives this request, it will send an ``ack_poweroff`` -to the lifecycle manager in Service VM. It is the Service VM's responsibility to check whether the -User VMs shut down successfully or not, and to decide when to shut the Service VM itself down. +On the Service VM side, it uses the ``s5_trigger_linux.py`` to trigger the +system S5 flow. Then, the Lifecycle Manager in the Service VM sends a +``poweroff_cmd`` request to the Lifecycle Manager in each User VM through the +vUART channel. When the User VM receives this request, it sends an +``ack_poweroff`` to the Lifecycle Manager in the Service VM. The Service VM +checks whether the User VMs shut down successfully or not, and decides when to +shut itself down. -.. note:: Service VM is always allowed to trigger system S5 by default. +.. note:: The Service VM is always allowed to trigger system S5 by default. .. _enable_s5: Enable S5 ********* -1. Configure communication vUART for Service VM and User VMs: +1. Configure communication vUARTs for the Service VM and User VMs: Add these lines in the hypervisor scenario XML file manually: @@ -141,10 +147,10 @@ Enable S5 /* VM3 */ ... - .. note:: These vUART is emulated in the hypervisor; expose the node as ``/dev/ttySn``. - For the User VM with the minimal VM ID, the communication vUART id should be 1. - For other User VMs, the vUART (id is 1) shoulbe be configured as invalid, the communication - vUART id should be 2 or others. + .. note:: These vUARTs are emulated in the hypervisor; expose the node as + ``/dev/ttySn``. For the User VM with the lowest VM ID, the communication + vUART id should be 1. For other User VMs, the vUART (id is 1) should be + configured as invalid; the communication vUART id should be 2 or higher. 2. Build the Lifecycle Manager daemon, ``life_mngr``: @@ -153,10 +159,13 @@ Enable S5 cd acrn-hypervisor make life_mngr -#. For Service VM, LaaG VM and RT-Linux VM, run the Lifecycle Manager daemon: +#. For the Service VM, LaaG VM, and RT-Linux VM, run the Lifecycle Manager + daemon: - a. Copy ``life_mngr.conf``, ``s5_trigger_linux.py``, ``user_vm_shutdown.py``, ``life_mngr``, - and ``life_mngr.service`` into the Service VM and User VMs. + a. Copy ``life_mngr.conf``, ``s5_trigger_linux.py``, ``life_mngr``, + and ``life_mngr.service`` into the Service VM and User VMs. These commands + assume you have a network connection between the development computer and + target. You can also use a USB stick to transfer files. .. code-block:: none @@ -165,9 +174,11 @@ Enable S5 scp build/misc/services/life_mngr.conf root@:/etc/life_mngr/ scp build/misc/services/life_mngr.service root@:/lib/systemd/system/ - scp misc/services/life_mngr/user_vm_shutdown.py root@:~/ + #. Copy ``user_vm_shutdown.py`` into the Service VM. - .. note:: :file:`user_vm_shutdown.py` is only needed to be copied into Service VM. + .. code-block:: none + + scp misc/services/life_mngr/user_vm_shutdown.py root@:~/ #. Edit options in ``/etc/life_mngr/life_mngr.conf`` in the Service VM. @@ -178,9 +189,11 @@ Enable S5 DEV_NAME=tty:/dev/ttyS8,/dev/ttyS9,/dev/ttyS10,/dev/ttyS11,/dev/ttyS12,/dev/ttyS13,/dev/ttyS14 ALLOW_TRIGGER_S5=/dev/ttySn - .. note:: The mapping between User VM ID and communication serial device name (``/dev/ttySn``) - in the :file:`/etc/serial.conf`. If ``/dev/ttySn`` is configured in the ``ALLOW_TRIGGER_S5``, - this means system shutdown is allowed to be triggered in the corresponding User VM. + .. note:: The mapping between User VM ID and communication serial device + name (``/dev/ttySn``) is in the :file:`/etc/serial.conf`. If + ``/dev/ttySn`` is configured in the ``ALLOW_TRIGGER_S5``, this means + system shutdown is allowed to be triggered in the corresponding User + VM. #. Edit options in ``/etc/life_mngr/life_mngr.conf`` in the User VM. @@ -191,9 +204,10 @@ Enable S5 DEV_NAME=tty:/dev/ttyS1 #ALLOW_TRIGGER_S5=/dev/ttySn - .. note:: The User VM name in this configuration file should be consistent with the VM name in the - launch script for the Post-launched User VM or the VM name which is specified in the hypervisor - scenario XML for the Pre-launched User VM. + .. note:: The User VM name in this configuration file should be + consistent with the VM name in the launch script for the Post-launched + User VM or the VM name which is specified in the hypervisor scenario + XML for the Pre-launched User VM. #. Use the following commands to enable ``life_mngr.service`` and restart the Service VM and User VMs. @@ -203,12 +217,12 @@ Enable S5 sudo systemctl enable life_mngr.service sudo reboot - .. note:: For the Pre-launched User VM, need restart Lifecycle Manager service manually - after Lifecycle Manager in Service VM starts. + .. note:: For the Pre-launched User VM, restart the Lifecycle Manager + service manually after the Lifecycle Manager in the Service VM starts. -#. For the WaaG VM, run the lifecycle manager daemon: +#. For the WaaG VM, run the Lifecycle Manager daemon: - a) Build the ``life_mngr_win.exe`` application and ``s5_trigger_win.py``:: + a. Build the ``life_mngr_win.exe`` application and ``s5_trigger_win.py``:: cd acrn-hypervisor make life_mngr @@ -216,87 +230,101 @@ Enable S5 .. note:: If there is no ``x86_64-w64-mingw32-gcc`` compiler, you can run ``sudo apt install gcc-mingw-w64-x86-64`` on Ubuntu to install it. - #) Copy ``s5_trigger_win.py`` into the WaaG VM. + #. Copy ``s5_trigger_win.py`` into the WaaG VM. - #) Set up a Windows environment: + #. Set up a Windows environment: - 1) Download the Python3 from ``_, install + 1. Download the Python3 from ``_, install "Python 3.8.10" in WaaG. - #) If Lifecycle Manager for WaaG will be built in Windows, - download the Visual Studio 2019 tool from ``_, - and choose the two options in the below screenshots to install "Microsoft Visual C++ Redistributable - for Visual Studio 2015, 2017 and 2019 (x86 or X64)" in WaaG: + #. If the Lifecycle Manager for WaaG will be built in Windows, + download the Visual Studio 2019 tool from + ``_, and choose the two + options in the below screenshots to install "Microsoft Visual C++ + Redistributable for Visual Studio 2015, 2017 and 2019 (x86 or X64)" in + WaaG: .. figure:: images/Microsoft-Visual-C-install-option-1.png .. figure:: images/Microsoft-Visual-C-install-option-2.png - .. note:: If Lifecycle Manager for WaaG is built in Linux, Visual Studio 2019 tool is not needed for WaaG. + .. note:: If the Lifecycle Manager for WaaG is built in Linux, the + Visual Studio 2019 tool is not needed for WaaG. - #) In WaaG, use the :kbd:`Windows + R` shortcut key, input - ``shell:startup``, click :kbd:`OK` - and then copy the ``life_mngr_win.exe`` application into this directory. + #. In WaaG, use the :kbd:`Windows` + :kbd:`R` shortcut key, input + ``shell:startup``, click :kbd:`OK` and then copy the + ``life_mngr_win.exe`` application into this directory. .. figure:: images/run-shell-startup.png .. figure:: images/launch-startup.png - #) Restart the WaaG VM. The COM2 window will automatically open after reboot. + #. Restart the WaaG VM. The COM2 window will automatically open after reboot. - .. figure:: images/open-com-success.png + .. figure:: images/open-com-success.png -#. If ``s5_trigger_linux.py`` is run in the Service VM, the Service VM will shut down (transitioning to the S5 state), - it sends poweroff request to shut down the User VMs. +#. If ``s5_trigger_linux.py`` is run in the Service VM, the Service VM shuts + down (transitioning to the S5 state) and sends a poweroff request to shut down the User VMs. - .. note:: S5 state is not automatically triggered by a Service VM shutdown; this needs - to run ``s5_trigger_linux.py`` in the Service VM. + .. note:: S5 state is not automatically triggered by a Service VM shutdown; + you need to run ``s5_trigger_linux.py`` in the Service VM. How to Test *********** - As described in :ref:`vuart_config`, two vUARTs are defined for User VM in - pre-defined ACRN scenarios: vUART0/ttyS0 for the console and - vUART1/ttyS1 for S5-related communication (as shown in :ref:`s5-architecture`). - For Yocto Project (Poky) or Ubuntu rootfs, the ``serial-getty`` - service for ``ttyS1`` conflicts with the S5-related communication - use of ``vUART1``. We can eliminate the conflict by preventing - that service from being started - either automatically or manually, by masking the service - using this command +As described in :ref:`vuart_config`, two vUARTs are defined for a User VM in +pre-defined ACRN scenarios: ``vUART0/ttyS0`` for the console and +``vUART1/ttyS1`` for S5-related communication (as shown in +:ref:`s5-architecture`). - :: +For Yocto Project (Poky) or Ubuntu rootfs, the ``serial-getty`` +service for ``ttyS1`` conflicts with the S5-related communication +use of ``vUART1``. We can eliminate the conflict by preventing +that service from being started +either automatically or manually, by masking the service +using this command: - systemctl mask serial-getty@ttyS1.service +:: -#. Refer to the :ref:`enable_s5` section to set up the S5 environment for the User VMs. + systemctl mask serial-getty@ttyS1.service - .. note:: Use the ``systemctl status life_mngr.service`` command to ensure the service is working on the LaaG or RT-Linux: +#. Refer to the :ref:`enable_s5` section to set up the S5 environment for the + User VMs. + + .. note:: Use the ``systemctl status life_mngr.service`` command to ensure + the service is working on the LaaG or RT-Linux: .. code-block:: console - * life_mngr.service - ACRN lifemngr daemon - Loaded: loaded (/lib/systemd/system/life_mngr.service; enabled; vendor preset: enabled) - Active: active (running) since Thu 2021-11-11 12:43:53 CST; 36s ago - Main PID: 197397 (life_mngr) + * life_mngr.service - ACRN lifemngr daemon + Loaded: loaded (/lib/systemd/system/life_mngr.service; enabled; vendor preset: enabled) + Active: active (running) since Thu 2021-11-11 12:43:53 CST; 36s ago + Main PID: 197397 (life_mngr) - .. note:: For WaaG, we need to close ``windbg`` by using the ``bcdedit /set debug off`` command - IF you executed the ``bcdedit /set debug on`` when you set up the WaaG, because it occupies the ``COM2``. + .. note:: For WaaG, you need to close ``windbg`` by using the + ``bcdedit /set debug off`` command IF you executed the ``bcdedit /set + debug on`` command when you set up the WaaG, because it occupies the + ``COM2``. -#. Use the ``user_vm_shutdown.py`` in the Service VM to shut down the User VMs: +#. Run ``user_vm_shutdown.py`` in the Service VM to shut down the User VMs: .. code-block:: none sudo python3 ~/user_vm_shutdown.py - .. note:: The User VM name is configured in the :file:`life_mngr.conf` of User VM. - For the WaaG VM, the User VM name is "windows". + .. note:: The User VM name is configured in the :file:`life_mngr.conf` of + the User VM. For the WaaG VM, the User VM name is "windows". -#. Use the ``acrnctl list`` command to check the User VM status. +#. Run the ``acrnctl list`` command to check the User VM status. .. code-block:: none sudo acrnctl list + + Output example: + + .. code-block:: console + stopped System Shutdown @@ -306,40 +334,41 @@ Using a coordinating script, ``s5_trigger_linux.py`` or ``s5_trigger_win.py``, in conjunction with the Lifecycle Manager in each VM, graceful system shutdown can be performed. -In the ``hybrid_rt`` scenario, operator can use the script to send a system shutdown -request via ``/var/lib/life_mngr/monitor.sock`` to User VM which is configured to be allowed to -trigger system S5, this system shutdown request is forwarded to the Service VM, the -Service VM sends poweroff request to each User VMs (Pre-launched VM or Post-launched VM) -through vUART. The Lifecycle Manager in the User VM receives the poweroff request, sends an -ack message, and proceeds to shut itself down accordingly. +In the ``hybrid_rt`` scenario, operator can use the script to send a system +shutdown request via ``/var/lib/life_mngr/monitor.sock`` to a User VM that is +configured to be allowed to trigger system S5. This system shutdown request is +forwarded to the Service VM. The Service VM sends a poweroff request to each +User VM (Pre-launched VM or Post-launched VM) through vUART. The Lifecycle +Manager in the User VM receives the poweroff request, sends an ack message, and +proceeds to shut itself down accordingly. .. figure:: images/system_shutdown.png :align: center - Graceful system shutdown flow + Graceful System Shutdown Flow -#. The HMI in the Windows VM uses ``s5_trigger_win.py`` to send - system shutdown request to the Lifecycle Manager, Lifecycle Manager - forwards this request to Lifecycle Manager in the Service VM. +#. The HMI in the Windows User VM uses ``s5_trigger_win.py`` to send a + system shutdown request to the Lifecycle Manager. The Lifecycle Manager + forwards this request to the Lifecycle Manager in the Service VM. #. The Lifecycle Manager in the Service VM responds with an ack message and - sends ``poweroff_cmd`` request to Windows VM. -#. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the HMI - Windows VM responds with an ack message, then shuts down VM. -#. The Lifecycle Manager in the Service VM sends ``poweroff_cmd`` request to - Linux User VM. + sends a ``poweroff_cmd`` request to the Windows User VM. +#. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the + Windows User VM responds with an ack message, then shuts down the VM. +#. The Lifecycle Manager in the Service VM sends a ``poweroff_cmd`` request to + the Linux User VM. #. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the - Linux User VM responds with an ack message, then shuts down VM. -#. The Lifecycle Manager in the Service VM sends ``poweroff_cmd`` request to - Pre-launched RTVM. + Linux User VM responds with an ack message, then shuts down the VM. +#. The Lifecycle Manager in the Service VM sends a ``poweroff_cmd`` request to + the Pre-launched RTVM. #. After receiving the ``poweroff_cmd`` request, the Lifecycle Manager in the Pre-launched RTVM responds with an ack message. #. The Lifecycle Manager in the Pre-launched RTVM shuts down the VM using ACPI PM registers. -#. After receiving the ack message from all user VMs, the Lifecycle Manager - in the Service VM shuts down VM. +#. After receiving the ack message from all User VMs, the Lifecycle Manager + in the Service VM shuts down the VM. #. The hypervisor shuts down the system after all VMs have shut down. -.. note:: If one or more virtual functions (VFs) of a SR-IOV device, e.g. GPU on Alder - Lake platform, are assigned to User VMs, extra steps should be taken by user to - disable all VFs before Service VM shuts down. Otherwise, Service VM may fail to - shut down due to some enabled VFs. \ No newline at end of file +.. note:: If one or more virtual functions (VFs) of a SR-IOV device, e.g., GPU + on Alder Lake platform, are assigned to User VMs, take extra steps to disable + all VFs before the Service VM shuts down. Otherwise, the Service VM may fail + to shut down due to some enabled VFs. \ No newline at end of file diff --git a/doc/tutorials/images/system_shutdown.png b/doc/tutorials/images/system_shutdown.png index 58f42eed3fb855a21f76adc05dc5ee559b659ff0..e41300ef2bb0d67675e6d2729e43a0bf2f80bdcc 100644 GIT binary patch literal 20541 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 IIVCg!0EoorY5)KL literal 15483 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�}Mdkc{$A4!C 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