acrn-hypervisor/hypervisor
Xiangyang Wu d16d0f00bc HV: update destination shorthand during x2apic ICR emulation
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>
2021-12-01 09:54:35 +08:00
..
acpi_parser hv: rename CONFIG_GPU_SBDF to CONFIG_IGD_SBDF 2021-11-28 14:23:29 +08:00
arch/x86 HV: update destination shorthand during x2apic ICR emulation 2021-12-01 09:54:35 +08:00
boot HV: prepare adaptable guest EFI mmap buffer 2021-11-08 09:49:24 +08:00
bsp/ld HV: fix MISRA violation of _ld_ram_xxx 2021-11-26 16:45:17 +08:00
common hv: hypercall: return 0 for empty PX or CX tables 2021-11-17 16:33:11 +08:00
debug hv: remove UUID 2021-11-16 14:42:59 +08:00
dm hv: rename CONFIG_GPU_SBDF to CONFIG_IGD_SBDF 2021-11-28 14:23:29 +08:00
hw HV: treewide: fix violations of coding guideline C-TY-27 & C-TY-28 2021-11-04 18:15:47 +08:00
include hv: Add stateful VM check before system shutdown 2021-12-01 08:47:25 +08:00
lib HV: treewide: fix violations of coding guideline C-TY-12 2021-11-04 18:15:47 +08:00
quirks hv: Avoid using SMBIOS major version 2021-09-08 15:22:12 +08:00
release hv: debug: Add hv console callback to VM-exit event 2021-07-22 10:08:23 +08:00
scripts config_tools: update board name in makefile 2021-09-29 16:53:44 +08:00
MAINTAINERS update home page information 2018-05-15 17:19:39 +08:00
Makefile hv: tee: add TEE VM memmap support 2021-11-17 15:25:14 +08:00
README.rst doc: fix utf-8 punctuation, branding, spelling 2019-03-14 09:13:58 -07:00

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/