mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-05-03 05:56:57 +00:00
Update description of passthrough device usecase additions, and improved description of Issue #6631 (Kata broken) Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
260 lines
12 KiB
ReStructuredText
260 lines
12 KiB
ReStructuredText
.. _release_notes_2.7:
|
|
|
|
ACRN v2.7 (Dec 2021)
|
|
####################
|
|
|
|
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 (CAT) was available only
|
|
at the hypervisor level and with per-pCPU 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
|
|
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 now be
|
|
passthrough to *post-launched* VMs, a feature previously available to
|
|
only pre-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``
|
|
- ``hv.MEMORY.HV_RAM_SIZE`` (Hypervisor RAM size is now computed by the linker)
|
|
|
|
As part of using consistent names for UOS and SOS, we also change configuration
|
|
option names or values using these obsolete terms:
|
|
|
|
- The :option:`vm.vm_type` option value ``SOS_VM`` is now ``SERVICE_VM``
|
|
- The :option:`vm.legacy_vuart.base` option value ``SOS_VM_COM1_BASE`` is now
|
|
``SERVICE_VM_COM1_BASE``, with the same change for COM2, COM3, and COM4 base
|
|
and for the :option:`vm.legacy_vuart.irq` option values.
|
|
|
|
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:`5112` - ACRN debug shell help output behavior, line length, and misspellings
|
|
- :acrn-issue:`5626` - [CFL][industry] Host Call Trace once detected
|
|
- :acrn-issue:`5692` - Update config option documentation in schema definition files
|
|
- :acrn-issue:`6012` - [Mainline][PTCM] [ConfigTool]Obsolete terms cleanup for SSRAM
|
|
- :acrn-issue:`6024` - [TGL][Master][IVSHMEM] Only one share memory device in SOS while enabled two from the scenario xml
|
|
- :acrn-issue:`6270` - [ADL-S][Industry][Yocto] WaaG boot up but no UI display with more than 1G memory
|
|
- :acrn-issue:`6284` - [v2.6] vulnerable coding style in hypervisor and DM
|
|
- :acrn-issue:`6340` - [EF]Invalid LPC entry prevents GOP driver from working properly in WaaG for DP3
|
|
- :acrn-issue:`6360` - ACRN Makefile missing dependencies
|
|
- :acrn-issue:`6366` - TPM pass-thru shall be able to support start method 6, not only support Start Method of 7
|
|
- :acrn-issue:`6387` - enable GVT-d for pre-launched linux guest
|
|
- :acrn-issue:`6405` - [ADL-S][Industry][Yocto] WaaG BSOD in startup when run reboot or create/destroy stability test.
|
|
- :acrn-issue:`6417` - ACRN ConfigTool improvement from DX view
|
|
- :acrn-issue:`6428` - [acrn-configuration-tool] Fail to generate launch script when disable CPU sharing
|
|
- :acrn-issue:`6431` - virtio_console use-after-free
|
|
- :acrn-issue:`6434` - HV panic when SOS VM boot 5.4 kernel
|
|
- :acrn-issue:`6442` - [EF]Post-launched VMs do not boot with "EFI Network" enabled
|
|
- :acrn-issue:`6461` - [config_tools] kernel load addr/entry addr should not be configurable for kernel type KERNEL_ELF
|
|
- :acrn-issue:`6473` - [HV]HV can't be used after dumpreg rtvm vcpu
|
|
- :acrn-issue:`6476` - [hypercube][TGL][ADL]pci_xhci_insert_event SEGV on read from NULL
|
|
- :acrn-issue:`6481` - ACRN on QEMU can't boot up with v2.6 branch
|
|
- :acrn-issue:`6482` - [ADL-S][RTVM]rtvm poweroff causes sos to crash
|
|
- :acrn-issue:`6494` - acrn_trace build failure with latest e2fsprogs v1.46.2 version
|
|
- :acrn-issue:`6502` - [ADL][HV][UC lock] SoS kernel panic when #GP for UC lock enabled
|
|
- :acrn-issue:`6508` - [HV]Refine pass-thru device PIO BAR handling
|
|
- :acrn-issue:`6518` - [hypercube][ADL]acrn-dm program crash during hypercube testing
|
|
- :acrn-issue:`6528` - [TGL][HV][hybrid_rt] dmidecode Fail on pre-launched RTVM
|
|
- :acrn-issue:`6530` - [ADL-S][EHL][Hybrid]Path of sos rootfs in hybrid.xml is wrong
|
|
- :acrn-issue:`6533` - [hypercube][tgl][ADL] mem leak while poweroff in guest
|
|
- :acrn-issue:`6542` - [hypercube][tgl][ADL] mem leak while poweroff in guest
|
|
- :acrn-issue:`6562` - [ADL-S][Config tool] fail to tpm_getcap -l
|
|
- :acrn-issue:`6565` - [acrn-configuration-tool] "modprobe pci_stub" should be executed before unbinding passthru devices
|
|
- :acrn-issue:`6572` - [ADL-S][Acrntrace]failed to run acrntrace test
|
|
- :acrn-issue:`6584` - HV:check vmx capability
|
|
- :acrn-issue:`6592` - [doc] failed to make hvdiffconfig
|
|
- :acrn-issue:`6610` - [config tool vUART] IRQ of vUART of pnp 8250 is not generated correctly
|
|
- :acrn-issue:`6620` - acrn-config: pass-thru device PIO BAR identical mapping
|
|
- :acrn-issue:`6663` - Current HV_RAM_SIZE calculation algorithm sometimes cause build failure
|
|
- :acrn-issue:`6674` - [TGL][HV][hybrid] (v2.7 only) during boot zephyr64.elf find HV error: "Unable to copy HPA 0x100000 to GPA 0x7fe00000 in VM0"
|
|
- :acrn-issue:`6677` - Service VM shall not have capability to access IOMMU
|
|
- :acrn-issue:`6704` - [ADL-S][Partitioned]Kernel panic when boot Pre-launched RTVM with 8 pci devices passthru
|
|
- :acrn-issue:`6709` - Issues for platform ICX-D HCC enabling
|
|
- :acrn-issue:`6719` - Board Inspector tool crashes if cpuid is not installed
|
|
- :acrn-issue:`6724` - (v2.7 only) Remove the GET_PLATFORM_INFO support in ACRN
|
|
- :acrn-issue:`6736` - Improved readability desirable for the Board Inspector tool
|
|
- :acrn-issue:`6743` - acrn-crashlog/acrnprobe compilation failure with OpenSSL 3.0
|
|
- :acrn-issue:`6752` - ACRN HV shows multiple PCIe devices with "out of mmio window" warnings - false alert
|
|
- :acrn-issue:`6755` - [icx-d lcc]CAT_capability enable RDT fail
|
|
- :acrn-issue:`6767` - [acrn-configuration-tool] Getting duplicate PT_SLOT value If generate launch script continuously through the UI
|
|
- :acrn-issue:`6769` - [v2.7] vulnerable coding style in hypervisor and DM
|
|
- :acrn-issue:`6778` - [ADL][SSRAM][Master]Error messages output during RTCM unit test
|
|
- :acrn-issue:`6780` - [ADL][SSRAM][Master]ACRN boot crash with SSRAM enabled
|
|
- :acrn-issue:`6799` - [REG][ADL-S][VxWorks] SOS force reboot while launching vxworks
|
|
- :acrn-issue:`6834` - [Acrn-hypervisor][Debug release]Failed to build hypervisor with hv_debug_release enable
|
|
- :acrn-issue:`6848` - [ADL][RTVM]ACPI error while launching rtvm
|
|
- :acrn-issue:`6851` - [DM] segfault on virtio_console_control_tx()
|
|
- :acrn-issue:`6877` - [DM][ASAN] UAF in mevent_handle()
|
|
- :acrn-issue:`6885` - adl-s-shared sos can't get in
|
|
- :acrn-issue:`6888` - [ADL-S]Yaag reboots too slowly
|
|
- :acrn-issue:`6899` - [ADL-S][shared] Core type error when launch RTVM use atom core.
|
|
- :acrn-issue:`6907` - [ADL-S][ICX-D][shared][Regression]Multi RT launch failed with V2.7_RC3 build.
|
|
- :acrn-issue:`6908` - [ADL-S][Multi_RT]Shutdown one RT and others will hang when launch multi RT.
|
|
- :acrn-issue:`6919` - [hypercube][ADL] mem leak while power off in guest (phase-II)
|
|
- :acrn-issue:`6931` - [ADL][CPUID] RTVM CPUID 0x2 EBX value is not equal to HV cpuid 0x2 EBX
|
|
|
|
Known Issues
|
|
************
|
|
|
|
- :acrn-issue:`6631` - [KATA] Kata support is broken in v2.7
|
|
- :acrn-issue:`6978` - [TGL] openstack failed with ACRN v2.7
|