mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
c619a804cc
Add documentation on the following aspects of ACRN: 1) A brief introduction on the architecture of ACRN. 2) I/O request handling in ACRN. 3) CPUID functions of ACRN. To learn more about ACRN, please go to ACRN project website https://projectacrn.org, or the documentation page https://projectacrn.github.io/. Cc: Dave Hansen <dave.hansen@intel.com> Cc: Sen Christopherson <sean.j.christopherson@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Fengwei Yin <fengwei.yin@intel.com> Cc: Zhi Wang <zhi.a.wang@intel.com> Cc: Zhenyu Wang <zhenyuw@linux.intel.com> Cc: Yu Wang <yu1.wang@intel.com> Cc: Reinette Chatre <reinette.chatre@intel.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Randy Dunlap <rdunlap@infradead.org> Reviewed-by: Zhi Wang <zhi.a.wang@intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Borislav Petkov <bp@suse.de> Signed-off-by: Shuo Liu <shuo.a.liu@intel.com> Link: https://lore.kernel.org/r/20210207031040.49576-2-shuo.a.liu@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
44 lines
2.1 KiB
ReStructuredText
44 lines
2.1 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
ACRN Hypervisor Introduction
|
|
============================
|
|
|
|
The ACRN Hypervisor is a Type 1 hypervisor, running directly on bare-metal
|
|
hardware. It has a privileged management VM, called Service VM, to manage User
|
|
VMs and do I/O emulation.
|
|
|
|
ACRN userspace is an application running in the Service VM that emulates
|
|
devices for a User VM based on command line configurations. ACRN Hypervisor
|
|
Service Module (HSM) is a kernel module in the Service VM which provides
|
|
hypervisor services to the ACRN userspace.
|
|
|
|
Below figure shows the architecture.
|
|
|
|
::
|
|
|
|
Service VM User VM
|
|
+----------------------------+ | +------------------+
|
|
| +--------------+ | | | |
|
|
| |ACRN userspace| | | | |
|
|
| +--------------+ | | | |
|
|
|-----------------ioctl------| | | | ...
|
|
|kernel space +----------+ | | | |
|
|
| | HSM | | | | Drivers |
|
|
| +----------+ | | | |
|
|
+--------------------|-------+ | +------------------+
|
|
+---------------------hypercall----------------------------------------+
|
|
| ACRN Hypervisor |
|
|
+----------------------------------------------------------------------+
|
|
| Hardware |
|
|
+----------------------------------------------------------------------+
|
|
|
|
ACRN userspace allocates memory for the User VM, configures and initializes the
|
|
devices used by the User VM, loads the virtual bootloader, initializes the
|
|
virtual CPU state and handles I/O request accesses from the User VM. It uses
|
|
ioctls to communicate with the HSM. HSM implements hypervisor services by
|
|
interacting with the ACRN Hypervisor via hypercalls. HSM exports a char device
|
|
interface (/dev/acrn_hsm) to userspace.
|
|
|
|
The ACRN hypervisor is open for contribution from anyone. The source repo is
|
|
available at https://github.com/projectacrn/acrn-hypervisor.
|