mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-22 07:03:16 +00:00
The acrn-dm ``--cpu_affinity`` parameter is now mandatory. Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
186 lines
6.8 KiB
ReStructuredText
186 lines
6.8 KiB
ReStructuredText
.. _release_notes_2.7:
|
|
|
|
ACRN v2.7 (DRAFT)
|
|
#################
|
|
|
|
We are pleased to announce the release of the Project ACRN hypervisor
|
|
version 2.7.
|
|
|
|
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. See the
|
|
:ref:`introduction` 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 download this source code either as a zip or
|
|
tar.gz file (see the `ACRN v2.7 GitHub release page
|
|
<https://github.com/projectacrn/acrn-hypervisor/releases/tag/v2.7>`_) or
|
|
use Git ``clone`` and ``checkout`` commands::
|
|
|
|
git clone https://github.com/projectacrn/acrn-hypervisor
|
|
cd acrn-hypervisor
|
|
git checkout v2.7
|
|
|
|
The project's online technical documentation is also tagged to
|
|
correspond with a specific release: generated v2.7 documents can be
|
|
found at https://projectacrn.github.io/2.7/. Documentation for the
|
|
latest development branch is found at https://projectacrn.github.io/latest/.
|
|
|
|
ACRN v2.7 requires Ubuntu 18.04. Follow the instructions in the
|
|
:ref:`gsg` to get started with ACRN.
|
|
|
|
|
|
What's New in v2.7
|
|
******************
|
|
|
|
API and Documentation Updates for User VM and Service VM Terminology
|
|
More often than not, the terms "UOS" and "SOS" referred to the User VM and
|
|
Service VM components of an ACRN Hypervisor system and not to the VM's OS.
|
|
We've updated the hypervisor APIs and documentation to properly reflect these
|
|
names and removed uses of UOS and SOS.
|
|
|
|
In the code, uses of ``uos`` and ``sos`` in names were changed to ``user_vm``
|
|
and ``service_vm`` respectively. When specifically referring to the OS of
|
|
these VMs, we now use ``user_vm_os`` and ``service_vm_os``. These changes
|
|
appear throughout the C files, as well as in the ``.xml`` configuration
|
|
files.
|
|
|
|
For example, here are examples of old and new names:
|
|
|
|
.. list-table::
|
|
:widths: 1 1
|
|
:header-rows: 1
|
|
|
|
* - Old Name
|
|
- New Name
|
|
|
|
* - ``#define SOS_SOCKET_PORT 0x2000``
|
|
- ``#define SERVICE_VM_SOCKET_PORT 0x2000``
|
|
|
|
* - ``pkt->uos_active``
|
|
- ``pkt->user_vm_active``
|
|
|
|
* - ``static uint16_t get_uos_count(void)``
|
|
- ``static uint16_t get_user_vm_count(void)``
|
|
|
|
* - ``static uint16_t get_phy_addr(uint8_t uos_id, uint16_t vaddr)``
|
|
- ``static uint16_t get_phy_addr(uint8_t user_vmid, uint16_t vaddr)``
|
|
|
|
Update Scenario Names
|
|
The pre-defined scenario names were changed to be indicative of their
|
|
properties instead of an example use. The "industry" scenario is now called
|
|
"shared", the "logical partitioning" scenario is now called "partitioned",
|
|
and the "hybrid" scenario name remains the same.
|
|
|
|
Here are the three configuration scenarios:
|
|
|
|
* **Shared**: The physical hardware resources can be shared among
|
|
post-launched User VMs. The Service VM (Device Model) provides device
|
|
emulation for the shared virtual devices.
|
|
* **Partitioned**: The physical resources are strictly dedicated to
|
|
individual pre-launched User VMs and there is no Service VM needed.
|
|
* **Hybrid**: The physical resource are dedicated to pre-launched User
|
|
VMs and the Service VM provides resource emulation and sharing for
|
|
post-launched User VMs, all in the same system configuration.
|
|
|
|
User-Friendly VM names
|
|
Instead of using a UUID as the User VM identifier, we're now using a
|
|
user-friendly VM name.
|
|
|
|
Extend Use of CAT Cache Tuning to VMs
|
|
In previous releases, Cache Allocation Technology (vCAT) was available only
|
|
at the hypervisor level and with per-VM granularity. In this v2.7 release,
|
|
each VM with exclusive cache resources can partition them with
|
|
per-thread granularity and allocate cache resources to prioritized tasks.
|
|
|
|
Expand Passthrough Device Use Cases to Pre-Launched VMs
|
|
We now allow pre-launched VMs (in partitioned or hybrid scenarios) to use
|
|
graphics device passthrough for improved performance, a feature previously
|
|
available to only post-launched VMs.
|
|
|
|
Trusted Platform Module (TPM) 2.0 and its associated resource can also be
|
|
passthrough to post-launched VMs.
|
|
|
|
Upgrading to v2.7 From Previous Releases
|
|
****************************************
|
|
|
|
We highly recommended that you follow these instructions to
|
|
upgrade to v2.7 from previous ACRN releases.
|
|
|
|
Generate New Board XML
|
|
======================
|
|
|
|
Board XML files, generated by ACRN board inspector, contain board information
|
|
that is essential to build ACRN. Compared to previous versions, ACRN v2.7 adds
|
|
the following hardware information to board XMLs to support new features and
|
|
fixes.
|
|
|
|
- Always initialize ``hw_ignore`` when parsing ``DMAR``.
|
|
|
|
The new board XML can be generated using the ACRN board inspector in the same
|
|
way as ACRN v2.6. Refer to :ref:`acrn_config_workflow` for a complete list of
|
|
steps to deploy and run the tool.
|
|
|
|
Update Configuration Options
|
|
============================
|
|
|
|
In v2.7, the following elements are added to scenario XML files.
|
|
|
|
- :option:`vm.name` (This is a required element. Names must be unique, up to 15
|
|
characters long, and contain no space characters.)
|
|
- :option:`hv.CAPACITIES.MAX_VM_NUM` (Default value is ``8``)
|
|
- :option:`hv.FEATURES.RDT.VCAT_ENABLED` (Default value is ``n``)
|
|
|
|
The following elements were removed.
|
|
|
|
- ``KATA_VM`` VM type.
|
|
- ``hv.CAPACITIES.MAX_EFI_MMAP_ENTRIES``
|
|
|
|
In v2.7, the ``acrn-dm`` command line parameter ``--cpu_affinity`` is now mandatory
|
|
when launching a User VM. If the launch XML settings, used to generate the launch
|
|
scripts, do not specify a ``cpu_affinity`` value, the ACRN Configurator will look for
|
|
it from the scenario XML settings. Verify that your existing launch scripts
|
|
specify this ``--cpu_affinity`` parameter as ``acrn-dm`` will now complain if it's
|
|
missing.
|
|
|
|
Document Updates
|
|
****************
|
|
|
|
We've updated references throughout the documentation to use "Service VM" and
|
|
"User VM" instead of "SOS" and "UOS" respectively.
|
|
|
|
We've also made edits throughout the documentation to improve clarity,
|
|
formatting, and presentation:
|
|
|
|
.. rst-class:: rst-columns2
|
|
|
|
* :ref:`hv-device-passthrough`
|
|
* :ref:`vt-d-hld`
|
|
* :ref:`faq`
|
|
* :ref:`gsg`
|
|
* :ref:`overview_dev`
|
|
* :ref:`hypervisor-make-options`
|
|
* :ref:`acrn_configurator_tool`
|
|
* :ref:`acrn_on_qemu`
|
|
* :ref:`enable_ivshmem`
|
|
* :ref:`enable-s5`
|
|
* :ref:`using_grub`
|
|
* :ref:`using_partition_mode_on_nuc`
|
|
* :ref:`acrn-dm_parameters`
|
|
* :ref:`acrntrace`
|
|
|
|
Fixed Issues Details
|
|
********************
|
|
|
|
.. comment example item
|
|
- :acrn-issue:`5626` - [CFL][industry] Host Call Trace once detected
|
|
|
|
- :acrn-issue:`6610` - [ConfigTool]Remove the restriction that SERIAL_CONSOLE needs to be ttys0, ttys1, ttys2 or ttys3
|
|
- :acrn-issue:`6620` - [ConfigTool]pci devices' io-ports passthrough
|
|
|
|
Known Issues
|
|
************
|
|
|