ACRN v1.5 (Jan 2020)¶
We are pleased to announce the release of ACRN version 1.5.
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 the 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.5 GitHub release page) or use Git clone and checkout commands:
git clone https://github.com/projectacrn/acrn-hypervisor
cd acrn-hypervisor
git checkout v1.5
The project’s online technical documentation is also tagged to correspond with a specific release: generated v1.5 documents can be found at https://projectacrn.github.io/1.5/. Documentation for the latest (master) branch is found at https://projectacrn.github.io/latest/. ACRN v1.5 requires Clear Linux* OS version 32030.
Version 1.5 Major Features¶
What’s New in v1.5¶
Basic CPU sharing: Fairness Round-Robin CPU Scheduling has been added to support basic CPU sharing (the Service VM and WaaG share one CPU core).
8th Gen Intel® Core™ Processors (code name Whiskey Lake) are now supported and validated.
Overall stability and performance has been improved.
An offline configuration tool has been created to help developers port ACRN to different hardware boards.
Document Updates¶
Many new reference documents are available, including:
Supported Hardware (Addition of Whiskey Lake information)
Launch Windows as the Guest VM on ACRN (Update to use ACRNGT GOP to install Windows)
Fixed Issues Details¶
3630 - Clean up the code on drm/i915/gvt.
3723 - CODEOWNERS folder names are incorrect.
3777 - Tutorial “Using partition mode on UP2” no longer valid.
3779 - Modify the Make file.
3795 - fix a bug that tpr threshold is not updated
3830 - [KBLNUC][WaaG] bring back non-context register save/restore
3903 - Local variable ‘info’ maybe referenced before initializing in ‘vmsi_remap()’
3904 - remove registration of default port IO and MMIO handlers
3930 - [APL][acrn-configuration-tool][AaaG]Generate unnecessary runc_container code for apl-mrb/apl-up2 with Scenario:SDC + Launch Setting:sdc_launch_1uos_aaag
3931 - [APL][acrn-configuration-tool][LaaG]Generated Launch script is incorrect, UOS’s rootfs_img should be clearlinux.img|android.img for apl-mrb/apl-up2 with Scenario:SDC
3953 - Modify efi of default build.
3955 - [KBL][acrn-configuration-tool]’virtio-blk’ was generated in launch script of Preempt-RT, should remove it
3956 - [KBL][acrn-configuration-tool]’keep_gsi’ should set along with android vm
3960 - [Community][External]UP2 Setup - “ACRN HVLog: not running under acrn hypervisor!”
3968 - Modify efi of default build.
3972 - doc: no need to copy OVMF.fd to local folder while preparing the User VMs
3979 - [KBLNUC][WaaG][GVT]The boot uos script will display the sos information on the uos screen for about 2s.
3980 - [Community][External]invalid ovmf param ./OVMF.fd BOARD=nuc7i7dnb.
3984 - [Community][External]Fedora 30 as User OS.
3987 - No bounds specified for array platform_clos_array .
3993 - trampoline code in hypervisor potentially be accessible to service VM
4005 - [WHL][Function][WaaG]Fail to create WaaG image using ISO only on WHL
4007 - V1.3 E2E release binary failed to boot up on KBL NUC with 32G memory.
4010 - [Community][External]Booting in blind mode
4012 - Error formatting flag for hypcall_id
4020 - Refine print string format for ‘uint64_t’ type value in hypervisor
4043 - [WHL][Function][WaaG]windows guest can not get normal IP after passthru Ethernet
4045 - [WHL][Function][WaaG]Adding USB mediator in launch script, it takes a long time to start windows, about 13 minutes.
4049 - [SIT][ISD] [AUTO] only 2 can work in”-s n,passthru,02/00/0 ", other numbers rtvm can not launch
4061 - Some scripts are missing license and copyright header
4066 - [UP2][KBL]][acrn-configuration-tool] head file was not included in board.c
4073 - [APL-MRB][acrn-configuration-tool] alloc vuar1 irq when pttyS1 not exist only
4074 - [KBL][acrn-configuration-tool]: Cx desc parsing enhancement
4082 - [acrn-configuration-tool]bypass acpi_idle/acpi_cpufreq driver
4094 - Error parameter for intel_pstate in launch_hard_rt_vm.sh
4099 -[Community][External]Boot issue on non Apollo/Kaby lake.
4116 - [Community][External]How to set CPU Core UOS
4123 - [Community][External]Creating Ubuntu SOS not working - black screen
4125 - [Community][External]vm1 is running, can’t create twice!
4128 - [WHL][acrn-configuration-tool]WebUI can not select vuart 0&vuart 1 by default
4135 - [Community][External]Invalid guest vCPUs (0) Ubuntu as SOS.
4139 - [Community][External]mngr_client_new: Failed to accept from fd 38
4143 - [acrn-configuration-tool] bus of DRHD scope devices is parsed incorrectly
4163 - [acrn-configuration-tool] not support: -s n,virtio-input
4164 - [acrn-configuration-tool] not support: -s n,xhci,1-1:1-2:2-1:2-2
4165 -[WHL][acrn-configuration-tool]Configure epc_section is incorrect
4172 - [acrn-configuration-tool] not support: -s n,virtio-blk, (/root/part.img—dd if=/dev/zero of=/root/part.img bs=1M count=10 all/part of img, one u-disk device, u-disk as rootfs and the n is special)
4173 - [acrn-configuration-tool]acrn-config tool not support parse default pci mmcfg base
4175 - acrntrace fixes and improvement
4185 - [acrn-configuration-tool] not support: -s n,virtio-net, (not set,error net, set 1 net, set multi-net, vhost net)
4211 - [kbl nuc] acrn failed to boot when generate hypervisor config source from config app with HT enabled in BIOS
4212 - [KBL][acrn-configuration-tool][WaaG+RTVM]Need support pm_channel&pm_by_vuart setting for Board:nuc7i7dnb+WaaG&RTVM
4227 - [ISD][Stability][WaaG][Regression] “Passmark8.0-Graphics3D-DirectX9Complex” test failed on WaaG due to driver error
4228 - [acrn-configuration-tool] cannot boot hypervisor on customer board with KBL 7300U
4229 - Add range check in Kconfig.
4230 - Remove MAX_VCPUS_PER_VM in Kconfig
4232 - Set default KATA_VM_NUM to 1 for SDC
4247 - [acrn-configuration-tool] Generate Scenario for VM0 communities with VM1 is incorrect.
4249 - [acrn-configuration-tool]Generated Launchscript but WebUI prompt error msg after we just select passthru-devices:audio_codec
4255 - [acrn-configuration-tool][nuc7i7dnb][sdc]uos has no ip address
4260 - [Community][External]webcam switch between 2 UOS.
4286 - [acrn-configuration-tool] Remove VM1.vcpu_affinity.pcuid=3 for VM1 in sdc scenario
Known Issues¶
Change Log¶
These commits have been added to the acrn-hypervisor repo since the v1.4 release in Nov 2019 (click on the CommitID link to view details):
ee74737f - HV: search rsdp from e820 acpi reclaim region
578a7ab4 - acrn-config: remove pcpu3 from vm1 in SDC scenario
7d27c4bc - hv: vpci: restore PCI BARs when doing AF FLR
bb06f6f9 - hv: vpci: restore PCI BARs when doing PCIe FLR
92ed8601 - hv: hotfix for xsave
067d8536 - OVMF release v1.5
9b71c5cd - acrn-config: add ‘logger_setting’ into launch script
be6c6851 - acrn-config: refine mount device for virtio-blk
686d7763 - HV: Remove INIT signal notification related code
d7eb14c5 - HV: Use NMI to replace INIT signal for lapic-pt VMs S5
29b7aff5 - HV: Use NMI-window exiting to address req missing issue
d26d8bec - HV: Don’t make NMI injection req when notifying vCPU
24c2c0ec - HV: Use NMI to kick lapic-pt vCPU’s thread
23422713 - acrn-config: add tap_ prefix for virtio-net
6383394b - acrn-config: enable log_setting in all vm
0b44d64d - acrn-config: check pass-through device for audio/audio_codec
75ca1694 - acrn-config: correct vuart1 setting in scenario config
d52b45c1 - hv:fix crash issue when handling HC_NOTIFY_REQUEST_FINISH
78139b95 - HV: kconfig: add range check for memory setting
24994703 - HV: Kconfig: set default Kata num to 1 in SDC
9d5e72e9 - hv: add lock for ept add/modify/del
98b3dd94 - acrn-config: set HV_RAM_START above 256M for new board
46463900 - acrn-config: add ‘ramdisk_mod’ item tag for tgl-rvp
13d6b69d - acrn-config: set DRHDx_IGNORE while no DEV_SCOPE in DRHD
12a9bc29 - acrn-config: add CONFIG_SERIAL_x for new board
d699347e - acrn-config: change gvt_args from selectbox to editbox
05682b2b - hv:bugfix in write protect page hypercall
1636ac04 - acrn-config: Add non-contiguous HPA to currently supported hardware.
2777f230 - HV: Add helper function send_single_nmi
525d4d3c - HV: Install a NMI handler in acrn IDT
fb346a6c - HV: refine excp/external_interrupt_save_frame and excp_rsvd
7f964654 - hv:remove need_cleanup flag in create_vm
67ec1b77 - HV: expose port 0x64 read for SOS VM
a44c1c90 - HV: Kconfig: remove MAX_VCPUS_PER_VM in Kconfig
0ba84348 - acrn-config: rename CONFIG_MAX_PCPU_NUM to MAX_PCPU_NUM
ea3476d2 - HV: rename CONFIG_MAX_PCPU_NUM to MAX_PCPU_NUM
67b416d5 - acrn-config: hide non-legacy serial port as SOS console
deb5ed1f - acrn-config: unify get_vuart_info_id api in config tool
212d030b - acrn-config: add ‘poweroff_channel’ support for launch config
7446d41f - acrn-config: modify ‘poweroff_channel’ info in launch xmls
0f19f878 - acrn-config: add ‘virtio-console’ info in launch xmls
bad3c53c - acrn-config: add ‘virtio-console’ mediator support for launch config
b6bffd01 - hv:remove 2 unused variables in vm_arch structure
422a051c - Makefile: Build Release version by default
e95b316d - hv: vtd: fix improper use of DMAR_GCMD_REG
68ea2cc6 - acrn-config: Fix ve820 table generation when guest memory size is >512MB
f2bf3d3e - dm:gvt:update bus0 memlimit32 value
acb5affd - doc:update acrn-shell.rst
413f098b - Doc: Add libnuma dependency for acrntrace
a90f4a0a - Makefile: print config summary at the end
9729fe07 - acrn-config: support non-contiguous HPA for hybrid scenario
c8a4ca6c - HV: Extend non-contiguous HPA for hybrid scenario
b32ae229 - hv: sched: use hypervisor configuration to choose scheduler
6a144e6e - hv: sched: add yield support
6554437c - hv: sched_iorr: add some interfaces implementation of sched_iorr
b39630a8 - hv: sched_iorr: add tick handler and runqueue operations
f44aa4e4 - hv: sched_iorr: add init functions of sched_iorr
ed400863 - hv: sched_iorr: Add IO sensitive Round-robin scheduler
3c8d465a - acrnboot: correct the calculation of the end boundary of _DYNAMIC region
0bf03b41 - acrntrace: Set FLAG_CLEAR_BUF by default
9e9e1f61 - acrntrace: Add opt to specify the cpus where we should capture the data
366f4be4 - acrntrace: Use correct format for total run time
1e192f05 - acrntrace: break when finding the matching key
9655b9de - acrntrace: Fix the incorrect total vmexit cnt issue
1115c0c6 - acrn-config: UI supports to edit multiple virtio input devices.
557e7f19 - Makefile: add gcc flags to prevent some optimization
c2c05a29 - hv: vlapic: kick targeted vCPU off if interrupt trigger mode has changed
ed65ae61 - HV: Kconfig changes to support server platform.
706dbc0e - acrn-config: support non-contiguous HPA for pre-launched VM
6e8b4136 - HV: Add support to assign non-contiguous HPA regions for pre-launched VM
9b44e57d - acrn-config: Fix target xml generation issue when no P-state scaling driver is present
03a1b2a7 - hypervisor: handle reboot from non-privileged pre-launched guests
26801210 - Makefile: fix make failure for logical_partition or hybrid scenario
65a55320 - acrn-config: add xml to support TGL RVP board
1fe1afd4 - acrn-config: Add ramdisk tag parsing support
2b9fa856 - acrn-config: Add ramdisk tag to supported board/scenario xmls
da3ba68c - hv: remove corner case in ptirq_prepare_msix_remap
c05d9f80 - hv: vmsix: refine vmsix remap
5f5ba1d6 - hv: vmsi: refine write_vmsi_cfg implementation
2f642002 - dm:gvt:enable gvt bar registration
89908bf5 - dm:gvt:update gvt bars before other pci devices write bar address
f27d4754 - dm:gvt:adjust pci bar region with reserved bar regions
1ac0b57c - dm:gvt:reserve gvt bar regions in ACRN-DM
72644ac2 - hv: do not sleep a non-RUNNING vcpu
d624eb5e - hv: io: do schedule in IO completion polling loop
d48da2af - hv: bugfix for debug commands with smp_call
47139bd7 - hv: print current sched_object in acrn logmsg
5eb80402 - acrn-config: update UI to support virtio devices
5309e415 - acrn-config: modify the description of usb xhci
7838b537 - acrn-config: add virtio-net mediator support for launch config
25b2a26e - acrn-config: add ‘virtio-network’ info in launch xmls
8464419a - acrn-config: add virtio-block support for launch config
40140281 - acrn-config: add rootfs_dev/rootfs_img with virtio-blk item
aedd2c70 - acrntrace: parse leaf and subleaf of cpuid
aae974b4 - HV: trace leaf and subleaf of cpuid
77039f29 - acrn-config: Extend ve820 generation script for sizes gt 512 MB
450d2cf2 - hv: trap RDPMC instruction execution from any guest
3d412266 - hv: ept: build 4KB page mapping in EPT for RTVM for MCE on PSC
0570993b - hv: config: add an option to disable mce on psc workaround
192859ee - hv: ept: apply MCE on page size change mitigation conditionally
3cb32bb6 - hv: make init_vmcs as a event of VCPU
15da33d8 - HV: parse default pci mmcfg base
80a7281f - acrn-config: add MMCFG_BASE_INFO item in board config
0e273e99 - acrn-config: get default pci mmcfg base address
0d998d6a - hv: sync physical and virtual TSC_DEADLINE when msr interception enabled/disabled
97916364 - hv: fix virtual TSC_DEADLINE msr read/write issues
e6141298 - hv: support xsave in context switch
8ba203a1 - hv: change xsave init function name
12a3ec8a - acrn-config: remove redundant get_leaf_tag_map in launch config lib
2c2ccfc5 - acrn-config: support OVMF vbootloader only
38a647c8 - acrn-config: correct epc_section base/size value
91330eaa - acrn-config: add usb xhci mediator support for
420b65a6 - acrn-config: add ‘usb_xhci’ info to launch xmls
bc9b6d1b - acrn-config: add virtio-input support for launch
9fc32043 - acrn-config: add ‘virtio-input’ info in launch xmls
71c51a8f - acrn-config: refinement for library config
1e233364 - acrn-config: skip the DRHDn_IGNORE when no device scope
40929efe - acrn-config: walk secondary PCI Bus for target board
5e923420 - acrn-config: refinement for DmarDevScope struct
f6e6ec4c - acrn-config: modify SDC config xml to support kata vm config in webUI
bb2218ef - acrn-config: add UI to add or remove Kata VM for sdc scenario
31d023e8 - acrn-config: launch refinement on vcpu affinity and uos image
d581473c - acrn-config: refine vcpu affinity/number for SDC scenario
d44440f7 - acrn-config: print warning if MMIO BAR size above 4G
dc2d6b66 - acrn-config: modify the git commit message for gen_patch
2c4ebdc6 - hv: vmsi: name vmsi with verb-object style
6ee076f7 - hv: assign: rename ptirq_msix_remap to ptirq_prepare_msix_remap
51a43dab - hv: add Kconfig parameter to define the Service VM EFI bootloader
058b03c3 - dm: fix memory free issue for xhci
422330d4 - HV: reimplement PCI device discovery
94a456ae - HV: refactor device_to_dmaru
34c75a0b - doc: Add multiple PCI segments as known limitation for hypervisor
c5a87d41 - HV: Cleanup PCI segment usage from VT-d interfaces
810169ad - HV: initialize IOMMU before PCI device discovery
ea131eea - HV: add DRHD index to pci_pdev
0b7bcd64 - HV: extra methods for extracting header fields
9af4a624 - doc: edit using_ubuntu_as_sos.rst adjust to v1.4
32b8d99f - hv:panic if there is no memory map in multiboot info
bd0dbd27 - hv:add dump_guest_mem
215bb6ca - hv:refine dump_host_mem
4c8dde1b - hv:remove show_guest_call_trace
24fa14bc - Revert “Revert “OVMF release v1.4””
5b4d676b - version: 1.5-unstable