mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-05 05:32:05 +00:00
Currently, in RTVM with multi vCPUs, lapic pass through is configured, each vCPU works in x2apic mode. When one vCPU sends IPI to all other vCPUs through writes ICR register with virtual value 0x00000000000c00f8, this ICR writting will be intercepted, the hypervisor passes destination shorthand field 11B (All Excluding Self) in the virtual ICR value into physical ICR value during IPI emulation, this IPI will be sent to each physical CPU core in the platform according to 10.6.1 Interrupt Command Register (ICR), Vol 3, SDM. One vCPU in User VM with lapic pass through configuration can send IPI with destination shorthand (10B or 11B) and any vector (such as NMI or reboot vector) to other vCPUs, this IPI will sent other VMs in the platform by hypervisor, this interference may cause other VMs hang. In this patch, set "Destination Shorthand" field of the ICR value as 00B (No Shorthand) since the emulation is done through sending IPI to each VCPU in dmask one by one. Tracked-On: #6908 Signed-off-by: Xiangyang Wu <xiangyang.wu@intel.com> Reviewed-by: Chen, Jason CJ <jason.cj.chen@intel.com> |
||
---|---|---|
.. | ||
acpi_parser | ||
arch/x86 | ||
boot | ||
bsp/ld | ||
common | ||
debug | ||
dm | ||
hw | ||
include | ||
lib | ||
quirks | ||
release | ||
scripts | ||
MAINTAINERS | ||
Makefile | ||
README.rst |
ACRN Hypervisor ############### The open source `Project ACRN`_ defines a device hypervisor reference stack and an architecture for running multiple software subsystems, managed securely, on a consolidated system by means of a virtual machine manager. It also defines a reference framework implementation for virtual device emulation, called the "ACRN Device Model". The ACRN Hypervisor is a Type 1 reference hypervisor stack, running directly on the bare-metal hardware, and is suitable for a variety of IoT and embedded device solutions. The ACRN hypervisor addresses the gap that currently exists between datacenter hypervisors, and hard partitioning hypervisors. The ACRN hypervisor architecture partitions the system into different functional domains, with carefully selected guest OS sharing optimizations for IoT and embedded devices. You can find out more about Project ACRN on the `Project ACRN documentation`_ website. .. _`Project ACRN`: https://projectacrn.org .. _`ACRN Hypervisor`: https://github.com/projectacrn/acrn-hypervisor .. _`Project ACRN documentation`: https://projectacrn.github.io/