From 7112452d528f5d8f0e845fd7e5810677c3774499 Mon Sep 17 00:00:00 2001 From: "David B. Kinder" Date: Thu, 4 Aug 2022 16:57:54 -0700 Subject: [PATCH] doc: update documents for 3.0.1 release Clarify release notes and add vmexit information for acrn shell. Signed-off-by: David B. Kinder --- doc/release_notes/release_notes_3.0.1.rst | 10 ++--- doc/user-guides/acrn-shell.rst | 45 ++++++++++++++++++++++ doc/user-guides/images/vmexit-example.png | Bin 0 -> 53777 bytes 3 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 doc/user-guides/images/vmexit-example.png diff --git a/doc/release_notes/release_notes_3.0.1.rst b/doc/release_notes/release_notes_3.0.1.rst index 14e6f05d76..7eb98cd607 100644 --- a/doc/release_notes/release_notes_3.0.1.rst +++ b/doc/release_notes/release_notes_3.0.1.rst @@ -36,19 +36,19 @@ What's New in v3.0.1 ******************** Mitigation for Return Stack Buffer Underflow security vulnerability - For platforms that supports RRSBA (Restricted Return Stack Buffer + When running ACRN on Alder Lake platforms that support RRSBA (Restricted Return Stack Buffer Alternate), using retpoline may not be sufficient to guard against branch history injection or intra-mode branch target injection. RRSBA must - be disabled to prevent CPUs from using alternate predictors for RETs. + be disabled for Alder Lake platforms to prevent CPUs from using alternate predictors for RETs. (Addresses security issue tracked by CVE-2022-29901 and CVE-2022-28693.) ACRN shell commands added for real-time performance profiling ACRN shell commands were added to sample vmexit data per virtual CPU to facilitate real-time performance profiling: - * ``vmexit clear``: clears current vmexit buffer - * ``vmexit [vm_id]``: outputs vmexit info per vCPU * ``vmexit enable | disable``: enabled by default - + * ``vmexit clear``: clears current vmexit buffer + * ``vmexit [vm_id]``: outputs vmexit reason code and latency count information per vCPU + for a VM ID (or for all VM IDs if none is specified). See :ref:`release_notes_3.0` for additional release information. diff --git a/doc/user-guides/acrn-shell.rst b/doc/user-guides/acrn-shell.rst index 6c8f808f76..7b26e3dea3 100644 --- a/doc/user-guides/acrn-shell.rst +++ b/doc/user-guides/acrn-shell.rst @@ -53,6 +53,15 @@ The ACRN hypervisor shell supports the following commands: * - wrmsr [-p] - Write ``value`` (in hexadecimal) to the model-specific register (MSR) at index ``msr_index`` (in hexadecimal) for CPU ID ``pcpu_id``. + * - vmexit [enable | disable | clear | ] + - Controls collection and display of vmexit occurrences useful for + real-time performance profiling. + + * **enable** and **disable** determine if vmexit data is collected + (enabled by default in a debug-mode build). + * **clear** resets counters back to zero. + * **** displays vmexit data per vmexit reason for all vCPUs for that VM. + * If no argument is given, data for all VMs is displayed. Command Examples **************** @@ -249,3 +258,39 @@ In the following example, we can set the IA32_APIC_BASE value of pCPU 1 through the command:: wrmsr -p1 1b 0xfee00c00 + +vmexit +====== + +VMexit data collection is enabled by default in a debug-mode ACRN build. There +should be little impact on real-time system performance since a tuned RTVM +should have very few vmexits. + +You can disable vmexit data collection using the ACRN shell's ``vmexit disable`` +command. + +The ``vmexit`` command with no arguments (or with a argument) shows a +table of counters for each vmexit reason, for all VM's (or just the +specified VM's) vCPUs, showing the latency time counts. For example: + +.. figure:: images/vmexit-example.png + :align: center + +VMexit reason codes are defined in the (ACRN) kernel source code +:acrn_file:`hypervisor/include/arch/x86/asm/vmx.h` (search for "VM exit +reasons"). Here are a few examples: + +.. list-table:: + :header-rows: 1 + :widths: 20 80 + + * - VMexit reason code + - Explanation + * - 0x01 + - An external interrupt (IRQ) arrived + * - 0x0a + - The guest VM software attempted to execute the CPUID instruction. + * - 0x0c + - The guest VM attempted to execute HLT instruction. + * - 0x12 + - The execution of VMCALL by the guest VM caused an ordinary VM exit. diff --git a/doc/user-guides/images/vmexit-example.png b/doc/user-guides/images/vmexit-example.png new file mode 100644 index 0000000000000000000000000000000000000000..719bed1c20ff89cbb110c7943f6e9e50b5e89f88 GIT binary patch literal 53777 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 iCJ3