xref: /cloud-hypervisor/release-notes.md (revision b132cd2145aad9c4fd2adb34c0133afea3d1f0fc)
1*b132cd21SRob Bradford- [v25.0](#v250)
2*b132cd21SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
3*b132cd21SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
4*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
5*b132cd21SRob Bradford    - [Removals](#removals)
6*b132cd21SRob Bradford    - [Contributors](#contributors)
70150de55SSebastien Boeuf- [v24.0](#v240)
80150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
90150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
100150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
110150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
12*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
130150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
140150de55SSebastien Boeuf    - [Deprecations](#deprecations)
150150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
16*b132cd21SRob Bradford    - [Contributors](#contributors-1)
170150de55SSebastien Boeuf- [v23.1](#v231)
180c9c56f5SRob Bradford- [v23.0](#v230)
190c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
200c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
210c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
220c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
23*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
240150de55SSebastien Boeuf    - [Deprecations](#deprecations-1)
25*b132cd21SRob Bradford    - [Contributors](#contributors-2)
260c9c56f5SRob Bradford- [v22.1](#v221)
276aa10938SRob Bradford- [v22.0](#v220)
286aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
296aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
306aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
316aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
326aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
336aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
340c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
356aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
36*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
37*b132cd21SRob Bradford    - [Contributors](#contributors-3)
3895ca7997SRob Bradford- [v21.0](#v210)
3995ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
4095ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
41*b132cd21SRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-4)
42*b132cd21SRob Bradford    - [Contributors](#contributors-4)
4395ca7997SRob Bradford- [v20.2](#v202)
4495ca7997SRob Bradford- [v20.1](#v201)
457fc0776aSSebastien Boeuf- [v20.0](#v200)
467fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
477fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
487fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
497fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
507fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
51*b132cd21SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-5)
52*b132cd21SRob Bradford    - [Contributors](#contributors-5)
53d00eb4aaSRob Bradford- [v19.0](#v190)
54d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
55d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
56d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
57d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
58d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
59d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
60*b132cd21SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-6)
61*b132cd21SRob Bradford    - [Contributors](#contributors-6)
622c4f8d22SRob Bradford- [v18.0](#v180)
632c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
642c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
652c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
662c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
672c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
682c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
692c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
702c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
71*b132cd21SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-7)
72*b132cd21SRob Bradford    - [Contributors](#contributors-7)
73e6db5999SRob Bradford- [v17.0](#v170)
74e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
75e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
76e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
77e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
78e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
79*b132cd21SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-8)
80*b132cd21SRob Bradford    - [Contributors](#contributors-8)
815ed8e01fSRob Bradford- [v16.0](#v160)
825ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
835ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
845ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
85*b132cd21SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-9)
865ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
87*b132cd21SRob Bradford    - [Contributors](#contributors-9)
8830a01277SRob Bradford- [v15.0](#v150)
8930a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
9030a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
9130a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
9230a01277SRob Bradford    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
9330a01277SRob Bradford    - [Bug fixes](#bug-fixes)
940150de55SSebastien Boeuf    - [Deprecations](#deprecations-2)
95*b132cd21SRob Bradford    - [Contributors](#contributors-10)
9630a01277SRob Bradford- [v0.14.1](#v0141)
9740c63dcfSRob Bradford- [v0.14.0](#v0140)
9840c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
9940c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
10040c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
10140c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
10240c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
10340c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
1040150de55SSebastien Boeuf    - [Deprecations](#deprecations-3)
105*b132cd21SRob Bradford    - [Contributors](#contributors-11)
106f58b6f84SRob Bradford- [v0.13.0](#v0130)
107f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
10840c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
109f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
110f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
111f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
112f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
113*b132cd21SRob Bradford    - [Contributors](#contributors-12)
114d42b5084SRob Bradford- [v0.12.0](#v0120)
115d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
116d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
117d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
118d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
119*b132cd21SRob Bradford    - [Contributors](#contributors-13)
1207dcd3affSRob Bradford- [v0.11.0](#v0110)
1217dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1227dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1237dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
124d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1257dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1267dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1277dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1287dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
1297dcd3affSRob Bradford    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1307dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
131*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
132*b132cd21SRob Bradford    - [Contributors](#contributors-14)
133198bd551SRob Bradford- [v0.10.0](#v0100)
134198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
135198bd551SRob Bradford    - [Memory Zones](#memory-zones)
136198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
137198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
138*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
139*b132cd21SRob Bradford    - [Contributors](#contributors-15)
140d714cf81SRob Bradford- [v0.9.0](#v090)
141d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
142d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
143d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
144d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
145d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
146d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
147d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
148d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
149d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
150d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
151198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
152*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
153*b132cd21SRob Bradford    - [Contributors](#contributors-16)
154d714cf81SRob Bradford- [v0.8.0](#v080)
155d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
156d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
157d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
158d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
159d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
160*b132cd21SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-13)
161d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
162*b132cd21SRob Bradford    - [Contributors](#contributors-17)
16396be8229SRob Bradford- [v0.7.0](#v070)
16496be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
16596be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
16696be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
16796be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
16896be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
16996be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
17096be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
17152b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
172*b132cd21SRob Bradford    - [Contributors](#contributors-18)
17303cb26ccSSamuel Ortiz- [v0.6.0](#v060)
17403cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
17503cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
17603cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
17703cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
17803cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
179*b132cd21SRob Bradford    - [Contributors](#contributors-19)
18094f2fc33SRob Bradford- [v0.5.1](#v051)
1812f395e60SSamuel Ortiz- [v0.5.0](#v050)
18294f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
18394f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
18494f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
18594f2fc33SRob Bradford    - [Development Tools](#development-tools)
18694f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
187*b132cd21SRob Bradford    - [Contributors](#contributors-20)
188cec884e8SSamuel Ortiz- [v0.4.0](#v040)
18994f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
19094f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
19194f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
19294f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
19394f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
19494f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
19594f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
196*b132cd21SRob Bradford    - [Contributors](#contributors-21)
1978e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
19894f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
19994f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
20094f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
20194f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
20294f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
20394f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
20494f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
20594f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2067688e6e2SSamuel Ortiz- [v0.2.0](#v020)
20794f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
20894f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
20994f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
21094f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
21194f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
21294f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2137688e6e2SSamuel Ortiz- [v0.1.0](#v010)
21494f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
21594f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
21694f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
21794f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
21894f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
21994f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
22094f2fc33SRob Bradford    - [Unit testing](#unit-testing)
22194f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
22294f2fc33SRob Bradford
223*b132cd21SRob Bradford# v25.0
224*b132cd21SRob Bradford
225*b132cd21SRob BradfordThis release has been tracked through the [v25.0
226*b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
227*b132cd21SRob Bradford
228*b132cd21SRob Bradford### `ch-remote` Improvements
229*b132cd21SRob Bradford
230*b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
231*b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
232*b132cd21SRob Bradford
233*b132cd21SRob Bradford### VM "Coredump" Support
234*b132cd21SRob Bradford
235*b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
236*b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
237*b132cd21SRob Bradford
238*b132cd21SRob Bradford### Notable Bug Fixes
239*b132cd21SRob Bradford
240*b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
241*b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
242*b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
243*b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
244*b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
245*b132cd21SRob Bradford  5.16 (#4156)
246*b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
247*b132cd21SRob Bradford  Linux guest
248*b132cd21SRob Bradford
249*b132cd21SRob Bradford### Removals
250*b132cd21SRob Bradford
251*b132cd21SRob BradfordThe following functionality has been removed:
252*b132cd21SRob Bradford
253*b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
254*b132cd21SRob Bradford  (#3968)
255*b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
256*b132cd21SRob Bradford
257*b132cd21SRob Bradford### Contributors
258*b132cd21SRob Bradford
259*b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
260*b132cd21SRob Bradford
261*b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
262*b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
263*b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
264*b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
265*b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
266*b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
267*b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
268*b132cd21SRob Bradford
2690150de55SSebastien Boeuf# v24.0
2700150de55SSebastien Boeuf
2710150de55SSebastien BoeufThis release has been tracked through the [v24.0
2720150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
2730150de55SSebastien Boeuf
2740150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
2750150de55SSebastien Boeuf
2760150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
2770150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
2780150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
2790150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
2800150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
2810150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
2820150de55SSebastien Boeuf
2830150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
2840150de55SSebastien Boeuf
2850150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
2860150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
2870150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
2880150de55SSebastien Boeuf
2890150de55SSebastien Boeuf### Sparse Mmap support
2900150de55SSebastien Boeuf
2910150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
2920150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
2930150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
2940150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
2950150de55SSebastien Boeufimpacts the performance related to this device.
2960150de55SSebastien Boeuf
2970150de55SSebastien Boeuf### Expose Platform Serial Number
2980150de55SSebastien Boeuf
2990150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
3000150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
3010150de55SSebastien Boeufguest through the SMBIOS.
3020150de55SSebastien Boeuf
3030150de55SSebastien Boeuf### Notable Bug Fixes
3040150de55SSebastien Boeuf
3050150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
3060150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
3070150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
3080150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
3090150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
3100150de55SSebastien Boeuf
3110150de55SSebastien Boeuf### Notable Improvements
3120150de55SSebastien Boeuf
3130150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
3140150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
3150150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
3160150de55SSebastien Boeuf
3170150de55SSebastien Boeuf### Deprecations
3180150de55SSebastien Boeuf
3190150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
3200150de55SSebastien Boeufplan to use alternatives
3210150de55SSebastien Boeuf
3220150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
3230150de55SSebastien Boeuf  (#3968)
3240150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
3250150de55SSebastien Boeuf
3260150de55SSebastien Boeuf### New on the Website
3270150de55SSebastien Boeuf
3280150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
3290150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
3300150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
3310150de55SSebastien Boeuf
3320150de55SSebastien Boeuf### Contributors
3330150de55SSebastien Boeuf
3340150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
3350150de55SSebastien Boeuf
3360150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
3370150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
3380150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
3390150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
3400150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
3410150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
3420150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
3430150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
3440150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
3450150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
3460150de55SSebastien Boeuf
3470150de55SSebastien Boeuf# v23.1
3480150de55SSebastien Boeuf
3490150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
3500150de55SSebastien Boeuf
3510150de55SSebastien Boeuf* Add some missing seccomp rules
3520150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
3530150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
3540150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
3550150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
3560150de55SSebastien Boeuf
3570c9c56f5SRob Bradford# v23.0
3580c9c56f5SRob Bradford
3590c9c56f5SRob BradfordThis release has been tracked through the [v23.0
3600c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
3610c9c56f5SRob Bradford
3620c9c56f5SRob Bradford### vDPA Support
3630c9c56f5SRob Bradford
3640c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
3650c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
3660c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
3670c9c56f5SRob Bradford
3680c9c56f5SRob Bradford### Updated OS Support list
3690c9c56f5SRob Bradford
3700c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
3710c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
3720c9c56f5SRob Bradford
3730c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
3740c9c56f5SRob Bradford
3750c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
3760c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
3770c9c56f5SRob Bradfordallocated RAM. (#3938)
3780c9c56f5SRob Bradford
3790c9c56f5SRob Bradford### `AMX` Support
3800c9c56f5SRob Bradford
3810c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
3820c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
3830c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
3840c9c56f5SRob Bradford
3850c9c56f5SRob Bradford### Notable Bug Fixes
3860c9c56f5SRob Bradford
3870c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
3880c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
3890c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
3900c9c56f5SRob Bradford  `virtio-mem` (#3883)
3910c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
3920c9c56f5SRob Bradford  vIOMMU (#3870)
3930c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
3940c9c56f5SRob Bradford  (#3848)
3950c9c56f5SRob Bradford
3960c9c56f5SRob Bradford### Deprecations
3970c9c56f5SRob Bradford
3980c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
3990c9c56f5SRob Bradfordplan to use alternatives
4000c9c56f5SRob Bradford
4010c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
4020c9c56f5SRob Bradford  (#3968)
4030c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
4040c9c56f5SRob Bradford
4050c9c56f5SRob Bradford### Contributors
4060c9c56f5SRob Bradford
4070c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
4080c9c56f5SRob Bradford
4090c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
4100c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
4110c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
4120c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
4130c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
4140c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
4150c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
4160c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
4170c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
4180c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
4190c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
4200c9c56f5SRob Bradford
4210c9c56f5SRob Bradford# v22.1
4220c9c56f5SRob Bradford
4230c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
4240c9c56f5SRob Bradford
4250c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
4260c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
4270c9c56f5SRob Bradford
4286aa10938SRob Bradford# v22.0
4296aa10938SRob Bradford
4300c9c56f5SRob BradfordThis release has been tracked through the [v22.0
4310c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
4326aa10938SRob Bradford
4336aa10938SRob Bradford### GDB Debug Stub Support
4346aa10938SRob Bradford
4356aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
4366aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
4376aa10938SRob Bradfordthe [gdb
4386aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
4396aa10938SRob Bradford
4406aa10938SRob Bradford### `virtio-iommu` Backed Segments
4416aa10938SRob Bradford
4426aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
4436aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
4446aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
4456aa10938SRob Bradford
4466aa10938SRob Bradford### Before Boot Configuration Changes
4476aa10938SRob Bradford
4486aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
4496aa10938SRob Bradfordresize) before the VM is booted.
4506aa10938SRob Bradford
4516aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
4526aa10938SRob Bradford
4536aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
4546aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
4556aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
4566aa10938SRob Bradfordmemory density.
4576aa10938SRob Bradford
4586aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
4596aa10938SRob Bradford
4606aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
4616aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
4626aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
4636aa10938SRob Bradfordhas been updated for this usage.
4646aa10938SRob Bradford
4656aa10938SRob Bradford### PMU Support for AArch64
4666aa10938SRob Bradford
4676aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
4686aa10938SRob Bradfordexposed automatically if available from the host.
4696aa10938SRob Bradford
4700c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
4716aa10938SRob Bradford
4726aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
4736aa10938SRob BradfordInternational" license which is aligned with the project charter under the
4746aa10938SRob BradfordLinux Foundation.
4756aa10938SRob Bradford
4766aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
4776aa10938SRob Bradford
4786aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
4796aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
4806aa10938SRob Bradfordversion.
4816aa10938SRob Bradford
4826aa10938SRob Bradford### Notable Bug Fixes
4836aa10938SRob Bradford
4846aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
4856aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
4866aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
4876aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
4886aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
4896aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
4906aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
4916aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
4926aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
4936aa10938SRob Bradford
4946aa10938SRob Bradford### Contributors
4956aa10938SRob Bradford
4966aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
4976aa10938SRob Bradford
4986aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
4996aa10938SRob Bradford* Barret Rhoden <brho@google.com>
5006aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
5016aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
5026aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
5036aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
5046aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
5056aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
5066aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
5076aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
5086aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
5096aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
5106aa10938SRob Bradford
51195ca7997SRob Bradford# v21.0
51295ca7997SRob Bradford
51395ca7997SRob BradfordThis release has been tracked through the [v21.0
51495ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
51595ca7997SRob Bradford
51695ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
51795ca7997SRob Bradford
5186aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
5196aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
5206aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
5216aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
5226aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
52395ca7997SRob Bradford
52495ca7997SRob Bradford### Recommended Kernel is Now 5.15
52595ca7997SRob Bradford
5266aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
5276aa10938SRob Bradfordis now 5.15. (#3530)
52895ca7997SRob Bradford
52995ca7997SRob Bradford### Notable Bug fixes
53095ca7997SRob Bradford
53195ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
53295ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
53395ca7997SRob Bradford* Support live migration within firmware (#3586)
53495ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
53595ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
53695ca7997SRob Bradford
53795ca7997SRob Bradford### Contributors
53895ca7997SRob Bradford
53995ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
54095ca7997SRob Bradford
54195ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
54295ca7997SRob Bradford* Barret Rhoden <brho@google.com>
54395ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
54495ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
54595ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
54695ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
54795ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
54895ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
54995ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
55095ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
55195ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
55295ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
55395ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
55495ca7997SRob Bradford
55595ca7997SRob Bradford# v20.2
55695ca7997SRob Bradford
55795ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
55895ca7997SRob Bradford
55995ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
56095ca7997SRob Bradford  when this fails due to older kernel (#3456)
56195ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
56295ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
56395ca7997SRob Bradford  (#3496)
56495ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
56595ca7997SRob Bradford
56695ca7997SRob Bradford# v20.1
56795ca7997SRob Bradford
56895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
56995ca7997SRob Bradford
57095ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
57195ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
57295ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
57395ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
57495ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
57595ca7997SRob Bradford
5767fc0776aSSebastien Boeuf# v20.0
5777fc0776aSSebastien Boeuf
5787fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
5797fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
5807fc0776aSSebastien Boeuf
5817fc0776aSSebastien Boeuf### Multiple PCI segments support
5827fc0776aSSebastien Boeuf
5837fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
5847fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
5857fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
5867fc0776aSSebastien Boeuf
5877fc0776aSSebastien Boeuf### CPU pinning
5887fc0776aSSebastien Boeuf
5897fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
5907fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
5917fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
5927fc0776aSSebastien Boeuf
5937fc0776aSSebastien Boeuf### Improved VFIO support
5947fc0776aSSebastien Boeuf
5957fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
5967fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
5977fc0776aSSebastien Boeufthe passthrough device.
5987fc0776aSSebastien Boeuf
5997fc0776aSSebastien Boeuf### Safer code
6007fc0776aSSebastien Boeuf
6017fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
6027fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
6037fc0776aSSebastien Boeufunsafe sections are safe to use.
6047fc0776aSSebastien Boeuf
6057fc0776aSSebastien Boeuf### Extended documentation
6067fc0776aSSebastien Boeuf
6077fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
6087fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
6097fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
6107fc0776aSSebastien Boeuf
6117fc0776aSSebastien Boeuf### Notable bug fixes
6127fc0776aSSebastien Boeuf
6137fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
6147fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
6157fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
6167fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
6177fc0776aSSebastien Boeuf
6187fc0776aSSebastien Boeuf### Contributors
6197fc0776aSSebastien Boeuf
6207fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
6217fc0776aSSebastien Boeuf
6227fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
6237fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
6247fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
6257fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
6267fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
6277fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
6287fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
6297fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
6307fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
6317fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
6327fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
6337fc0776aSSebastien Boeuf
634d00eb4aaSRob Bradford# v19.0
635d00eb4aaSRob Bradford
636d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
637d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
638d00eb4aaSRob Bradford
639d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
640d00eb4aaSRob Bradford
641d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
642d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
643d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
644d00eb4aaSRob Bradford
645d00eb4aaSRob Bradford### PCI boot time optimisations
646d00eb4aaSRob Bradford
647d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
648d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
649d00eb4aaSRob Bradford
650d00eb4aaSRob Bradford### Improved TDX support
651d00eb4aaSRob Bradford
652d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
653d00eb4aaSRob Bradfordexposed via the firmware to the guest.
654d00eb4aaSRob Bradford
655d00eb4aaSRob Bradford### Live migration enhancements
656d00eb4aaSRob Bradford
657d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
658d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
659d00eb4aaSRob Bradfordmigration.
660d00eb4aaSRob Bradford
661d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
662d00eb4aaSRob Bradford
663d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
664d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
665d00eb4aaSRob Bradford
666d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
667d00eb4aaSRob Bradford
668d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
669d00eb4aaSRob Bradford
670d00eb4aaSRob Bradford### Notable bug fixes
671d00eb4aaSRob Bradford
672d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
673d00eb4aaSRob Bradford  snapshot/restore (#3165)
674d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
675d00eb4aaSRob Bradford  (#3078 #3113)
676d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
677d00eb4aaSRob Bradford  the underlying crate (#3157)
678d00eb4aaSRob Bradford
679d00eb4aaSRob Bradford### Contributors
680d00eb4aaSRob Bradford
681d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
682d00eb4aaSRob Bradford
683d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
684d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
685d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
686d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
687d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
688d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
689d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
690d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
691d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
692d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
693d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
694d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
695d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
696d00eb4aaSRob Bradford
6972c4f8d22SRob Bradford# v18.0
6982c4f8d22SRob Bradford
6992c4f8d22SRob BradfordThis release has been tracked through the [v18.0
7002c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
7012c4f8d22SRob Bradford
7022c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
7032c4f8d22SRob Bradford
7042c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
7052c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
7062c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
7072c4f8d22SRob Bradford
7082c4f8d22SRob Bradford### Migration support for `vhost-user` devices
7092c4f8d22SRob Bradford
7102c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
7112c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
7122c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
7132c4f8d22SRob Bradford
7142c4f8d22SRob Bradford### VHDX disk image support
7152c4f8d22SRob Bradford
7162c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
7172c4f8d22SRob Bradford
7182c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
7192c4f8d22SRob Bradford
7202c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
7212c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
7222c4f8d22SRob Bradford
7232c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
7242c4f8d22SRob Bradford
7252c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
7262c4f8d22SRob Bradford
7272c4f8d22SRob Bradford### Live migration on MSHV hypervisor
7282c4f8d22SRob Bradford
7292c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
7302c4f8d22SRob Bradfordefficient tracking of dirty pages.
7312c4f8d22SRob Bradford
7322c4f8d22SRob Bradford### AArch64 CPU topology support
7332c4f8d22SRob Bradford
7342c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
7352c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
7362c4f8d22SRob Bradfordtree.
7372c4f8d22SRob Bradford
7382c4f8d22SRob Bradford### Power button support on AArch64
7392c4f8d22SRob Bradford
7402c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
7412c4f8d22SRob Bradfordis now supported when running on AArch64.
7422c4f8d22SRob Bradford
7432c4f8d22SRob Bradford### Notable bug fixes
7442c4f8d22SRob Bradford
7452c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
7462c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
7472c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
7482c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
7492c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
7502c4f8d22SRob Bradford
7512c4f8d22SRob Bradford### Contributors
7522c4f8d22SRob Bradford
7532c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
7542c4f8d22SRob Bradford
7552c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
7562c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
7572c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
7582c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
7592c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
7602c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
7612c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
7622c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
7632c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
7642c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
7652c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
7662c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
7672c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
7682c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
769e6db5999SRob Bradford
770e6db5999SRob Bradford# v17.0
771e6db5999SRob Bradford
772e6db5999SRob BradfordThis release has been tracked through the [v17.0
773e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
774e6db5999SRob Bradford
775e6db5999SRob Bradford### ARM64 NUMA support using ACPI
776e6db5999SRob Bradford
777e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
778e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
779e6db5999SRob Bradford
780e6db5999SRob Bradford### `Seccomp` support for MSHV backend
781e6db5999SRob Bradford
782e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
783e6db5999SRob Bradfordhypervisor backend.
784e6db5999SRob Bradford
785e6db5999SRob Bradford### Hotplug of `macvtap` devices
786e6db5999SRob Bradford
787e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
788e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
789e6db5999SRob Bradfordtool supports this functionality when adding a network device.
790e6db5999SRob Bradford
791e6db5999SRob Bradford### Improved SGX support
792e6db5999SRob Bradford
793e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
794e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
795e6db5999SRob Bradford
796e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
797e6db5999SRob Bradford
798e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
799e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
800e6db5999SRob Bradford
801e6db5999SRob Bradford### Notable bug fixes
802e6db5999SRob Bradford
803e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
804e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
805e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
806e6db5999SRob Bradford(#2833).
807e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
808e6db5999SRob Bradford
809e6db5999SRob Bradford### Contributors
810e6db5999SRob Bradford
811e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
812e6db5999SRob Bradford
813e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
814e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
815e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
816e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
817e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
818e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
819e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
820e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
821e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
822e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
823e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
824e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
825e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
826e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
827e6db5999SRob Bradford
8285ed8e01fSRob Bradford# v16.0
8295ed8e01fSRob Bradford
8305ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
8315ed8e01fSRob Bradford
8325ed8e01fSRob Bradford### Improved live migration support
8335ed8e01fSRob Bradford
8345ed8e01fSRob BradfordThe live migration support inside Cloud Hypervisor has been improved with the addition of the tracking of dirty pages written by the VMM to complement the tracking of dirty pages made by the guest itself. Further the internal state of the VMM now is versioned which allows the safe migration of VMs from one version of the VMM to a newer one. However further testing is required so this should be done with care. See the [live migration documentation](docs/live_migration.md) for more details.
8355ed8e01fSRob Bradford
8365ed8e01fSRob Bradford### Improved `vhost-user` support
8375ed8e01fSRob Bradford
8385ed8e01fSRob BradfordWhen using `vhost-user` to access devices implemented in different processes there is now support for reconnection of those devices in the case of a restart of the backend. In addition it is now possible to operate with the direction of the `vhost-user-net` connection reversed with the server in the VMM and the client in the backend. This is aligns with the default approach recommended by Open vSwitch.
8395ed8e01fSRob Bradford
8405ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
8415ed8e01fSRob Bradford
8425ed8e01fSRob BradfordCloud Hypervisor now supports using ACPI and booting from a UEFI image on ARM64. This allows the use of stock OS images without direct kernel boot.
8435ed8e01fSRob Bradford
8445ed8e01fSRob Bradford### Notable bug fixes
8455ed8e01fSRob Bradford
8465ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
8475ed8e01fSRob Bradford* When using MQ with `virtio` devices Cloud Hypervisor now enforces a minimum vCPU count which ensures that the user will not see adverse guest performance (#2563).
8485ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
8495ed8e01fSRob Bradford
8505ed8e01fSRob Bradford### Removed functionality
8515ed8e01fSRob Bradford
8525ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
8535ed8e01fSRob Bradford
8545ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
8555ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
8565ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
8575ed8e01fSRob Bradford
8585ed8e01fSRob Bradford### Contributors
8595ed8e01fSRob Bradford
8605ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
8615ed8e01fSRob Bradford
8625ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
8635ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
8645ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
8655ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
8665ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
8675ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
8685ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
8695ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
8705ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
8715ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
8725ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
8735ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
8745ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
8755ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
8765ed8e01fSRob Bradford
87730a01277SRob Bradford# v15.0
87830a01277SRob Bradford
87930a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
88030a01277SRob Bradford
88130a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
88230a01277SRob Bradford
88330a01277SRob Bradford### Version numbering and stability guarantees
88430a01277SRob Bradford
88530a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
88630a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
88730a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
88830a01277SRob Bradford
88930a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
89030a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
89130a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
89230a01277SRob Bradford  will be documented in the release notes.
89330a01277SRob Bradford* Point releases will be made between individual releases where there are
89430a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
89530a01277SRob Bradford
89630a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
89730a01277SRob Bradford
89830a01277SRob Bradford* Snapshot/restore is not supported across different versions
89930a01277SRob Bradford* Live migration is not supported across different versions
90030a01277SRob Bradford* The following features are considered experimental and may change
90130a01277SRob Bradford  substantially between releases: TDX, SGX.
90230a01277SRob Bradford
90330a01277SRob Bradford### Network device rate limiting
90430a01277SRob Bradford
90530a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
90630a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
90730a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
90830a01277SRob Bradford
90930a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
91030a01277SRob Bradford
91130a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
91230a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
91330a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
91430a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
91530a01277SRob Bradford
91630a01277SRob Bradford### `--api-socket` supports file descriptor parameter
91730a01277SRob Bradford
91830a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
91930a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
92030a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
92130a01277SRob Bradford
92230a01277SRob Bradford### Bug fixes
92330a01277SRob Bradford
92430a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
92530a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
92630a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
92730a01277SRob Bradford  reprogram them (#1797,#1798)
92830a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
92930a01277SRob Bradford  exhaustion on the host) (#2517)
93030a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
93130a01277SRob Bradford  prevents snapshot & restore working (#2535)
93230a01277SRob Bradford
93330a01277SRob Bradford### Deprecations
93430a01277SRob Bradford
93530a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
93630a01277SRob Bradford
93730a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
93830a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
93930a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
94030a01277SRob Bradford
94130a01277SRob Bradford### Contributors
94230a01277SRob Bradford
94330a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
94430a01277SRob Bradford
94530a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
94630a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
94730a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
94830a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
94930a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
95030a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
95130a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
95230a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
95330a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
95430a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
95530a01277SRob Bradford* William Douglas <william.douglas@intel.com>
95630a01277SRob Bradford
95730a01277SRob Bradford# v0.14.1
95830a01277SRob Bradford
95930a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
96030a01277SRob Bradfordin this release:
96130a01277SRob Bradford
96230a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
96330a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
96430a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
96530a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
96630a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
96730a01277SRob Bradford
96840c63dcfSRob Bradford# v0.14.0
96940c63dcfSRob Bradford
97040c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
97140c63dcfSRob Bradford
97240c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
97340c63dcfSRob Bradford
97440c63dcfSRob Bradford### Structured event monitoring
97540c63dcfSRob Bradford
97640c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
97740c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
97840c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
97940c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
98040c63dcfSRob BradfordHypervisor API surface.
98140c63dcfSRob Bradford
98240c63dcfSRob Bradford### MSHV improvements
98340c63dcfSRob Bradford
98440c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
98540c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
98640c63dcfSRob Bradfordthe MSHV support.
98740c63dcfSRob Bradford
98840c63dcfSRob Bradford### Improved aarch64 platform
98940c63dcfSRob Bradford
99040c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
99140c63dcfSRob BradfordVM including an enhanced serial UART.
99240c63dcfSRob Bradford
99340c63dcfSRob Bradford### Updated hotplug documentation
99440c63dcfSRob Bradford
99540c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
99640c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
99740c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
99840c63dcfSRob Bradford
99940c63dcfSRob Bradford### PTY control for serial and `virtio-console`
100040c63dcfSRob Bradford
100140c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
100240c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
100340c63dcfSRob BradfordPTY subsystem.
100440c63dcfSRob Bradford
100540c63dcfSRob Bradford### Block device rate limiting
100640c63dcfSRob Bradford
100740c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
100840c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
100930a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
101040c63dcfSRob Bradford
101140c63dcfSRob Bradford
101240c63dcfSRob Bradford### Deprecations
101340c63dcfSRob Bradford
101440c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
101540c63dcfSRob Bradford
101640c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
101740c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
101840c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
101940c63dcfSRob Bradford
102040c63dcfSRob Bradford
102140c63dcfSRob Bradford### Contributors
102240c63dcfSRob Bradford
102340c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
102440c63dcfSRob Bradfordsome new faces.
102540c63dcfSRob Bradford
102640c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
102740c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
102840c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
102940c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
103040c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
103140c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
103240c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
103340c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
103440c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
103540c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
103640c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
103740c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
103840c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
103940c63dcfSRob Bradford
1040f58b6f84SRob Bradford# v0.13.0
1041f58b6f84SRob Bradford
1042f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1043f58b6f84SRob Bradford
1044f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1045f58b6f84SRob Bradford
1046f58b6f84SRob Bradford### Wider VFIO device support
1047f58b6f84SRob Bradford
1048f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1049f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1050f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1051f58b6f84SRob Bradforddrivers.
1052f58b6f84SRob Bradford
105340c63dcfSRob Bradford### Improved huge page support
1054f58b6f84SRob Bradford
1055f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1056f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1057f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1058f58b6f84SRob Bradforddesired size in their pool.
1059f58b6f84SRob Bradford
1060f58b6f84SRob Bradford### MACvTAP support
1061f58b6f84SRob Bradford
1062f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1063f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1064f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1065f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1066f58b6f84SRob Bradford
1067f58b6f84SRob Bradford### VHD disk image support
1068f58b6f84SRob Bradford
1069f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1070f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1071f58b6f84SRob Bradford
1072f58b6f84SRob Bradford### Improved Virtio device threading
1073f58b6f84SRob Bradford
1074f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1075f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1076f58b6f84SRob Bradfordpredictable name derived from the device id.
1077f58b6f84SRob Bradford
1078f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1079f58b6f84SRob Bradford
1080f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1081f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1082f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1083f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1084f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1085f58b6f84SRob Bradford
1086f58b6f84SRob Bradford### Contributors
1087f58b6f84SRob Bradford
1088f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1089f58b6f84SRob Bradfordsome new faces.
1090f58b6f84SRob Bradford
1091f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1092f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1093f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1094f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1095f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1096f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1097f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1098f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1099f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1100f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1101f58b6f84SRob Bradford
1102d42b5084SRob Bradford# v0.12.0
1103d42b5084SRob Bradford
1104d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1105d42b5084SRob Bradford
1106d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1107d42b5084SRob Bradford
1108d42b5084SRob Bradford### ARM64 enhancements
1109d42b5084SRob Bradford
1110d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1111d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1112d42b5084SRob Bradford
1113d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1114d42b5084SRob Bradford
1115d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1116d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1117d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1118d42b5084SRob Bradfordremoved.
1119d42b5084SRob Bradford
1120d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1121d42b5084SRob Bradford
1122d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1123d42b5084SRob Bradfordinstead hosted in [it's own
1124d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1125d42b5084SRob Bradford
1126d42b5084SRob Bradford### Enhanced "info" API
1127d42b5084SRob Bradford
1128d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1129d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1130d42b5084SRob Bradford
1131d42b5084SRob Bradford### Contributors
1132d42b5084SRob Bradford
1133d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1134d42b5084SRob Bradford
1135d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1136d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1137d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1138d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1139d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1140d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1141d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1142d42b5084SRob Bradford
11437dcd3affSRob Bradford# v0.11.0
11447dcd3affSRob Bradford
11457dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
11467dcd3affSRob Bradford
11477dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
11487dcd3affSRob Bradford
11497dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
11507dcd3affSRob Bradford
11517dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
11527dcd3affSRob Bradfordbe used for a significantly higher performance block device.
11537dcd3affSRob Bradford
11547dcd3affSRob Bradford### Windows Guest Support
11557dcd3affSRob Bradford
11567dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
11577dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
11587dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
11597dcd3affSRob Bradforddocumentation](docs/windows.md).
11607dcd3affSRob Bradford
11617dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
11627dcd3affSRob Bradford
11637dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
11647dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
11657dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
11667dcd3affSRob Bradford
1167d00eb4aaSRob Bradford### `virtio-mmio` Removal
11687dcd3affSRob Bradford
11697dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
11707dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
11717dcd3affSRob Bradfordreduce the testing burden of the project.
11727dcd3affSRob Bradford
11737dcd3affSRob Bradford### Snapshot/Restore support for ARM64
11747dcd3affSRob Bradford
11757dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
11767dcd3affSRob Bradfordimplemented.
11777dcd3affSRob Bradford
11787dcd3affSRob Bradford### Improved Linux Boot Time
11797dcd3affSRob Bradford
11807dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
11817dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
11827dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
11837dcd3affSRob Bradford
11847dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
11857dcd3affSRob Bradford
11867dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
11877dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
11887dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
11897dcd3affSRob Bradfordresources.
11907dcd3affSRob Bradford
11917dcd3affSRob Bradford### Default Log Level Changed
11927dcd3affSRob Bradford
11937dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
11947dcd3affSRob Bradfordeasier to see potential issues. New [logging
11957dcd3affSRob Bradforddocumentation](docs/logging) was also added.
11967dcd3affSRob Bradford
11977dcd3affSRob Bradford### New `--balloon` Parameter Added
11987dcd3affSRob Bradford
11997dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
12007dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
12017dcd3affSRob Bradfordcontrols without overloading `--memory`.
12027dcd3affSRob Bradford
12037dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
12047dcd3affSRob Bradford
12057dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
12067dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
12077dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
12087dcd3affSRob Bradford
12097dcd3affSRob Bradford### Notable Bug Fixes
12107dcd3affSRob Bradford
12117dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
12127dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
12137dcd3affSRob Bradford* CPU identification string is now exposed to the guest
12147dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
12157dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
12167dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
12177dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
12187dcd3affSRob Bradford  can be used (#1803)
12197dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
12207dcd3affSRob Bradford  correctly
12217dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
12227dcd3affSRob Bradford  correctly
12237dcd3affSRob Bradford
12247dcd3affSRob Bradford### Contributors
12257dcd3affSRob Bradford
12267dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
12277dcd3affSRob Bradford
12287dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
12297dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
12307dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
12317dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
12327dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
12337dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
12347dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
12357dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
12367dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
12377dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
12387dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
12397dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
12407dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
12417dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12427dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
12437dcd3affSRob Bradford
12447dcd3affSRob Bradford
1245198bd551SRob Bradford# v0.10.0
1246198bd551SRob Bradford
1247198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1248198bd551SRob Bradford
1249198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1250198bd551SRob Bradford
1251198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1252198bd551SRob Bradford
1253198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1254198bd551SRob Bradford
1255198bd551SRob Bradford### Memory Zones
1256198bd551SRob Bradford
1257198bd551SRob BradfordSupport has been added for fine grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
1258198bd551SRob Bradford
1259198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1260198bd551SRob Bradford
1261198bd551SRob BradfordAll the remaining threads and devices are now isolated within their own `seccomp` filters. This provides a layer of sandboxing and enhances the security model of `cloud-hypervisor`.
1262198bd551SRob Bradford
1263198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1264198bd551SRob Bradford
1265198bd551SRob BradfordA new option (`kvm_hyperv`) has been added to `--cpus` to provide an option to toggle on KVM's HyperV emulation support. This enables progress towards booting Windows without adding extra emulated devices.
1266198bd551SRob Bradford
1267198bd551SRob Bradford### Notable Bug Fixes
1268198bd551SRob Bradford
1269198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1270198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1271198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1272198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1273198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1274198bd551SRob Bradford
1275198bd551SRob Bradford### Contributors
1276198bd551SRob Bradford
1277198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1278198bd551SRob Bradford
1279198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1280198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1281198bd551SRob Bradford* Anatol Belski <ab@php.net>
1282198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1283198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1284198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1285198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1286198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1287198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1288198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1289198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1290198bd551SRob Bradford
1291d714cf81SRob Bradford# v0.9.0
1292d714cf81SRob Bradford
1293d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1294d714cf81SRob Bradford
1295d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1296d714cf81SRob Bradford
1297d714cf81SRob Bradford### `io_uring` Based Block Device Support
1298d714cf81SRob Bradford
1299d714cf81SRob BradfordIf the `io_uring` feature is enabled and the host kernel supports it then `io_uring` will be used for block devices. This results a very significant performance improvement.
1300d714cf81SRob Bradford
1301d714cf81SRob Bradford### Block and Network Device Statistics
1302d714cf81SRob Bradford
1303d714cf81SRob BradfordStatistics for activity of the `virtio` network and block devices is now exposed through a new `vm.counters` HTTP API entry point. These take the form of simple counters which can be used to observe the activity of the VM.
1304d714cf81SRob Bradford
1305d714cf81SRob Bradford### HTTP API Responses
1306d714cf81SRob Bradford
1307d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1308d714cf81SRob Bradford
1309d714cf81SRob Bradford### CPU Topology
1310d714cf81SRob Bradford
1311d714cf81SRob BradfordA `topology` parameter has been added to `--cpus` which allows the configuration of the guest CPU topology allowing the user to specify the numbers of sockets, packages per socket, cores per package and threads per core.
1312d714cf81SRob Bradford
1313d714cf81SRob Bradford### Release Build Optimization
1314d714cf81SRob Bradford
1315d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1316d714cf81SRob Bradford
1317d714cf81SRob Bradford### Hypervisor Abstraction
1318d714cf81SRob Bradford
1319d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1320d714cf81SRob Bradford
1321d714cf81SRob Bradford### Snapshot/Restore Improvements
1322d714cf81SRob Bradford
1323d714cf81SRob BradfordMultiple improvements have been made to the VM snapshot/restore support that was added in the last release. This includes persisting more vCPU state and in particular preserving the guest paravirtualized clock in order to avoid vCPU hangs inside the guest when running with multiple vCPUs.
1324d714cf81SRob Bradford
1325d714cf81SRob Bradford### Virtio Memory Ballooning Support
1326d714cf81SRob Bradford
1327d714cf81SRob BradfordA `virtio-balloon` device has been added, controlled through the `resize` control, which allows the reclamation of host memory by resizing a memory balloon inside the guest.
1328d714cf81SRob Bradford
1329d714cf81SRob Bradford### Enhancements to ARM64 Support
1330d714cf81SRob Bradford
1331d714cf81SRob BradfordThe ARM64 support introduced in the last release has been further enhanced with support for using PCI for exposing devices into the guest as well as multiple bug fixes. It also now supports using an initramfs when booting.
1332d714cf81SRob Bradford
1333d714cf81SRob Bradford### Intel SGX Support
1334d714cf81SRob Bradford
1335d714cf81SRob BradfordThe guest can now use Intel SGX if the host supports it. Details can be found in the dedicated [SGX documentation](docs/intel_sgx.md).
1336d714cf81SRob Bradford
1337d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1338d714cf81SRob Bradford
1339d714cf81SRob BradfordThe most frequently used virtio devices are now isolated with their own `seccomp` filters. It is also now possible to pass `--seccomp=log` which result in the logging of requests that would have otherwise been denied to further aid development.
1340d714cf81SRob Bradford
1341d714cf81SRob Bradford### Notable Bug Fixes
1342d714cf81SRob Bradford
1343d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1344d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1345d714cf81SRob Bradford* A workaround is now in place for when KVM reports MSRs available MSRs that are in fact unreadable preventing snapshot/restore from working correctly (#1543).
1346d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1347d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1348d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1349d714cf81SRob Bradford
1350d714cf81SRob Bradford### Contributors
1351d714cf81SRob Bradford
1352d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1353d714cf81SRob Bradford
1354d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1355d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1356d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1357d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1358d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1359d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1360d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1361d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1362d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1363d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1364d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1365d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1366d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1367d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1368d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1369d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1370d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1371d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1372d714cf81SRob Bradford
1373d714cf81SRob Bradford
137452b83969SRob Bradford# v0.8.0
137552b83969SRob Bradford
137652b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
137752b83969SRob Bradford
137852b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
137952b83969SRob Bradford
138052b83969SRob Bradford### Experimental Snapshot and Restore Support
138152b83969SRob Bradford
138252b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
138352b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
138452b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
138552b83969SRob Bradfordoriginal VM at the point it was paused.
138652b83969SRob Bradford
138752b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
138852b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
138952b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
139052b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
139152b83969SRob Bradford(#1176).
139252b83969SRob Bradford
139352b83969SRob Bradford### Experimental ARM64 Support
139452b83969SRob Bradford
139552b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
139652b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
139752b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
139852b83969SRob Bradford
139952b83969SRob Bradford### Support for Using 5-level Paging in Guests
140052b83969SRob Bradford
140152b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
140252b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
140352b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
140452b83969SRob Bradfordwork due to current limitations in the PVH boot process.
140552b83969SRob Bradford
140652b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
140752b83969SRob Bradford
140852b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
140952b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
141052b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
141152b83969SRob Bradfordthe guest must service.
141252b83969SRob Bradford
141352b83969SRob Bradford### `vhost_user_fs` Improvements
141452b83969SRob Bradford
141552b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
141652b83969SRob Bradford
141752b83969SRob Bradford
141852b83969SRob Bradford### Notable Bug Fixes
141952b83969SRob Bradford
142052b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
142152b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
142252b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
142352b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
142452b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
142552b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
142652b83969SRob Bradford  #1216).
142752b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
142852b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
142952b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
143052b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
143152b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
143252b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
143352b83969SRob Bradford  (#751).
143452b83969SRob Bradford
143552b83969SRob Bradford### Command Line and API Changes
143652b83969SRob Bradford
143752b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
143852b83969SRob Bradford
143952b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
144052b83969SRob Bradford  rather than `sock` in some cases.
144152b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
144252b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
144352b83969SRob Bradford  offered for negotiation.
144452b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
144552b83969SRob Bradford  address for the `tap` device on the host.
144652b83969SRob Bradford
144752b83969SRob Bradford### Contributors
144852b83969SRob Bradford
144952b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
145052b83969SRob Bradford
145152b83969SRob Bradford* Anatol Belski <ab@php.net>
145252b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
145352b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
145452b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
145552b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
145652b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
145752b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
145852b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
145952b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
146052b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
146152b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
146252b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
146352b83969SRob Bradford
146496be8229SRob Bradford# v0.7.0
146596be8229SRob Bradford
146696be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
146796be8229SRob Bradford
146896be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
146996be8229SRob Bradford
147096be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
147196be8229SRob Bradford
147296be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
147396be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
147496be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
14755c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
147696be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
147796be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
147896be8229SRob Bradforddevices to ease their removal.
147996be8229SRob Bradford
148096be8229SRob Bradford### Alternative `libc` Support
148196be8229SRob Bradford
148296be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
148396be8229SRob Bradfordcontains a static binary compiled using that toolchain.
148496be8229SRob Bradford
148596be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
148696be8229SRob Bradford
148796be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
148896be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
148996be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
149096be8229SRob Bradfordis passed when the devices are created.
149196be8229SRob Bradford
149296be8229SRob Bradford### Initial RamFS Support
149396be8229SRob Bradford
149496be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
149596be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
149696be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
149796be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
149896be8229SRob Bradfordminimal image.
149996be8229SRob Bradford
150096be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
150196be8229SRob Bradford
150296be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
150396be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
150496be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
150596be8229SRob Bradfordrequires kernel patches to be able to support it.
150696be8229SRob Bradford
150796be8229SRob Bradford### `Seccomp` Sandboxing
150896be8229SRob Bradford
150996be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
151096be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
151196be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
151296be8229SRob Bradford
151396be8229SRob Bradford### Updated Distribution Support
151496be8229SRob Bradford
151596be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
151696be8229SRob Bradforddistributions and is part of our regular testing programme.
151796be8229SRob Bradford
151896be8229SRob Bradford### Command Line and API Changes
151996be8229SRob Bradford
152096be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
152196be8229SRob Bradford
152296be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
152396be8229SRob Bradford  If no name is specified the VMM chooses one.
152496be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
152596be8229SRob Bradford  memory instead of providing a path.
152696be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
152796be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
152896be8229SRob Bradford  option and replaced it with a single optional field.
152996be8229SRob Bradford* There is enhanced validation of the command line and API provided
153096be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
153196be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
153296be8229SRob Bradford  device.
153396be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
153496be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
153596be8229SRob Bradford  has appropriate new HTTP endpoints too.
153696be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
153796be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
153896be8229SRob Bradford  to provide the equivalent of a read-only file.
153996be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
154096be8229SRob Bradford  with those used by `--disk`.
154196be8229SRob Bradford
154296be8229SRob Bradford### Contributors
154396be8229SRob Bradford
154496be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
154596be8229SRob Bradford
154696be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
154796be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
154896be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
154996be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
155096be8229SRob Bradford* Dean Sheather <dean@coder.com>
155196be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
155296be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
155396be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
155496be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
155596be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
155696be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
155796be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
155896be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
155996be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
156096be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
156196be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
156296be8229SRob Bradford
156303cb26ccSSamuel Ortiz# v0.6.0
156403cb26ccSSamuel Ortiz
156503cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
156603cb26ccSSamuel Ortiz
156703cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
156803cb26ccSSamuel Ortiz
156903cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
157003cb26ccSSamuel Ortiz
157103cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
157203cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
157303cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
157403cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
157503cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
157603cb26ccSSamuel Ortiz
157703cb26ccSSamuel Ortiz### Shared Filesystem Improvements
157803cb26ccSSamuel Ortiz
157903cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
158003cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
158103cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
158203cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
158303cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
158403cb26ccSSamuel Ortiz
158503cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
158603cb26ccSSamuel Ortiz
158703cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
158803cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
158903cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
159003cb26ccSSamuel Ortizinto their own, separate processes.
15915c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
159203cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
159303cb26ccSSamuel Ortiz
159403cb26ccSSamuel Ortiz### Command Line Interface
159503cb26ccSSamuel Ortiz
159603cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
159737a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
159837a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
159937a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
160037a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
160137a2c13aSAlyssa Rossis created with each build and available e.g. at
160203cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
160303cb26ccSSamuel Ortiz
160403cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
160503cb26ccSSamuel Ortizcommands.
160603cb26ccSSamuel Ortiz
160703cb26ccSSamuel Ortiz### PVH Boot
160803cb26ccSSamuel Ortiz
160903cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
161003cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
161103cb26ccSSamuel Ortiz
161203cb26ccSSamuel Ortiz### Contributors
161303cb26ccSSamuel Ortiz
161403cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
161503cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
161603cb26ccSSamuel Ortiz
161703cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
161803cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
161903cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
162003cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
162103cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
162203cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
162303cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
162403cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
162503cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
162603cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
162703cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
162803cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
162903cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
163003cb26ccSSamuel Ortiz
163194f2fc33SRob Bradford# v0.5.1
163294f2fc33SRob Bradford
163394f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
163494f2fc33SRob Bradford
163594f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
163694f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
163794f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
163894f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
163994f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
16408e8a7b6dSSamuel Ortiz
16412f395e60SSamuel Ortiz# v0.5.0
16422f395e60SSamuel Ortiz
16432f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
16442f395e60SSamuel Ortiz
16452f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
16462f395e60SSamuel Ortiz
16472f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
16482f395e60SSamuel Ortiz
16492f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
16502f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
16512f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
16522f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
16532f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
16542f395e60SSamuel Ortiz
16552f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
16562f395e60SSamuel Ortiz
16572f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
16582f395e60SSamuel Ortiz
16592f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
16602f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
16612f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
16622f395e60SSamuel Ortiz
16632f395e60SSamuel Ortiz### New Interrupt Management Framework
16642f395e60SSamuel Ortiz
16652f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
16662f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
16672f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
16682f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
16692f395e60SSamuel Ortizvirtio ones.
16702f395e60SSamuel Ortiz
16712f395e60SSamuel Ortiz### Development Tools
16722f395e60SSamuel Ortiz
16732f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
16742f395e60SSamuel Ortizbuild, development and testing tools.
16752f395e60SSamuel OrtizSomehow similar to the excellent
16762f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
167737a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
16782f395e60SSamuel Ortiz
16792f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
16802f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
16812f395e60SSamuel Ortiz
16822f395e60SSamuel Ortiz### Kata Containers Integration
16832f395e60SSamuel Ortiz
16842f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
16852f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
16862f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
16872f395e60SSamuel Ortizintegrated into the project's CI.
16882f395e60SSamuel Ortiz
16892f395e60SSamuel Ortiz### Contributors
16902f395e60SSamuel Ortiz
16912f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
16922f395e60SSamuel Ortiz
16932f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
16942f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
16952f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
16962f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
16972f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
16982f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
16992f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
17002f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
17012f395e60SSamuel Ortiz
1702cec884e8SSamuel Ortiz# v0.4.0
1703cec884e8SSamuel Ortiz
1704cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
1705cec884e8SSamuel Ortiz
1706cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
1707cec884e8SSamuel Ortiz
1708cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
1709cec884e8SSamuel Ortiz
1710e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
1711cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
1712cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
1713cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
171437a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
1715cec884e8SSamuel Ortiz
1716cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
1717cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
1718cec884e8SSamuel Ortiz
1719cec884e8SSamuel Ortiz### Programmatic firmware tables generation
1720cec884e8SSamuel Ortiz
1721cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
1722cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
1723cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
1724cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
1725cec884e8SSamuel Ortiztables based on the VMM device model and topology.
1726cec884e8SSamuel Ortiz
1727cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
1728cec884e8SSamuel Ortiz
1729cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
1730cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
1731cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
1732cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
1733cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
1734cec884e8SSamuel Ortiz
1735cec884e8SSamuel Ortiz### Guest pause and resume
1736cec884e8SSamuel Ortiz
17375c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
1738cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
1739cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
1740cec884e8SSamuel Ortizand resume capabilities.
1741cec884e8SSamuel Ortiz
1742cec884e8SSamuel Ortiz### Userspace IOAPIC by default
1743cec884e8SSamuel Ortiz
1744cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
1745cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
1746cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
1747cec884e8SSamuel Ortizdefault.
1748cec884e8SSamuel Ortiz
1749cec884e8SSamuel Ortiz### PCI BAR reprogramming
1750cec884e8SSamuel Ortiz
1751cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
1752cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
1753cec884e8SSamuel Ortizreprogramming.
1754cec884e8SSamuel Ortiz
1755cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
1756cec884e8SSamuel Ortiz
1757cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
1758cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
1759cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
1760cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
1761cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1762cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
1763cec884e8SSamuel Ortiztemporarily fork.
1764cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
1765cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
1766cec884e8SSamuel Ortiz
1767cec884e8SSamuel Ortiz### Contributors
1768cec884e8SSamuel Ortiz
1769cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
1770cec884e8SSamuel Ortiz
1771cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
1772cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
1773cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1774cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
1775cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
1776cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
1777cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
1778cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
1779cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
1780cec884e8SSamuel Ortiz
17818e8a7b6dSSamuel Ortiz# v0.3.0
17828e8a7b6dSSamuel Ortiz
17838ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
17848e8a7b6dSSamuel Ortiz
17858e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
17868e8a7b6dSSamuel Ortiz
17878e8a7b6dSSamuel Ortiz### Block device offloading
17888e8a7b6dSSamuel Ortiz
17898e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
17908e8a7b6dSSamuel Ortizand we added support for
17918e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
17928e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
17938e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
17948e8a7b6dSSamuel Ortizbackend.
17958e8a7b6dSSamuel Ortiz
17968e8a7b6dSSamuel Ortiz### Network device backend
17978e8a7b6dSSamuel Ortiz
17988e8a7b6dSSamuel OrtizThe previous release provided support for
17998e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
18008e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
18018e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
18028e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
18038e8a7b6dSSamuel Ortiz
18048e8a7b6dSSamuel Ortiz### Virtual sockets
18058e8a7b6dSSamuel Ortiz
18068e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
18078e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
18088e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
18098e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
18108e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
18118e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
18128e8a7b6dSSamuel Ortiz
18138e8a7b6dSSamuel Ortiz### HTTP based API
18148e8a7b6dSSamuel Ortiz
18158e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
18168e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
18178e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
18188e8a7b6dSSamuel Ortiznext release cycle.
18198e8a7b6dSSamuel Ortiz
18208e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
18218e8a7b6dSSamuel Ortiz
18228e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
18238e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
18248e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
18258e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
18268e8a7b6dSSamuel Ortiz
18278e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
18288e8a7b6dSSamuel Ortiz
18298e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
183037a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
183137a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
18328e8a7b6dSSamuel Ortiz
18338e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
18348e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
18358e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
18368e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
18378e8a7b6dSSamuel Ortizsetting.
18388e8a7b6dSSamuel Ortiz
18398e8a7b6dSSamuel Ortiz### Ubuntu 19.10
18408e8a7b6dSSamuel Ortiz
18418ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
18428e8a7b6dSSamuel Ortizwe can now support the latest
18438e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
18448e8a7b6dSSamuel Ortiz
18458e8a7b6dSSamuel Ortiz### Large memory guests
18468e8a7b6dSSamuel Ortiz
18478e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
18488e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
18497688e6e2SSamuel Ortiz
1850d784ac29SSamuel Ortiz# v0.2.0
1851d784ac29SSamuel Ortiz
18528ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
1853d784ac29SSamuel Ortiz
1854d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
1855d784ac29SSamuel Ortiz
1856d784ac29SSamuel Ortiz### Network device offloading
1857d784ac29SSamuel Ortiz
1858d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
1859d784ac29SSamuel Ortizprocesses, we added support for
1860d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
1861d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
1862d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
1863d784ac29SSamuel Ortiz
1864d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
1865d784ac29SSamuel Ortiz
1866d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
1867d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
1868d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
1869d784ac29SSamuel Ortizcleanly reboot and shutdown.
1870d784ac29SSamuel Ortiz
1871d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
1872d784ac29SSamuel Ortizenabled by default.
1873d784ac29SSamuel Ortiz
1874d784ac29SSamuel Ortiz### Debug I/O port
1875d784ac29SSamuel Ortiz
1876d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
1877d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
1878d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
1879d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
188037a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
188137a2c13aSAlyssa Rossdetails.
1882d784ac29SSamuel Ortiz
1883d784ac29SSamuel Ortiz### Improved direct device assignment
1884d784ac29SSamuel Ortiz
1885d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
1886d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
1887d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
1888d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
1889d784ac29SSamuel Ortizdirectly assigned devices.
1890d784ac29SSamuel Ortiz
1891d784ac29SSamuel Ortiz### Improved shared filesystem
1892d784ac29SSamuel Ortiz
1893d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
1894d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
1895d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
1896d784ac29SSamuel Ortizmemory footprint.
1897d784ac29SSamuel Ortiz
1898d784ac29SSamuel Ortiz### Ubuntu bionic based CI
1899d784ac29SSamuel Ortiz
19008ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1901d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
1902d784ac29SSamuel Ortizour CI pipeline.
1903d784ac29SSamuel Ortiz
190493b77530SSamuel Ortiz# v0.1.0
190593b77530SSamuel Ortiz
19068ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
190793b77530SSamuel Ortiz
190893b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
190993b77530SSamuel Ortiz
191093b77530SSamuel Ortiz### Shared filesystem
191193b77530SSamuel Ortiz
191293b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
191393b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
191493b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
191593b77530SSamuel Ortiz
191637a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
191737a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
191893b77530SSamuel Ortiz
191993b77530SSamuel Ortiz### Initial direct device assignment support
192093b77530SSamuel Ortiz
192193b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
192293b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
192393b77530SSamuel Ortizphysical devices into its guest.
192493b77530SSamuel Ortiz
192537a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
192637a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
192793b77530SSamuel Ortiz
192893b77530SSamuel Ortiz### Userspace IOAPIC
192993b77530SSamuel Ortiz
193093b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
193193b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
193293b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
193393b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
193493b77530SSamuel Ortiz
193593b77530SSamuel Ortiz### Virtual persistent memory
193693b77530SSamuel Ortiz
193793b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
193893b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
193993b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
194093b77530SSamuel Ortiz
194193b77530SSamuel Ortiz### Linux kernel bzImage
194293b77530SSamuel Ortiz
194393b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
194493b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
194593b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
194693b77530SSamuel Ortizdistribution kernel image.
194793b77530SSamuel Ortiz
194893b77530SSamuel Ortiz### Console over virtio
194993b77530SSamuel Ortiz
195093b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
195193b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
195293b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
195393b77530SSamuel Ortizimplementation.
195493b77530SSamuel Ortiz
195593b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
195693b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
195793b77530SSamuel Ortiz`--serial tty --console off` from the command line.
195893b77530SSamuel Ortiz
195993b77530SSamuel Ortiz### Unit testing
196093b77530SSamuel Ortiz
196193b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
196293b77530SSamuel Ortiz
196393b77530SSamuel Ortiz### Integration tests parallelization
196493b77530SSamuel Ortiz
196593b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
196693b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
1967