ACRN v1.6.1 (May 2020)¶
We are pleased to announce the release of ACRN version 1.6.1.
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 What Is ACRN 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 v1.6.1 GitHub release page) or use Git clone and checkout commands:
git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v1.6.1
The project’s online technical documentation is also tagged to correspond with a specific release: generated v1.6.1 documents can be found at https://projectacrn.github.io/1.6.1/. Documentation for the latest (master) branch is found at https://projectacrn.github.io/latest/. ACRN v1.6.1 requires Clear Linux OS version 33050.
Version 1.6.1 Major Features¶
What’s New in v1.6.1¶
ACRN ensures libvirt supports VM orchestration based on OpenStack
libvirt is an open-source API, daemon, and management tool as a layer to decouple orchestrators and hypervisors. By adding a “ACRN driver”, libvirt can support ACRN. Please refer to ACRN-libvirt.
Supports the libvirt-based orchestrator to configure a guest domain’s CPU configuration during VM creation.
Supports dynamic configuration for vCPU affinity via acrn-dm
ACRN configuration tool updated based on VM orchestration support.
Enable CPU sharing and GVT-d Graphics virtualization by default.
Supported platforms with multiple IO-APICs
Supported VT-d Posted Interrupts
Document Updates¶
Many new and updated reference documents are available, including:
Run Clear Linux as the Service VM
We recommend that all developers upgrade to ACRN release v1.6.1.
Fixed Issues Details¶
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
3291 - Update documentation and helper scripts to use newer swupd commands.
3697 - Secure timer check failed in trusty which would cause unlock failure after resume from S3
3715 - Add support for multiple RDT resource allocation and fix L3 CAT config overwrite by L2
3758 - Documentation: add a tutorial (or information) on how to change the Linux kernel parameters for User VMs
3770 - Warning when building the ACRN hypervisor SDC (defined at arch/x86/Kconfig:7) set more than once
3773 - [Community][Internal] suspicious logic in vhost.c.
3918 - Change active_hp_work position for code cleaning and add a module parameter to disable hp work.
3939 - [Community][Internal]zero-copy non-functional with vhost.
3946 - [Community][External]Cannot boot VxWorks as UOS on KabyLake.
4017 - hv: rename vuart operations
4072 - [Community-dev][External]hv: add printf “not support the value of vuart index parameter” in function vuart_register_io_handler.
4191 - [Community-dev][External]acrnboot: the end address of _DYNAME region is not calculated correct
4200 - In APCIv advanced mode, a target vCPU (in not-root mode) may get wrong TMR or EOI exit bitmap when another vPCU try to send an interrupt to it if this interrupt trigger mode has changed.
4250 - [Community-dev][external]acrnboot: parse hv cmdline incorrectly when containing any trailing white-spaces
4283 - [Community-dev][External]devicemodel: refactor CMD_OPT_LAPIC_PT case branch
4322 - [ACRN_V1.5][Document] Build cmd error in “Build the ACRN User VM PREEMPT_RT Kernel in Docker” document
4569 - [acrn-configuration-tool]find 64-bit mmio to generate HI_MMIO_START/HI_MMIO_END
4620 - [WHL][Function][WaaG] WaaG will fail to reboot with 2 cores.
4625 - [WHL][ConfigurationTool][WAAG] Need to support passthrough GVT to WaaG by default
4634 - [acrn-configuration-tool]move new_board_config to board_def config and support to parse it
4636 - compile crashlog error with latest clearlinux
4641 - [WHL][acrn-configuration-tool]error “board/scenario xml not match” for created scenario setting
4664 - Wake up vCPU for interrupts from vPIC
4666 - Fix offline tool to generate info in pci_dev file for logical partition scenario
4688 - [WHL][acrn-configuration-tool] RELEASE=n does not take effect while using xml to make hypervisor
4719 - [WHL][Function][LaaG]Garbage display when shutdown LaaG with CPU sharing GVT-D
4752 - [WHL][acrn-configuration-tool] console loglevel is not changed if building hypervisor by xml
4753 - [KBLNUCi7][libvirt][HV] in acrn.efi which enable 4vcpu for laag, with libvirtd.service enabled, SOS kernel panic and reboot
Known Issues¶
4046 - [WHL][Function][WaaG] Error info popoup when run 3DMARK11 on Waag
4047 - [WHL][Function][WaaG] passthru usb, Windows will hang when reboot it
4313 - [WHL][VxWorks] Failed to ping when VxWorks passthru network
4557 - [WHL][Performance][WaaG] Failed to run 3D directX9 during Passmark9.0 performance test with 7212 gfx driver
4558 - [WHL][Performance][WaaG] WaaG reboot automatically during run 3D directX12 with 7212 gfx driver
Change Log¶
These commits have been added to the acrn-hypervisor repo since the v1.6 release in Mar 2020 (click the CommitID link to see details):
5632dead - doc: update release_1.6 docs with master docs
ac5facd2 - doc: update CPU affinity related descriptions
14366380 - acrn-config: fix log macros for board defconfig
627dd1c8 - acrn-config: add clearlinux UOS for launch config xmls
67728c67 - ACRN/DM: Initialize the igd_lpc bridge to ISA_BRIDGE to make Linux guest happy
71479793 - acrn-config: assign PCPU0~3 to post vm by default
c390ab01 - hv: don’t overwrite the statically configured vm_configs[] in hypercall
cbaf3e78 - acrn-dm: fix corner cases in acrn_parse_cpu_affinity()
d661d444 - acrn-config: refine slot assignment for launch config
eb47f8f5 - acrn-config: refinement for CPU affinity check
e8d00c2c - local_gpa2hpa: INVALID_GPA also means failure of address conversion
440385d5 - ACRN/DM: Reset the passthrough device to fix garbage display issue
77b7721f - DM USB: xHCI: Drop commands if the slot is disabled
16e33b30 - acrn-config: add vm type sanity check
11959829 - acrn-config: refinement for pci_devs in scenario config xmls
fb5c35d1 - acrn-config: parse cpu_affinity from launch config xmls
8cbc6199 - acrn-config: add cpu_affinity for launch config xmls
b9865fdf - acrn-dm: change command option name from “pcpu_list” to “cpu_affinity”
a6ea34bc - hv: Enable accessed bit in EPT paging
c72d1936 - acrn-config: update cpu_affinity in scenrio configuration xml files
cce7389d - acrn-config: change names for vcpu_affinity[] related items
45cc2c5e - acrn-dm: implement cpu_affinity command line argument
0805eb9a - hv: dynamically configure CPU affinity through hypercall
46753944 - hv: replace vcpu_affinity array with cpu_affinity_bitmap
40ae32f1 - hv: provide vm_config information in get_platform_info hypercall
42c43993 - hv: some coding refinement in hypercall.c
c9fa9c73 - hv: move error message logging into gpa copy APIs
b9a7cf3b - acrn-config: assign VM IDs for dynamic scenario and launch setting
bcfbc13f - acrn-config: add attributes for scenario and launch setting
3799b95b - acrn-config: add max VM count check when generating scenario XML file
1d4b7ab8 - acrn-config: refine template xmls
ea0c62da - acrn-config: add 2 UUIDs for post-launched Standard VM
093b1c48 - acrn-config: add SOS_IDLE for SOS cmdline
88bed66e - HV: refine usage of idle=halt in sos cmdline
510a0931 - Makefile: do not override RELEASE when build with XML
7410f9d0 - hv: vtd: fix potential dead loop if qi request timeout
bf917ae2 - acrn-config: Generate info in pci_dev file for Pre-Launched VMs
b99de16f - hv: Wake up vCPU for interrupts from vPIC
75b59165 - acrn-config: remove sdc2 config xmls
08bcf4be - acrn-config: refine the HV_RAM_SIZE/HV_RAM_START for board_defconfig
d7299604 - acrn-config: set HV_RAM_SIZE/HV_RAM_START to blank from config xmls
5e53ac03 - acrn-config: refine template xmls
718e7567 - acrn-config: modify epc_section to configurable=”0”
49b3939e - acrn-config: fix syntax for new logical partition xmls
fc3b4ed6 - acrn-config: refine GPU vpid format for launch script
d17076b4 - HV: remove sdc2 scenario support
7f1c4422 - HV: support up to 7 post launched VMs for industry scenario
9a23bedd - crashlog: fix build issue under latest clearlinux
d742be2c - HV: Kconfig: enable CPU sharing by default
4c7ffeea - acrn-config: add template xmls for dynamic config
0445c5f8 - acrn-config: dynamic configuration for scenario setting and launch setting
a12b746a - acrn-config: remove hard code UUID from config xmls
86e467f6 - acrn-config: Use vm_type to instead load_type/uuid/severity in config
85630258 - acrn-config: support to parse pci_devs for pre launched vm
e0c75652 - acrn-config: add pass-thru PCI device for pre launched vm xmls
19032398 - acrn-config: remove ‘scenario’ dependency from acrn config tool
cc5c6421 - Makefile: disable KCONFIG_FILE when build from xml
7d173917 - Kconfig: remove MAX_KATA_VM_NUM
4388099c - Kconfig: change scenario variable type to string
28bffa77 - HV: merge sos_pci_dev config to sos macro
d9c302ba - HV: init vm uuid and severity in macro
b08dbd41 - HV: fix wrong gpa start of hpa2 in ve820.c
60178a9a - hv: maintain a per-pCPU array of vCPUs and handle posted interrupt IRQs
a07c3da3 - hv: define posted interrupt IRQs/vectors
f5f307e9 - hv: enable VT-d PI for ptdev if intr_src->pid_addr is non-zero
c9dd310e - hv: check if the IRQ is intended for a single destination vCPU
198b2576 - hv: add function to check if using posted interrupt is possible for vm
1bc76991 - hv: extend union dmar_ir_entry to support VT-d posted interrupts
8be6c878 - hv: pass pointer to functions
cc5bc34a - hv: extend struct pi_desc to support VT-d posted interrupts
b7a126cd - hv: move pi_desc related code from vlapic.h/vlapic.c to vmx.h/vmx.c/vcpu.h
8e2efd6e - hv: rename vlapic_pir_desc to pi_desc
233577e4 - acrn-config: enable hv config for scenarion setting UI
c5cd7cae - acrn-config: add hv configurations to scenario config xmls
4a98f533 - acrn-config: add support to parse board defconfig from configurations
d0beb7e9 - acrn-config: support passthroug GVT for WaaG by default
1bf3163d - hv: Hypervisor access to PCI devices with 64-bit MMIO BARs
910d93ba - hv: Add HI_MMIO_START and HI_MMIO_END macros to board files
5e8fd758 - acrn-config: round HI_MMIO_START/HI_MMIO_END to the closest 1G
b9229348 - hv: fix for waag 2 core reboot issue
45b65b34 - hv: add lock for ept add/modify/del
bbdf0199 - hv: vpci: refine comment for pci_vdev_update_vbar_base
dad7fd80 - hv: Fix issues with the patch to reserve EPT 4K pages after boot
4bdcd33f - hv: Reserve space for VMs’ EPT 4k pages after boot
963b8cb9 - hv: Server platforms can have more than 8 IO-APICs
4626c915 - hv: vioapic init for SOS VM on platforms with multiple IO-APICs
f3cf9365 - hv: Handle holes in GSI i.e. Global System Interrupt for multiple IO-APICs
ec869214 - hv: Introduce Global System Interrupt (GSI) into INTx Remapping
b0997e76 - hv: Pass address of vioapic struct to register_mmio_emulation_handler
9e21c5bd - hv: Move error checking for hypercall parameters out of assign module
37eb369f - hv: Use ptirq_lookup_entry_by_sid to lookup virtual source id in IOAPIC irq entries
0c9628f6 - acrn-config: remove the same parameters and functions from launch_cfg_lib
7d827c4d - acrn-config: remove the same parameters and functions from scenario_cfg_lib
8e3ede1a - acrn-config: remove the same parameters and functions from board_cfg_lib
df4a395c - acrn-config: expends parameters and functions to common lib
6bbc5711 - acrn-config: Fixes for BAR remapping logic
889c0fa4 - acrn-config: update IOMEM_INFO of tgl-rvp board
bce6a3c4 - Makefile: support make with external configurations
3774244d - Makefile: parameters check for board and scenario
82e93b77 - Makefile: make hypervisor from specified Kconfig
f8abeb09 - hv: config: enable RDT for apl-up2 by default
14e7f7a8 - acrn-config: enable CAT for industry scenario on APL-UP2 by default
02fea0f2 - acrn-config: support generation of per vcpu clos configuraton
76943866 - HV: CAT: support cache allocation for each vcpu
d18fd5f8 - acrn-config: find 64-bit mmio for HI_MMIO_START/HI_MMIO_END
d9d50461 - acrn-config: update IOMEM_INFO of native board config xml
e7726944 - acrn-config: dump iomem info from /proc/iomem
8e7b80fc - acrn-config: Limit check on Pre-Launched VM RAM size
aa6bb9e2 - acrn-config: support ‘–out’ option for board/scenario/launch config
05e3ea5f - acrn-config: correct passthru ‘audio’ device for nuc6cayh
c980b360 - acrn-config: minor fix for generating CONFIG_PCI_BDF
6f8a7ba5 - acrn-config: add some configs in board defconfig
2eb8e0f7 - acrn-config: remove git check and avoid to generate patch for config files
48fdeb25 - acrn-config: one button to generate config file
ab879407 - acrn-config: create temporary scenario file folder if it doesn’t exist