mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-06 10:44:41 +00:00
doc: v2.0 release notes
Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
This commit is contained in:
parent
86eb68a1e7
commit
137f7d67e7
@ -126,6 +126,9 @@ a passthrough device to/from a post-launched VM is shown in the following figure
|
|||||||
|
|
||||||
ptdev de-assignment control flow
|
ptdev de-assignment control flow
|
||||||
|
|
||||||
|
.. _vtd-posted-interrupt:
|
||||||
|
|
||||||
|
|
||||||
VT-d Interrupt-remapping
|
VT-d Interrupt-remapping
|
||||||
************************
|
************************
|
||||||
|
|
||||||
|
285
doc/release_notes/release_notes_2.0.rst
Normal file
285
doc/release_notes/release_notes_2.0.rst
Normal file
@ -0,0 +1,285 @@
|
|||||||
|
.. _release_notes_2.0:
|
||||||
|
|
||||||
|
ACRN v2.0 (June 2020)
|
||||||
|
#####################
|
||||||
|
|
||||||
|
We are pleased to announce the second major release of the Project ACRN
|
||||||
|
hypervisor.
|
||||||
|
|
||||||
|
ACRN v2.0 offers new and improved scenario definitions, with a focus on
|
||||||
|
industrial IoT and edge device use cases. ACRN supports these uses with
|
||||||
|
their demanding and varying workloads including Functional Safety
|
||||||
|
certification, real-time characteristics, device and CPU sharing, and
|
||||||
|
general computing power needs, while honoring required isolation and
|
||||||
|
resource partitioning. A wide range of User VM OSs (such as Windows 10,
|
||||||
|
Ubuntu, Android, and VxWorks) can run on ACRN, running different
|
||||||
|
workloads and applications on the same hardware platform.
|
||||||
|
|
||||||
|
Workload management and orchestration, rather standard and mature in
|
||||||
|
cloud environments, are enabled now in ACRN, allowing open source
|
||||||
|
orchestrators such as OpenStack to manage ACRN virtual machines. Kata
|
||||||
|
Containers, a secure container runtime, has also been enabled on ACRN
|
||||||
|
and can be orchestrated via Docker or Kubernetes.
|
||||||
|
|
||||||
|
Rounding things out, we’ve also made significant improvements in
|
||||||
|
configuration tools, added many new tutorial documents, and enabled ACRN
|
||||||
|
on the QEMU machine emulator make it easier to try out and develop with
|
||||||
|
ACRN.
|
||||||
|
|
||||||
|
ACRN is a flexible, lightweight reference hypervisor that is built with
|
||||||
|
real-time and safety-criticality in mind. It is optimized to streamline
|
||||||
|
embedded development through an open source platform. Check out
|
||||||
|
:ref:`introduction` for more information. All project ACRN source code
|
||||||
|
is maintained in the https://github.com/projectacrn/acrn-hypervisor
|
||||||
|
repository and includes folders for the ACRN hypervisor, the ACRN device
|
||||||
|
model, tools, and documentation. You can either download this source
|
||||||
|
code as a zip or tar.gz file (see the `ACRN v2.0 GitHub release page
|
||||||
|
<https://github.com/projectacrn/acrn-hypervisor/releases/tag/v2.0>`_)
|
||||||
|
or use Git clone and checkout commands::
|
||||||
|
|
||||||
|
git clone https://github.com/projectacrn/acrn-hypervisor
|
||||||
|
cd acrn-hypervisor
|
||||||
|
git checkout v2.0
|
||||||
|
|
||||||
|
The project's online technical documentation is also tagged to
|
||||||
|
correspond with a specific release: generated v2.0 documents can be
|
||||||
|
found at https://projectacrn.github.io/2.0/. Documentation for the
|
||||||
|
latest (master) branch is found at
|
||||||
|
https://projectacrn.github.io/latest/.
|
||||||
|
Follow the instructions in the :ref:`rt_industry_setup`.
|
||||||
|
|
||||||
|
We recommend that all developers upgrade to ACRN release v2.0.
|
||||||
|
|
||||||
|
Version 2.0 Key Features (comparing with v1.0)
|
||||||
|
**********************************************
|
||||||
|
|
||||||
|
.. contents::
|
||||||
|
:local:
|
||||||
|
:backlinks: entry
|
||||||
|
|
||||||
|
ACRN Architecture Upgrade to Support Hybrid Mode
|
||||||
|
================================================
|
||||||
|
|
||||||
|
The ACRN architecture has evolved after its initial major 1.0 release in
|
||||||
|
May 2019. The new hybrid mode architecture has the flexibility to
|
||||||
|
support both partition mode and sharing mode simultaneously, as shown in
|
||||||
|
this architecture diagram:
|
||||||
|
|
||||||
|
.. figure:: ../introduction/images/ACRN-V2-high-level-arch.png
|
||||||
|
:width: 700px
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
ACRN V2 high-level architecture
|
||||||
|
|
||||||
|
On the left, resources are partitioned and used by a pre-launched User
|
||||||
|
Virtual Machine (VM), started by the hypervisor before the Service VM
|
||||||
|
has been launched. It runs independent of other virtual machines, and
|
||||||
|
can own its own dedicated hardware resources, such as a CPU core,
|
||||||
|
memory, and I/O devices. Because other VMs may not even be aware of its
|
||||||
|
existence, this pre-launched VM can be used as a safety VM where, for
|
||||||
|
example, platform hardware failure detection code can run and take
|
||||||
|
emergency actions if a system critical failure occurs.
|
||||||
|
|
||||||
|
On the right, the remaining hardware resources are shared by the Service
|
||||||
|
VM and User VMs. The Service VM can access hardware resources directly
|
||||||
|
(by running native drivers) and offer device sharing services to other
|
||||||
|
User VMs by the Device Model.
|
||||||
|
|
||||||
|
Also on the right, a special post-launched real-time VM (RTVM) can run a
|
||||||
|
hard real-time OS, such as VxWorks*, Zephyr*, or Xenomai*. Because of
|
||||||
|
its real-time capabilities, the RTVM can be used for soft PLC, IPC, or
|
||||||
|
Robotics applications.
|
||||||
|
|
||||||
|
New Hardware Platform Support
|
||||||
|
=============================
|
||||||
|
|
||||||
|
This release adds support for 8th Gen Intel® Core™ Processors (code
|
||||||
|
name: Whiskey Lake). (See :ref:`hardware` for platform details.)
|
||||||
|
|
||||||
|
Pre-launched Safety VM Support
|
||||||
|
==============================
|
||||||
|
|
||||||
|
ACRN supports a pre-launched partitioned safety VM, isolated from the
|
||||||
|
Service VM and other post-launched VM by using partitioned HW resources.
|
||||||
|
For example, in the hybrid mode, a real-time Zephyr RTOS VM can be
|
||||||
|
“pre-launched” by the hypervisor even before the Service VM is launched,
|
||||||
|
and with its own dedicated resources to achieve a high level of
|
||||||
|
isolation. This is designed to meet the needs of a Functional Safety OS.
|
||||||
|
|
||||||
|
Post-launched VM support via OVMF
|
||||||
|
=================================
|
||||||
|
|
||||||
|
ACRN supports Open Virtual Machine Firmware (OVMF) as a virtual boot
|
||||||
|
loader for the Service VM to launch post-launched VMs such as Windows,
|
||||||
|
Linux, VxWorks, or Zephyr RTOS. Secure boot is also supported.
|
||||||
|
|
||||||
|
Post-launched Real-time VM Support
|
||||||
|
==================================
|
||||||
|
|
||||||
|
ACRN supports a post-launched RTVM, which also uses partitioned hardware
|
||||||
|
resources to ensure good real-time performance, as required for
|
||||||
|
industrial use cases.
|
||||||
|
|
||||||
|
Real-Time VM Performance Optimizations
|
||||||
|
======================================
|
||||||
|
|
||||||
|
ACRN 2.0 improves (preempt-RT kernel-based) RTVM’s performance with
|
||||||
|
these optimizations:
|
||||||
|
|
||||||
|
* **Reduce the impact of VM-Exit overhead:**
|
||||||
|
Use Local APIC (LAPIC) passthrough, Virtio Polling Mode Drivers (PMD),
|
||||||
|
and NMI interrupt notification technologies.
|
||||||
|
|
||||||
|
* **Isolate the RTVM from the Service VM:**
|
||||||
|
Use Cache Isolation via Catch Allocation Technology (CAT) to ensure the
|
||||||
|
RTVM’s CPU using dedicated cache resource, avoiding interference from
|
||||||
|
other VMs
|
||||||
|
|
||||||
|
* **PCI Configuration space access emulation for passthrough devices in the hypervisor:**
|
||||||
|
The hypervisor provides the necessary emulation (such as config space)
|
||||||
|
of the passthrough PCI device during runtime for a DM-launched VM from
|
||||||
|
Service VM.
|
||||||
|
|
||||||
|
* **PCI bridge emulation inside hypervisor**
|
||||||
|
|
||||||
|
* **ART (Always Running Timer Virtualization):**
|
||||||
|
Ensure time is synchronized between Ptdev and vART
|
||||||
|
|
||||||
|
CPU Sharing Support
|
||||||
|
===================
|
||||||
|
|
||||||
|
ACRN supports CPU Sharing to fully utilize the physical CPU resource
|
||||||
|
across more virtual machines. ACRN enables a borrowed virtual time CPU
|
||||||
|
scheduler in the hypervisor to make sure the physical CPU can be shared
|
||||||
|
between VMs and support for yielding an idle vCPU when it’s running a
|
||||||
|
‘HLT’ or ‘PAUSE’ instruction.
|
||||||
|
|
||||||
|
Many choices for User VM OS
|
||||||
|
===========================
|
||||||
|
|
||||||
|
ACRN now supports Windows* 10, Android*, Ubuntu*, Xenomai, VxWorks*,
|
||||||
|
Real-Time Linux*, and Zephyr* RTOS. ACRN’s Windows support now conforms
|
||||||
|
to the Microsoft* Hypervisor Top-Level Functional Specification (TLFS).
|
||||||
|
ACRN 2.0 also improves overall Windows as a Guest (WaaG) stability and
|
||||||
|
performance.
|
||||||
|
|
||||||
|
Single Root I/O Virtualization (SR-IOV) Support
|
||||||
|
===============================================
|
||||||
|
|
||||||
|
SR-IOV allows a device to separate access to its resources among various
|
||||||
|
PCIe hardware functions. For a network adapter, this enables network
|
||||||
|
traffic to bypass the software switch layer in the virtualization stack
|
||||||
|
and achieve network performance that is nearly the same as in a
|
||||||
|
nonvirtualized environment. An SR-IOV capable PCI device’s Physical
|
||||||
|
Function (PF) can be allocated to the Service VM, and its Virtual
|
||||||
|
Functions (VFs) can be allocated to any User VM. For example, the ACRN
|
||||||
|
Service VM supports a SR-IOV ethernet device (through the PF driver) and
|
||||||
|
ensures that the SR-IOV VF device can be assigned (passthrough) to a
|
||||||
|
post-launched VM (launched by ACRN-DM in Service VM).
|
||||||
|
|
||||||
|
Graphics passthrough support
|
||||||
|
============================
|
||||||
|
|
||||||
|
ACRN supports GPU passthrough to dedicated User VM based on Intel GVT-d
|
||||||
|
technology used to virtualize the GPU for multiple guest VMs,
|
||||||
|
effectively providing near-native graphics performance in the VM.
|
||||||
|
|
||||||
|
Shared memory based Inter-VM communication
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
ACRN supports Inter-VM communication based on shared memory for
|
||||||
|
post-launched VMs communicating via a UIO interface.
|
||||||
|
|
||||||
|
Configuration Tool Support
|
||||||
|
==========================
|
||||||
|
|
||||||
|
A new offline configuration tool helps developers deploy ACRN to
|
||||||
|
different hardware systems with its own customization.
|
||||||
|
|
||||||
|
Kata Containers Support
|
||||||
|
=======================
|
||||||
|
|
||||||
|
ACRN can launch a Kata container, a secure container runtime, as a User VM.
|
||||||
|
|
||||||
|
VM orchestration
|
||||||
|
================
|
||||||
|
|
||||||
|
Libvirt is an open-source API, daemon, and management tool as a layer to
|
||||||
|
decouple orchestrators and hypervisors. By adding a “ACRN driver”, ACRN
|
||||||
|
supports the libvirt-based orchestrator to configure a User VM’s CPU
|
||||||
|
configuration during VM creation.
|
||||||
|
|
||||||
|
Document updates
|
||||||
|
================
|
||||||
|
Many new and updated `reference documents <https://projectacrn.github.io>`_ are available, including:
|
||||||
|
|
||||||
|
* General
|
||||||
|
|
||||||
|
* :ref:`introduction`
|
||||||
|
* :ref:`hardware`
|
||||||
|
* :ref:`asa`
|
||||||
|
|
||||||
|
* Getting Started
|
||||||
|
|
||||||
|
* :ref:`rt_industry_ubuntu_setup`
|
||||||
|
* :ref:`using_partition_mode_on_nuc`
|
||||||
|
|
||||||
|
* Configuration and Tools
|
||||||
|
|
||||||
|
* :ref:`acrn_configuration_tool`
|
||||||
|
|
||||||
|
* Service VM Tutorials
|
||||||
|
|
||||||
|
* :ref:`running_deb_as_serv_vm`
|
||||||
|
|
||||||
|
* User VM Tutorials
|
||||||
|
|
||||||
|
.. rst-class:: rst-columns2
|
||||||
|
|
||||||
|
* :ref:`using_zephyr_as_uos`
|
||||||
|
* :ref:`running_deb_as_user_vm`
|
||||||
|
* :ref:`using_celadon_as_uos`
|
||||||
|
* :ref:`using_windows_as_uos`
|
||||||
|
* :ref:`using_vxworks_as_uos`
|
||||||
|
* :ref:`using_xenomai_as_uos`
|
||||||
|
|
||||||
|
* Enable ACRN Features
|
||||||
|
|
||||||
|
.. rst-class:: rst-columns2
|
||||||
|
|
||||||
|
* :ref:`open_vswitch`
|
||||||
|
* :ref:`rdt_configuration`
|
||||||
|
* :ref:`sriov_virtualization`
|
||||||
|
* :ref:`cpu_sharing`
|
||||||
|
* :ref:`run-kata-containers`
|
||||||
|
* :ref:`how-to-enable-secure-boot-for-windows`
|
||||||
|
* :ref:`enable-s5`
|
||||||
|
* :ref:`vuart_config`
|
||||||
|
* :ref:`sgx_virt`
|
||||||
|
* :ref:`acrn-dm_qos`
|
||||||
|
* :ref:`setup_openstack_libvirt`
|
||||||
|
* :ref:`acrn_on_qemu`
|
||||||
|
* :ref:`gpu-passthrough`
|
||||||
|
|
||||||
|
* Debug
|
||||||
|
|
||||||
|
* :ref:`rt_performance_tuning`
|
||||||
|
* :ref:`rt_perf_tips_rtvm`
|
||||||
|
|
||||||
|
* High-Level Design Guides
|
||||||
|
|
||||||
|
* :ref:`virtio-i2c`
|
||||||
|
* :ref:`split-device-model`
|
||||||
|
* :ref:`hv-device-passthrough`
|
||||||
|
* :ref:`vtd-posted-interrupt`
|
||||||
|
|
||||||
|
|
||||||
|
Fixed Issues
|
||||||
|
************
|
||||||
|
|
||||||
|
.. comment- :acrn-issue:`1773` - [APLNUC][IO][LaaG]USB Mediator USB3.0 and USB2.0 flash disk boot up UOS, quickly hot plug USB and Can not recognize all the devices
|
||||||
|
|
||||||
|
Known Issues
|
||||||
|
************
|
||||||
|
|
||||||
|
.. comment- :acrn-issue:`4046` - [WHL][Function][WaaG] Error info popoup when run 3DMARK11 on Waag
|
Loading…
Reference in New Issue
Block a user