xref: /cloud-hypervisor/release-notes.md (revision 6aa10938e4a090bf681c61a848d9460b3aae6cdc)
1*6aa10938SRob Bradford- [v22.0](#v220)
2*6aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
3*6aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
4*6aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
5*6aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
6*6aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
7*6aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
8*6aa10938SRob Bradford    - [Documentation Under CC-BY-4.0 Licese](#documentation-under-cc-by-40-licese)
9*6aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
10*6aa10938SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
11*6aa10938SRob Bradford    - [Contributors](#contributors)
1295ca7997SRob Bradford- [v21.0](#v210)
1395ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
1495ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
15*6aa10938SRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-1)
16*6aa10938SRob Bradford    - [Contributors](#contributors-1)
1795ca7997SRob Bradford- [v20.2](#v202)
1895ca7997SRob Bradford- [v20.1](#v201)
197fc0776aSSebastien Boeuf- [v20.0](#v200)
207fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
217fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
227fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
237fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
247fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
25*6aa10938SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-2)
26*6aa10938SRob Bradford    - [Contributors](#contributors-2)
27d00eb4aaSRob Bradford- [v19.0](#v190)
28d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
29d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
30d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
31d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
32d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
33d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
34*6aa10938SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-3)
35*6aa10938SRob Bradford    - [Contributors](#contributors-3)
362c4f8d22SRob Bradford- [v18.0](#v180)
372c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
382c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
392c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
402c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
412c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
422c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
432c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
442c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
45*6aa10938SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-4)
46*6aa10938SRob Bradford    - [Contributors](#contributors-4)
47e6db5999SRob Bradford- [v17.0](#v170)
48e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
49e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
50e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
51e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
52e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
53*6aa10938SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-5)
54*6aa10938SRob Bradford    - [Contributors](#contributors-5)
555ed8e01fSRob Bradford- [v16.0](#v160)
565ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
575ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
585ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
59*6aa10938SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-6)
605ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
61*6aa10938SRob Bradford    - [Contributors](#contributors-6)
6230a01277SRob Bradford- [v15.0](#v150)
6330a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
6430a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
6530a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
6630a01277SRob Bradford    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
6730a01277SRob Bradford    - [Bug fixes](#bug-fixes)
6830a01277SRob Bradford    - [Deprecations](#deprecations)
69*6aa10938SRob Bradford    - [Contributors](#contributors-7)
7030a01277SRob Bradford- [v0.14.1](#v0141)
7140c63dcfSRob Bradford- [v0.14.0](#v0140)
7240c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
7340c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
7440c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
7540c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
7640c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
7740c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
7830a01277SRob Bradford    - [Deprecations](#deprecations-1)
79*6aa10938SRob Bradford    - [Contributors](#contributors-8)
80f58b6f84SRob Bradford- [v0.13.0](#v0130)
81f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
8240c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
83f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
84f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
85f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
86f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
87*6aa10938SRob Bradford    - [Contributors](#contributors-9)
88d42b5084SRob Bradford- [v0.12.0](#v0120)
89d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
90d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
91d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
92d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
93*6aa10938SRob Bradford    - [Contributors](#contributors-10)
947dcd3affSRob Bradford- [v0.11.0](#v0110)
957dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
967dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
977dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
98d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
997dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1007dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1017dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1027dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
1037dcd3affSRob Bradford    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1047dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
105*6aa10938SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
106*6aa10938SRob Bradford    - [Contributors](#contributors-11)
107198bd551SRob Bradford- [v0.10.0](#v0100)
108198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
109198bd551SRob Bradford    - [Memory Zones](#memory-zones)
110198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
111198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
112*6aa10938SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
113*6aa10938SRob Bradford    - [Contributors](#contributors-12)
114d714cf81SRob Bradford- [v0.9.0](#v090)
115d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
116d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
117d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
118d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
119d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
120d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
121d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
122d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
123d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
124d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
125198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
126*6aa10938SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
127*6aa10938SRob Bradford    - [Contributors](#contributors-13)
128d714cf81SRob Bradford- [v0.8.0](#v080)
129d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
130d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
131d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
132d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
133d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
134*6aa10938SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
135d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
136*6aa10938SRob Bradford    - [Contributors](#contributors-14)
13796be8229SRob Bradford- [v0.7.0](#v070)
13896be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
13996be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
14096be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
14196be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
14296be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
14396be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
14496be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
14552b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
146*6aa10938SRob Bradford    - [Contributors](#contributors-15)
14703cb26ccSSamuel Ortiz- [v0.6.0](#v060)
14803cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
14903cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
15003cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
15103cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
15203cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
153*6aa10938SRob Bradford    - [Contributors](#contributors-16)
15494f2fc33SRob Bradford- [v0.5.1](#v051)
1552f395e60SSamuel Ortiz- [v0.5.0](#v050)
15694f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
15794f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
15894f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
15994f2fc33SRob Bradford    - [Development Tools](#development-tools)
16094f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
161*6aa10938SRob Bradford    - [Contributors](#contributors-17)
162cec884e8SSamuel Ortiz- [v0.4.0](#v040)
16394f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
16494f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
16594f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
16694f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
16794f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
16894f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
16994f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
170*6aa10938SRob Bradford    - [Contributors](#contributors-18)
1718e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
17294f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
17394f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
17494f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
17594f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
17694f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
17794f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
17894f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
17994f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
1807688e6e2SSamuel Ortiz- [v0.2.0](#v020)
18194f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
18294f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
18394f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
18494f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
18594f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
18694f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
1877688e6e2SSamuel Ortiz- [v0.1.0](#v010)
18894f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
18994f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
19094f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
19194f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
19294f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
19394f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
19494f2fc33SRob Bradford    - [Unit testing](#unit-testing)
19594f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
19694f2fc33SRob Bradford
197*6aa10938SRob Bradford# v22.0
198*6aa10938SRob Bradford
199*6aa10938SRob BradfordThis release has been tracked through the [v21.0
200*6aa10938SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
201*6aa10938SRob Bradford
202*6aa10938SRob Bradford### GDB Debug Stub Support
203*6aa10938SRob Bradford
204*6aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
205*6aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
206*6aa10938SRob Bradfordthe [gdb
207*6aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
208*6aa10938SRob Bradford
209*6aa10938SRob Bradford
210*6aa10938SRob Bradford### `virtio-iommu` Backed Segments
211*6aa10938SRob Bradford
212*6aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
213*6aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
214*6aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
215*6aa10938SRob Bradford
216*6aa10938SRob Bradford### Before Boot Configuration Changes
217*6aa10938SRob Bradford
218*6aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
219*6aa10938SRob Bradfordresize) before the VM is booted.
220*6aa10938SRob Bradford
221*6aa10938SRob Bradford
222*6aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
223*6aa10938SRob Bradford
224*6aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
225*6aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
226*6aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
227*6aa10938SRob Bradfordmemory density.
228*6aa10938SRob Bradford
229*6aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
230*6aa10938SRob Bradford
231*6aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
232*6aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
233*6aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
234*6aa10938SRob Bradfordhas been updated for this usage.
235*6aa10938SRob Bradford
236*6aa10938SRob Bradford### PMU Support for AArch64
237*6aa10938SRob Bradford
238*6aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
239*6aa10938SRob Bradfordexposed automatically if available from the host.
240*6aa10938SRob Bradford
241*6aa10938SRob Bradford### Documentation Under CC-BY-4.0 Licese
242*6aa10938SRob Bradford
243*6aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
244*6aa10938SRob BradfordInternational" license which is aligned with the project charter under the
245*6aa10938SRob BradfordLinux Foundation.
246*6aa10938SRob Bradford
247*6aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
248*6aa10938SRob Bradford
249*6aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
250*6aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
251*6aa10938SRob Bradfordversion.
252*6aa10938SRob Bradford
253*6aa10938SRob Bradford### Notable Bug Fixes
254*6aa10938SRob Bradford
255*6aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
256*6aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
257*6aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
258*6aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
259*6aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
260*6aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
261*6aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
262*6aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
263*6aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
264*6aa10938SRob Bradford
265*6aa10938SRob Bradford### Contributors
266*6aa10938SRob Bradford
267*6aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
268*6aa10938SRob Bradford
269*6aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
270*6aa10938SRob Bradford* Barret Rhoden <brho@google.com>
271*6aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
272*6aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
273*6aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
274*6aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
275*6aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
276*6aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
277*6aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
278*6aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
279*6aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
280*6aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
281*6aa10938SRob Bradford
28295ca7997SRob Bradford# v21.0
28395ca7997SRob Bradford
28495ca7997SRob BradfordThis release has been tracked through the [v21.0
28595ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
28695ca7997SRob Bradford
28795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
28895ca7997SRob Bradford
289*6aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
290*6aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
291*6aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
292*6aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
293*6aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
29495ca7997SRob Bradford
29595ca7997SRob Bradford### Recommended Kernel is Now 5.15
29695ca7997SRob Bradford
297*6aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
298*6aa10938SRob Bradfordis now 5.15. (#3530)
29995ca7997SRob Bradford
30095ca7997SRob Bradford### Notable Bug fixes
30195ca7997SRob Bradford
30295ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
30395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
30495ca7997SRob Bradford* Support live migration within firmware (#3586)
30595ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
30695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
30795ca7997SRob Bradford
30895ca7997SRob Bradford### Contributors
30995ca7997SRob Bradford
31095ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
31195ca7997SRob Bradford
31295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
31395ca7997SRob Bradford* Barret Rhoden <brho@google.com>
31495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
31595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
31695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
31795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
31895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
31995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
32095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
32195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
32295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
32395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
32495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
32595ca7997SRob Bradford
32695ca7997SRob Bradford# v20.2
32795ca7997SRob Bradford
32895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
32995ca7997SRob Bradford
33095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
33195ca7997SRob Bradford  when this fails due to older kernel (#3456)
33295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
33395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
33495ca7997SRob Bradford  (#3496)
33595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
33695ca7997SRob Bradford
33795ca7997SRob Bradford# v20.1
33895ca7997SRob Bradford
33995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
34095ca7997SRob Bradford
34195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
34295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
34395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
34495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
34595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
34695ca7997SRob Bradford
3477fc0776aSSebastien Boeuf# v20.0
3487fc0776aSSebastien Boeuf
3497fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
3507fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
3517fc0776aSSebastien Boeuf
3527fc0776aSSebastien Boeuf### Multiple PCI segments support
3537fc0776aSSebastien Boeuf
3547fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
3557fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
3567fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
3577fc0776aSSebastien Boeuf
3587fc0776aSSebastien Boeuf### CPU pinning
3597fc0776aSSebastien Boeuf
3607fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
3617fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
3627fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
3637fc0776aSSebastien Boeuf
3647fc0776aSSebastien Boeuf### Improved VFIO support
3657fc0776aSSebastien Boeuf
3667fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
3677fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
3687fc0776aSSebastien Boeufthe passthrough device.
3697fc0776aSSebastien Boeuf
3707fc0776aSSebastien Boeuf### Safer code
3717fc0776aSSebastien Boeuf
3727fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
3737fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
3747fc0776aSSebastien Boeufunsafe sections are safe to use.
3757fc0776aSSebastien Boeuf
3767fc0776aSSebastien Boeuf### Extended documentation
3777fc0776aSSebastien Boeuf
3787fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
3797fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
3807fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
3817fc0776aSSebastien Boeuf
3827fc0776aSSebastien Boeuf### Notable bug fixes
3837fc0776aSSebastien Boeuf
3847fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
3857fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
3867fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
3877fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
3887fc0776aSSebastien Boeuf
3897fc0776aSSebastien Boeuf### Contributors
3907fc0776aSSebastien Boeuf
3917fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
3927fc0776aSSebastien Boeuf
3937fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
3947fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
3957fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
3967fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
3977fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
3987fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
3997fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
4007fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
4017fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
4027fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
4037fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
4047fc0776aSSebastien Boeuf
405d00eb4aaSRob Bradford# v19.0
406d00eb4aaSRob Bradford
407d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
408d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
409d00eb4aaSRob Bradford
410d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
411d00eb4aaSRob Bradford
412d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
413d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
414d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
415d00eb4aaSRob Bradford
416d00eb4aaSRob Bradford### PCI boot time optimisations
417d00eb4aaSRob Bradford
418d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
419d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
420d00eb4aaSRob Bradford
421d00eb4aaSRob Bradford### Improved TDX support
422d00eb4aaSRob Bradford
423d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
424d00eb4aaSRob Bradfordexposed via the firmware to the guest.
425d00eb4aaSRob Bradford
426d00eb4aaSRob Bradford### Live migration enhancements
427d00eb4aaSRob Bradford
428d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
429d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
430d00eb4aaSRob Bradfordmigration.
431d00eb4aaSRob Bradford
432d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
433d00eb4aaSRob Bradford
434d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
435d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
436d00eb4aaSRob Bradford
437d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
438d00eb4aaSRob Bradford
439d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
440d00eb4aaSRob Bradford
441d00eb4aaSRob Bradford### Notable bug fixes
442d00eb4aaSRob Bradford
443d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
444d00eb4aaSRob Bradford  snapshot/restore (#3165)
445d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
446d00eb4aaSRob Bradford  (#3078 #3113)
447d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
448d00eb4aaSRob Bradford  the underlying crate (#3157)
449d00eb4aaSRob Bradford
450d00eb4aaSRob Bradford### Contributors
451d00eb4aaSRob Bradford
452d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
453d00eb4aaSRob Bradford
454d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
455d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
456d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
457d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
458d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
459d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
460d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
461d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
462d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
463d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
464d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
465d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
466d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
467d00eb4aaSRob Bradford
4682c4f8d22SRob Bradford# v18.0
4692c4f8d22SRob Bradford
4702c4f8d22SRob BradfordThis release has been tracked through the [v18.0
4712c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
4722c4f8d22SRob Bradford
4732c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
4742c4f8d22SRob Bradford
4752c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
4762c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
4772c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
4782c4f8d22SRob Bradford
4792c4f8d22SRob Bradford### Migration support for `vhost-user` devices
4802c4f8d22SRob Bradford
4812c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
4822c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
4832c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
4842c4f8d22SRob Bradford
4852c4f8d22SRob Bradford### VHDX disk image support
4862c4f8d22SRob Bradford
4872c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
4882c4f8d22SRob Bradford
4892c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
4902c4f8d22SRob Bradford
4912c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
4922c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
4932c4f8d22SRob Bradford
4942c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
4952c4f8d22SRob Bradford
4962c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
4972c4f8d22SRob Bradford
4982c4f8d22SRob Bradford### Live migration on MSHV hypervisor
4992c4f8d22SRob Bradford
5002c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
5012c4f8d22SRob Bradfordefficient tracking of dirty pages.
5022c4f8d22SRob Bradford
5032c4f8d22SRob Bradford### AArch64 CPU topology support
5042c4f8d22SRob Bradford
5052c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
5062c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
5072c4f8d22SRob Bradfordtree.
5082c4f8d22SRob Bradford
5092c4f8d22SRob Bradford### Power button support on AArch64
5102c4f8d22SRob Bradford
5112c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
5122c4f8d22SRob Bradfordis now supported when running on AArch64.
5132c4f8d22SRob Bradford
5142c4f8d22SRob Bradford### Notable bug fixes
5152c4f8d22SRob Bradford
5162c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
5172c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
5182c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
5192c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
5202c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
5212c4f8d22SRob Bradford
5222c4f8d22SRob Bradford### Contributors
5232c4f8d22SRob Bradford
5242c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
5252c4f8d22SRob Bradford
5262c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
5272c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
5282c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
5292c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
5302c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
5312c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
5322c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
5332c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
5342c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
5352c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
5362c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
5372c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
5382c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
5392c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
540e6db5999SRob Bradford
541e6db5999SRob Bradford# v17.0
542e6db5999SRob Bradford
543e6db5999SRob BradfordThis release has been tracked through the [v17.0
544e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
545e6db5999SRob Bradford
546e6db5999SRob Bradford### ARM64 NUMA support using ACPI
547e6db5999SRob Bradford
548e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
549e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
550e6db5999SRob Bradford
551e6db5999SRob Bradford### `Seccomp` support for MSHV backend
552e6db5999SRob Bradford
553e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
554e6db5999SRob Bradfordhypervisor backend.
555e6db5999SRob Bradford
556e6db5999SRob Bradford### Hotplug of `macvtap` devices
557e6db5999SRob Bradford
558e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
559e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
560e6db5999SRob Bradfordtool supports this functionality when adding a network device.
561e6db5999SRob Bradford
562e6db5999SRob Bradford### Improved SGX support
563e6db5999SRob Bradford
564e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
565e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
566e6db5999SRob Bradford
567e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
568e6db5999SRob Bradford
569e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
570e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
571e6db5999SRob Bradford
572e6db5999SRob Bradford### Notable bug fixes
573e6db5999SRob Bradford
574e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
575e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
576e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
577e6db5999SRob Bradford(#2833).
578e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
579e6db5999SRob Bradford
580e6db5999SRob Bradford### Contributors
581e6db5999SRob Bradford
582e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
583e6db5999SRob Bradford
584e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
585e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
586e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
587e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
588e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
589e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
590e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
591e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
592e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
593e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
594e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
595e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
596e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
597e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
598e6db5999SRob Bradford
5995ed8e01fSRob Bradford# v16.0
6005ed8e01fSRob Bradford
6015ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
6025ed8e01fSRob Bradford
6035ed8e01fSRob Bradford### Improved live migration support
6045ed8e01fSRob Bradford
6055ed8e01fSRob 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.
6065ed8e01fSRob Bradford
6075ed8e01fSRob Bradford### Improved `vhost-user` support
6085ed8e01fSRob Bradford
6095ed8e01fSRob 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.
6105ed8e01fSRob Bradford
6115ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
6125ed8e01fSRob Bradford
6135ed8e01fSRob 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.
6145ed8e01fSRob Bradford
6155ed8e01fSRob Bradford### Notable bug fixes
6165ed8e01fSRob Bradford
6175ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
6185ed8e01fSRob 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).
6195ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
6205ed8e01fSRob Bradford
6215ed8e01fSRob Bradford### Removed functionality
6225ed8e01fSRob Bradford
6235ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
6245ed8e01fSRob Bradford
6255ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
6265ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
6275ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
6285ed8e01fSRob Bradford
6295ed8e01fSRob Bradford### Contributors
6305ed8e01fSRob Bradford
6315ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
6325ed8e01fSRob Bradford
6335ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
6345ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
6355ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
6365ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
6375ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
6385ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
6395ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
6405ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
6415ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
6425ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
6435ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
6445ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
6455ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
6465ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
6475ed8e01fSRob Bradford
64830a01277SRob Bradford# v15.0
64930a01277SRob Bradford
65030a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
65130a01277SRob Bradford
65230a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
65330a01277SRob Bradford
65430a01277SRob Bradford### Version numbering and stability guarantees
65530a01277SRob Bradford
65630a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
65730a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
65830a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
65930a01277SRob Bradford
66030a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
66130a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
66230a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
66330a01277SRob Bradford  will be documented in the release notes.
66430a01277SRob Bradford* Point releases will be made between individual releases where there are
66530a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
66630a01277SRob Bradford
66730a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
66830a01277SRob Bradford
66930a01277SRob Bradford* Snapshot/restore is not supported across different versions
67030a01277SRob Bradford* Live migration is not supported across different versions
67130a01277SRob Bradford* The following features are considered experimental and may change
67230a01277SRob Bradford  substantially between releases: TDX, SGX.
67330a01277SRob Bradford
67430a01277SRob Bradford### Network device rate limiting
67530a01277SRob Bradford
67630a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
67730a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
67830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
67930a01277SRob Bradford
68030a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
68130a01277SRob Bradford
68230a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
68330a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
68430a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
68530a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
68630a01277SRob Bradford
68730a01277SRob Bradford### `--api-socket` supports file descriptor parameter
68830a01277SRob Bradford
68930a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
69030a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
69130a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
69230a01277SRob Bradford
69330a01277SRob Bradford### Bug fixes
69430a01277SRob Bradford
69530a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
69630a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
69730a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
69830a01277SRob Bradford  reprogram them (#1797,#1798)
69930a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
70030a01277SRob Bradford  exhaustion on the host) (#2517)
70130a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
70230a01277SRob Bradford  prevents snapshot & restore working (#2535)
70330a01277SRob Bradford
70430a01277SRob Bradford### Deprecations
70530a01277SRob Bradford
70630a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
70730a01277SRob Bradford
70830a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
70930a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
71030a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
71130a01277SRob Bradford
71230a01277SRob Bradford### Contributors
71330a01277SRob Bradford
71430a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
71530a01277SRob Bradford
71630a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
71730a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
71830a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
71930a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
72030a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
72130a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
72230a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
72330a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
72430a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
72530a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
72630a01277SRob Bradford* William Douglas <william.douglas@intel.com>
72730a01277SRob Bradford
72830a01277SRob Bradford# v0.14.1
72930a01277SRob Bradford
73030a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
73130a01277SRob Bradfordin this release:
73230a01277SRob Bradford
73330a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
73430a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
73530a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
73630a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
73730a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
73830a01277SRob Bradford
73940c63dcfSRob Bradford# v0.14.0
74040c63dcfSRob Bradford
74140c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
74240c63dcfSRob Bradford
74340c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
74440c63dcfSRob Bradford
74540c63dcfSRob Bradford### Structured event monitoring
74640c63dcfSRob Bradford
74740c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
74840c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
74940c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
75040c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
75140c63dcfSRob BradfordHypervisor API surface.
75240c63dcfSRob Bradford
75340c63dcfSRob Bradford### MSHV improvements
75440c63dcfSRob Bradford
75540c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
75640c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
75740c63dcfSRob Bradfordthe MSHV support.
75840c63dcfSRob Bradford
75940c63dcfSRob Bradford### Improved aarch64 platform
76040c63dcfSRob Bradford
76140c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
76240c63dcfSRob BradfordVM including an enhanced serial UART.
76340c63dcfSRob Bradford
76440c63dcfSRob Bradford### Updated hotplug documentation
76540c63dcfSRob Bradford
76640c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
76740c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
76840c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
76940c63dcfSRob Bradford
77040c63dcfSRob Bradford### PTY control for serial and `virtio-console`
77140c63dcfSRob Bradford
77240c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
77340c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
77440c63dcfSRob BradfordPTY subsystem.
77540c63dcfSRob Bradford
77640c63dcfSRob Bradford### Block device rate limiting
77740c63dcfSRob Bradford
77840c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
77940c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
78030a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
78140c63dcfSRob Bradford
78240c63dcfSRob Bradford
78340c63dcfSRob Bradford### Deprecations
78440c63dcfSRob Bradford
78540c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
78640c63dcfSRob Bradford
78740c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
78840c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
78940c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
79040c63dcfSRob Bradford
79140c63dcfSRob Bradford
79240c63dcfSRob Bradford### Contributors
79340c63dcfSRob Bradford
79440c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
79540c63dcfSRob Bradfordsome new faces.
79640c63dcfSRob Bradford
79740c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
79840c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
79940c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
80040c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
80140c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
80240c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
80340c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
80440c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
80540c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
80640c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
80740c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
80840c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
80940c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
81040c63dcfSRob Bradford
811f58b6f84SRob Bradford# v0.13.0
812f58b6f84SRob Bradford
813f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
814f58b6f84SRob Bradford
815f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
816f58b6f84SRob Bradford
817f58b6f84SRob Bradford### Wider VFIO device support
818f58b6f84SRob Bradford
819f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
820f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
821f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
822f58b6f84SRob Bradforddrivers.
823f58b6f84SRob Bradford
82440c63dcfSRob Bradford### Improved huge page support
825f58b6f84SRob Bradford
826f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
827f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
828f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
829f58b6f84SRob Bradforddesired size in their pool.
830f58b6f84SRob Bradford
831f58b6f84SRob Bradford### MACvTAP support
832f58b6f84SRob Bradford
833f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
834f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
835f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
836f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
837f58b6f84SRob Bradford
838f58b6f84SRob Bradford### VHD disk image support
839f58b6f84SRob Bradford
840f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
841f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
842f58b6f84SRob Bradford
843f58b6f84SRob Bradford### Improved Virtio device threading
844f58b6f84SRob Bradford
845f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
846f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
847f58b6f84SRob Bradfordpredictable name derived from the device id.
848f58b6f84SRob Bradford
849f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
850f58b6f84SRob Bradford
851f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
852f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
853f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
854f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
855f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
856f58b6f84SRob Bradford
857f58b6f84SRob Bradford### Contributors
858f58b6f84SRob Bradford
859f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
860f58b6f84SRob Bradfordsome new faces.
861f58b6f84SRob Bradford
862f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
863f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
864f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
865f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
866f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
867f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
868f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
869f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
870f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
871f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
872f58b6f84SRob Bradford
873d42b5084SRob Bradford# v0.12.0
874d42b5084SRob Bradford
875d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
876d42b5084SRob Bradford
877d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
878d42b5084SRob Bradford
879d42b5084SRob Bradford### ARM64 enhancements
880d42b5084SRob Bradford
881d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
882d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
883d42b5084SRob Bradford
884d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
885d42b5084SRob Bradford
886d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
887d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
888d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
889d42b5084SRob Bradfordremoved.
890d42b5084SRob Bradford
891d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
892d42b5084SRob Bradford
893d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
894d42b5084SRob Bradfordinstead hosted in [it's own
895d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
896d42b5084SRob Bradford
897d42b5084SRob Bradford### Enhanced "info" API
898d42b5084SRob Bradford
899d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
900d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
901d42b5084SRob Bradford
902d42b5084SRob Bradford### Contributors
903d42b5084SRob Bradford
904d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
905d42b5084SRob Bradford
906d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
907d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
908d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
909d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
910d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
911d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
912d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
913d42b5084SRob Bradford
9147dcd3affSRob Bradford# v0.11.0
9157dcd3affSRob Bradford
9167dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
9177dcd3affSRob Bradford
9187dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
9197dcd3affSRob Bradford
9207dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
9217dcd3affSRob Bradford
9227dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
9237dcd3affSRob Bradfordbe used for a significantly higher performance block device.
9247dcd3affSRob Bradford
9257dcd3affSRob Bradford### Windows Guest Support
9267dcd3affSRob Bradford
9277dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
9287dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
9297dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
9307dcd3affSRob Bradforddocumentation](docs/windows.md).
9317dcd3affSRob Bradford
9327dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
9337dcd3affSRob Bradford
9347dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
9357dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
9367dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
9377dcd3affSRob Bradford
938d00eb4aaSRob Bradford### `virtio-mmio` Removal
9397dcd3affSRob Bradford
9407dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
9417dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
9427dcd3affSRob Bradfordreduce the testing burden of the project.
9437dcd3affSRob Bradford
9447dcd3affSRob Bradford### Snapshot/Restore support for ARM64
9457dcd3affSRob Bradford
9467dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
9477dcd3affSRob Bradfordimplemented.
9487dcd3affSRob Bradford
9497dcd3affSRob Bradford### Improved Linux Boot Time
9507dcd3affSRob Bradford
9517dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
9527dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
9537dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
9547dcd3affSRob Bradford
9557dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
9567dcd3affSRob Bradford
9577dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
9587dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
9597dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
9607dcd3affSRob Bradfordresources.
9617dcd3affSRob Bradford
9627dcd3affSRob Bradford### Default Log Level Changed
9637dcd3affSRob Bradford
9647dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
9657dcd3affSRob Bradfordeasier to see potential issues. New [logging
9667dcd3affSRob Bradforddocumentation](docs/logging) was also added.
9677dcd3affSRob Bradford
9687dcd3affSRob Bradford### New `--balloon` Parameter Added
9697dcd3affSRob Bradford
9707dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
9717dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
9727dcd3affSRob Bradfordcontrols without overloading `--memory`.
9737dcd3affSRob Bradford
9747dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
9757dcd3affSRob Bradford
9767dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
9777dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
9787dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
9797dcd3affSRob Bradford
9807dcd3affSRob Bradford### Notable Bug Fixes
9817dcd3affSRob Bradford
9827dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
9837dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
9847dcd3affSRob Bradford* CPU identification string is now exposed to the guest
9857dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
9867dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
9877dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
9887dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
9897dcd3affSRob Bradford  can be used (#1803)
9907dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
9917dcd3affSRob Bradford  correctly
9927dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
9937dcd3affSRob Bradford  correctly
9947dcd3affSRob Bradford
9957dcd3affSRob Bradford### Contributors
9967dcd3affSRob Bradford
9977dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
9987dcd3affSRob Bradford
9997dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
10007dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
10017dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
10027dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
10037dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
10047dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
10057dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
10067dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
10077dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
10087dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
10097dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
10107dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
10117dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
10127dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10137dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
10147dcd3affSRob Bradford
10157dcd3affSRob Bradford
1016198bd551SRob Bradford# v0.10.0
1017198bd551SRob Bradford
1018198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1019198bd551SRob Bradford
1020198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1021198bd551SRob Bradford
1022198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1023198bd551SRob Bradford
1024198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1025198bd551SRob Bradford
1026198bd551SRob Bradford### Memory Zones
1027198bd551SRob Bradford
1028198bd551SRob 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).
1029198bd551SRob Bradford
1030198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1031198bd551SRob Bradford
1032198bd551SRob 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`.
1033198bd551SRob Bradford
1034198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1035198bd551SRob Bradford
1036198bd551SRob 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.
1037198bd551SRob Bradford
1038198bd551SRob Bradford### Notable Bug Fixes
1039198bd551SRob Bradford
1040198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1041198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1042198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1043198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1044198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1045198bd551SRob Bradford
1046198bd551SRob Bradford### Contributors
1047198bd551SRob Bradford
1048198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1049198bd551SRob Bradford
1050198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1051198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1052198bd551SRob Bradford* Anatol Belski <ab@php.net>
1053198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1054198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1055198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1056198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1057198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1058198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1059198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1060198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1061198bd551SRob Bradford
1062d714cf81SRob Bradford# v0.9.0
1063d714cf81SRob Bradford
1064d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1065d714cf81SRob Bradford
1066d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1067d714cf81SRob Bradford
1068d714cf81SRob Bradford### `io_uring` Based Block Device Support
1069d714cf81SRob Bradford
1070d714cf81SRob 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.
1071d714cf81SRob Bradford
1072d714cf81SRob Bradford### Block and Network Device Statistics
1073d714cf81SRob Bradford
1074d714cf81SRob 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.
1075d714cf81SRob Bradford
1076d714cf81SRob Bradford### HTTP API Responses
1077d714cf81SRob Bradford
1078d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1079d714cf81SRob Bradford
1080d714cf81SRob Bradford### CPU Topology
1081d714cf81SRob Bradford
1082d714cf81SRob 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.
1083d714cf81SRob Bradford
1084d714cf81SRob Bradford### Release Build Optimization
1085d714cf81SRob Bradford
1086d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1087d714cf81SRob Bradford
1088d714cf81SRob Bradford### Hypervisor Abstraction
1089d714cf81SRob Bradford
1090d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1091d714cf81SRob Bradford
1092d714cf81SRob Bradford### Snapshot/Restore Improvements
1093d714cf81SRob Bradford
1094d714cf81SRob 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.
1095d714cf81SRob Bradford
1096d714cf81SRob Bradford### Virtio Memory Ballooning Support
1097d714cf81SRob Bradford
1098d714cf81SRob 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.
1099d714cf81SRob Bradford
1100d714cf81SRob Bradford### Enhancements to ARM64 Support
1101d714cf81SRob Bradford
1102d714cf81SRob 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.
1103d714cf81SRob Bradford
1104d714cf81SRob Bradford### Intel SGX Support
1105d714cf81SRob Bradford
1106d714cf81SRob 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).
1107d714cf81SRob Bradford
1108d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1109d714cf81SRob Bradford
1110d714cf81SRob 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.
1111d714cf81SRob Bradford
1112d714cf81SRob Bradford### Notable Bug Fixes
1113d714cf81SRob Bradford
1114d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1115d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1116d714cf81SRob 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).
1117d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1118d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1119d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1120d714cf81SRob Bradford
1121d714cf81SRob Bradford### Contributors
1122d714cf81SRob Bradford
1123d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1124d714cf81SRob Bradford
1125d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1126d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1127d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1128d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1129d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1130d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1131d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1132d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1133d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1134d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1135d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1136d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1137d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1138d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1139d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1140d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1141d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1142d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1143d714cf81SRob Bradford
1144d714cf81SRob Bradford
114552b83969SRob Bradford# v0.8.0
114652b83969SRob Bradford
114752b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
114852b83969SRob Bradford
114952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
115052b83969SRob Bradford
115152b83969SRob Bradford### Experimental Snapshot and Restore Support
115252b83969SRob Bradford
115352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
115452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
115552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
115652b83969SRob Bradfordoriginal VM at the point it was paused.
115752b83969SRob Bradford
115852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
115952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
116052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
116152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
116252b83969SRob Bradford(#1176).
116352b83969SRob Bradford
116452b83969SRob Bradford### Experimental ARM64 Support
116552b83969SRob Bradford
116652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
116752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
116852b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
116952b83969SRob Bradford
117052b83969SRob Bradford### Support for Using 5-level Paging in Guests
117152b83969SRob Bradford
117252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
117352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
117452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
117552b83969SRob Bradfordwork due to current limitations in the PVH boot process.
117652b83969SRob Bradford
117752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
117852b83969SRob Bradford
117952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
118052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
118152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
118252b83969SRob Bradfordthe guest must service.
118352b83969SRob Bradford
118452b83969SRob Bradford### `vhost_user_fs` Improvements
118552b83969SRob Bradford
118652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
118752b83969SRob Bradford
118852b83969SRob Bradford
118952b83969SRob Bradford### Notable Bug Fixes
119052b83969SRob Bradford
119152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
119252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
119352b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
119452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
119552b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
119652b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
119752b83969SRob Bradford  #1216).
119852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
119952b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
120052b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
120152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
120252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
120352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
120452b83969SRob Bradford  (#751).
120552b83969SRob Bradford
120652b83969SRob Bradford### Command Line and API Changes
120752b83969SRob Bradford
120852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
120952b83969SRob Bradford
121052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
121152b83969SRob Bradford  rather than `sock` in some cases.
121252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
121352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
121452b83969SRob Bradford  offered for negotiation.
121552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
121652b83969SRob Bradford  address for the `tap` device on the host.
121752b83969SRob Bradford
121852b83969SRob Bradford### Contributors
121952b83969SRob Bradford
122052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
122152b83969SRob Bradford
122252b83969SRob Bradford* Anatol Belski <ab@php.net>
122352b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
122452b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
122552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
122652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
122752b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
122852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
122952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
123052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
123152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
123252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
123352b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
123452b83969SRob Bradford
123596be8229SRob Bradford# v0.7.0
123696be8229SRob Bradford
123796be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
123896be8229SRob Bradford
123996be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
124096be8229SRob Bradford
124196be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
124296be8229SRob Bradford
124396be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
124496be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
124596be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
12465c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
124796be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
124896be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
124996be8229SRob Bradforddevices to ease their removal.
125096be8229SRob Bradford
125196be8229SRob Bradford### Alternative `libc` Support
125296be8229SRob Bradford
125396be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
125496be8229SRob Bradfordcontains a static binary compiled using that toolchain.
125596be8229SRob Bradford
125696be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
125796be8229SRob Bradford
125896be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
125996be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
126096be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
126196be8229SRob Bradfordis passed when the devices are created.
126296be8229SRob Bradford
126396be8229SRob Bradford### Initial RamFS Support
126496be8229SRob Bradford
126596be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
126696be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
126796be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
126896be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
126996be8229SRob Bradfordminimal image.
127096be8229SRob Bradford
127196be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
127296be8229SRob Bradford
127396be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
127496be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
127596be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
127696be8229SRob Bradfordrequires kernel patches to be able to support it.
127796be8229SRob Bradford
127896be8229SRob Bradford### `Seccomp` Sandboxing
127996be8229SRob Bradford
128096be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
128196be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
128296be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
128396be8229SRob Bradford
128496be8229SRob Bradford### Updated Distribution Support
128596be8229SRob Bradford
128696be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
128796be8229SRob Bradforddistributions and is part of our regular testing programme.
128896be8229SRob Bradford
128996be8229SRob Bradford### Command Line and API Changes
129096be8229SRob Bradford
129196be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
129296be8229SRob Bradford
129396be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
129496be8229SRob Bradford  If no name is specified the VMM chooses one.
129596be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
129696be8229SRob Bradford  memory instead of providing a path.
129796be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
129896be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
129996be8229SRob Bradford  option and replaced it with a single optional field.
130096be8229SRob Bradford* There is enhanced validation of the command line and API provided
130196be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
130296be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
130396be8229SRob Bradford  device.
130496be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
130596be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
130696be8229SRob Bradford  has appropriate new HTTP endpoints too.
130796be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
130896be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
130996be8229SRob Bradford  to provide the equivalent of a read-only file.
131096be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
131196be8229SRob Bradford  with those used by `--disk`.
131296be8229SRob Bradford
131396be8229SRob Bradford### Contributors
131496be8229SRob Bradford
131596be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
131696be8229SRob Bradford
131796be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
131896be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
131996be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
132096be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
132196be8229SRob Bradford* Dean Sheather <dean@coder.com>
132296be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
132396be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
132496be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
132596be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
132696be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
132796be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
132896be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
132996be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
133096be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
133196be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
133296be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
133396be8229SRob Bradford
133403cb26ccSSamuel Ortiz# v0.6.0
133503cb26ccSSamuel Ortiz
133603cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
133703cb26ccSSamuel Ortiz
133803cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
133903cb26ccSSamuel Ortiz
134003cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
134103cb26ccSSamuel Ortiz
134203cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
134303cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
134403cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
134503cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
134603cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
134703cb26ccSSamuel Ortiz
134803cb26ccSSamuel Ortiz### Shared Filesystem Improvements
134903cb26ccSSamuel Ortiz
135003cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
135103cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
135203cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
135303cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
135403cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
135503cb26ccSSamuel Ortiz
135603cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
135703cb26ccSSamuel Ortiz
135803cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
135903cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
136003cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
136103cb26ccSSamuel Ortizinto their own, separate processes.
13625c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
136303cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
136403cb26ccSSamuel Ortiz
136503cb26ccSSamuel Ortiz### Command Line Interface
136603cb26ccSSamuel Ortiz
136703cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
136837a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
136937a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
137037a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
137137a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
137237a2c13aSAlyssa Rossis created with each build and available e.g. at
137303cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
137403cb26ccSSamuel Ortiz
137503cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
137603cb26ccSSamuel Ortizcommands.
137703cb26ccSSamuel Ortiz
137803cb26ccSSamuel Ortiz### PVH Boot
137903cb26ccSSamuel Ortiz
138003cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
138103cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
138203cb26ccSSamuel Ortiz
138303cb26ccSSamuel Ortiz### Contributors
138403cb26ccSSamuel Ortiz
138503cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
138603cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
138703cb26ccSSamuel Ortiz
138803cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
138903cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
139003cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
139103cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
139203cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
139303cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
139403cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
139503cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
139603cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
139703cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
139803cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
139903cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
140003cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
140103cb26ccSSamuel Ortiz
140294f2fc33SRob Bradford# v0.5.1
140394f2fc33SRob Bradford
140494f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
140594f2fc33SRob Bradford
140694f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
140794f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
140894f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
140994f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
141094f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
14118e8a7b6dSSamuel Ortiz
14122f395e60SSamuel Ortiz# v0.5.0
14132f395e60SSamuel Ortiz
14142f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
14152f395e60SSamuel Ortiz
14162f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
14172f395e60SSamuel Ortiz
14182f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
14192f395e60SSamuel Ortiz
14202f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
14212f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
14222f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
14232f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
14242f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
14252f395e60SSamuel Ortiz
14262f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
14272f395e60SSamuel Ortiz
14282f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
14292f395e60SSamuel Ortiz
14302f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
14312f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
14322f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
14332f395e60SSamuel Ortiz
14342f395e60SSamuel Ortiz### New Interrupt Management Framework
14352f395e60SSamuel Ortiz
14362f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
14372f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
14382f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
14392f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
14402f395e60SSamuel Ortizvirtio ones.
14412f395e60SSamuel Ortiz
14422f395e60SSamuel Ortiz### Development Tools
14432f395e60SSamuel Ortiz
14442f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
14452f395e60SSamuel Ortizbuild, development and testing tools.
14462f395e60SSamuel OrtizSomehow similar to the excellent
14472f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
144837a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
14492f395e60SSamuel Ortiz
14502f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
14512f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
14522f395e60SSamuel Ortiz
14532f395e60SSamuel Ortiz### Kata Containers Integration
14542f395e60SSamuel Ortiz
14552f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
14562f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
14572f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
14582f395e60SSamuel Ortizintegrated into the project's CI.
14592f395e60SSamuel Ortiz
14602f395e60SSamuel Ortiz### Contributors
14612f395e60SSamuel Ortiz
14622f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
14632f395e60SSamuel Ortiz
14642f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
14652f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
14662f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
14672f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
14682f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
14692f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
14702f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
14712f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
14722f395e60SSamuel Ortiz
1473cec884e8SSamuel Ortiz# v0.4.0
1474cec884e8SSamuel Ortiz
1475cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
1476cec884e8SSamuel Ortiz
1477cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
1478cec884e8SSamuel Ortiz
1479cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
1480cec884e8SSamuel Ortiz
1481e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
1482cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
1483cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
1484cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
148537a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
1486cec884e8SSamuel Ortiz
1487cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
1488cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
1489cec884e8SSamuel Ortiz
1490cec884e8SSamuel Ortiz### Programmatic firmware tables generation
1491cec884e8SSamuel Ortiz
1492cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
1493cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
1494cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
1495cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
1496cec884e8SSamuel Ortiztables based on the VMM device model and topology.
1497cec884e8SSamuel Ortiz
1498cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
1499cec884e8SSamuel Ortiz
1500cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
1501cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
1502cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
1503cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
1504cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
1505cec884e8SSamuel Ortiz
1506cec884e8SSamuel Ortiz### Guest pause and resume
1507cec884e8SSamuel Ortiz
15085c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
1509cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
1510cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
1511cec884e8SSamuel Ortizand resume capabilities.
1512cec884e8SSamuel Ortiz
1513cec884e8SSamuel Ortiz### Userspace IOAPIC by default
1514cec884e8SSamuel Ortiz
1515cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
1516cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
1517cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
1518cec884e8SSamuel Ortizdefault.
1519cec884e8SSamuel Ortiz
1520cec884e8SSamuel Ortiz### PCI BAR reprogramming
1521cec884e8SSamuel Ortiz
1522cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
1523cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
1524cec884e8SSamuel Ortizreprogramming.
1525cec884e8SSamuel Ortiz
1526cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
1527cec884e8SSamuel Ortiz
1528cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
1529cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
1530cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
1531cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
1532cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1533cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
1534cec884e8SSamuel Ortiztemporarily fork.
1535cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
1536cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
1537cec884e8SSamuel Ortiz
1538cec884e8SSamuel Ortiz### Contributors
1539cec884e8SSamuel Ortiz
1540cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
1541cec884e8SSamuel Ortiz
1542cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
1543cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
1544cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1545cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
1546cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
1547cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
1548cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
1549cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
1550cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
1551cec884e8SSamuel Ortiz
15528e8a7b6dSSamuel Ortiz# v0.3.0
15538e8a7b6dSSamuel Ortiz
15548ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
15558e8a7b6dSSamuel Ortiz
15568e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
15578e8a7b6dSSamuel Ortiz
15588e8a7b6dSSamuel Ortiz### Block device offloading
15598e8a7b6dSSamuel Ortiz
15608e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
15618e8a7b6dSSamuel Ortizand we added support for
15628e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
15638e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
15648e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
15658e8a7b6dSSamuel Ortizbackend.
15668e8a7b6dSSamuel Ortiz
15678e8a7b6dSSamuel Ortiz### Network device backend
15688e8a7b6dSSamuel Ortiz
15698e8a7b6dSSamuel OrtizThe previous release provided support for
15708e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
15718e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
15728e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
15738e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
15748e8a7b6dSSamuel Ortiz
15758e8a7b6dSSamuel Ortiz### Virtual sockets
15768e8a7b6dSSamuel Ortiz
15778e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
15788e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
15798e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
15808e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
15818e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
15828e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
15838e8a7b6dSSamuel Ortiz
15848e8a7b6dSSamuel Ortiz### HTTP based API
15858e8a7b6dSSamuel Ortiz
15868e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
15878e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
15888e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
15898e8a7b6dSSamuel Ortiznext release cycle.
15908e8a7b6dSSamuel Ortiz
15918e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
15928e8a7b6dSSamuel Ortiz
15938e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
15948e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
15958e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
15968e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
15978e8a7b6dSSamuel Ortiz
15988e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
15998e8a7b6dSSamuel Ortiz
16008e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
160137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
160237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
16038e8a7b6dSSamuel Ortiz
16048e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
16058e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
16068e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
16078e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
16088e8a7b6dSSamuel Ortizsetting.
16098e8a7b6dSSamuel Ortiz
16108e8a7b6dSSamuel Ortiz### Ubuntu 19.10
16118e8a7b6dSSamuel Ortiz
16128ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
16138e8a7b6dSSamuel Ortizwe can now support the latest
16148e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
16158e8a7b6dSSamuel Ortiz
16168e8a7b6dSSamuel Ortiz### Large memory guests
16178e8a7b6dSSamuel Ortiz
16188e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
16198e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
16207688e6e2SSamuel Ortiz
1621d784ac29SSamuel Ortiz# v0.2.0
1622d784ac29SSamuel Ortiz
16238ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
1624d784ac29SSamuel Ortiz
1625d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
1626d784ac29SSamuel Ortiz
1627d784ac29SSamuel Ortiz### Network device offloading
1628d784ac29SSamuel Ortiz
1629d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
1630d784ac29SSamuel Ortizprocesses, we added support for
1631d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
1632d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
1633d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
1634d784ac29SSamuel Ortiz
1635d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
1636d784ac29SSamuel Ortiz
1637d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
1638d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
1639d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
1640d784ac29SSamuel Ortizcleanly reboot and shutdown.
1641d784ac29SSamuel Ortiz
1642d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
1643d784ac29SSamuel Ortizenabled by default.
1644d784ac29SSamuel Ortiz
1645d784ac29SSamuel Ortiz### Debug I/O port
1646d784ac29SSamuel Ortiz
1647d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
1648d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
1649d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
1650d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
165137a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
165237a2c13aSAlyssa Rossdetails.
1653d784ac29SSamuel Ortiz
1654d784ac29SSamuel Ortiz### Improved direct device assignment
1655d784ac29SSamuel Ortiz
1656d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
1657d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
1658d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
1659d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
1660d784ac29SSamuel Ortizdirectly assigned devices.
1661d784ac29SSamuel Ortiz
1662d784ac29SSamuel Ortiz### Improved shared filesystem
1663d784ac29SSamuel Ortiz
1664d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
1665d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
1666d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
1667d784ac29SSamuel Ortizmemory footprint.
1668d784ac29SSamuel Ortiz
1669d784ac29SSamuel Ortiz### Ubuntu bionic based CI
1670d784ac29SSamuel Ortiz
16718ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1672d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
1673d784ac29SSamuel Ortizour CI pipeline.
1674d784ac29SSamuel Ortiz
167593b77530SSamuel Ortiz# v0.1.0
167693b77530SSamuel Ortiz
16778ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
167893b77530SSamuel Ortiz
167993b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
168093b77530SSamuel Ortiz
168193b77530SSamuel Ortiz### Shared filesystem
168293b77530SSamuel Ortiz
168393b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
168493b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
168593b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
168693b77530SSamuel Ortiz
168737a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
168837a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
168993b77530SSamuel Ortiz
169093b77530SSamuel Ortiz### Initial direct device assignment support
169193b77530SSamuel Ortiz
169293b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
169393b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
169493b77530SSamuel Ortizphysical devices into its guest.
169593b77530SSamuel Ortiz
169637a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
169737a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
169893b77530SSamuel Ortiz
169993b77530SSamuel Ortiz### Userspace IOAPIC
170093b77530SSamuel Ortiz
170193b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
170293b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
170393b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
170493b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
170593b77530SSamuel Ortiz
170693b77530SSamuel Ortiz### Virtual persistent memory
170793b77530SSamuel Ortiz
170893b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
170993b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
171093b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
171193b77530SSamuel Ortiz
171293b77530SSamuel Ortiz### Linux kernel bzImage
171393b77530SSamuel Ortiz
171493b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
171593b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
171693b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
171793b77530SSamuel Ortizdistribution kernel image.
171893b77530SSamuel Ortiz
171993b77530SSamuel Ortiz### Console over virtio
172093b77530SSamuel Ortiz
172193b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
172293b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
172393b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
172493b77530SSamuel Ortizimplementation.
172593b77530SSamuel Ortiz
172693b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
172793b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
172893b77530SSamuel Ortiz`--serial tty --console off` from the command line.
172993b77530SSamuel Ortiz
173093b77530SSamuel Ortiz### Unit testing
173193b77530SSamuel Ortiz
173293b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
173393b77530SSamuel Ortiz
173493b77530SSamuel Ortiz### Integration tests parallelization
173593b77530SSamuel Ortiz
173693b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
173793b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
1738