xref: /cloud-hypervisor/release-notes.md (revision 0c9c56f5a6b6ec7290520eb1a3be020188ce99c3)
1*0c9c56f5SRob Bradford- [v23.0](#v230)
2*0c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
3*0c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
4*0c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
5*0c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
6*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
7*0c9c56f5SRob Bradford    - [Deprecations](#deprecations)
8*0c9c56f5SRob Bradford    - [Contributors](#contributors)
9*0c9c56f5SRob Bradford- [v22.1](#v221)
106aa10938SRob Bradford- [v22.0](#v220)
116aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
126aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
136aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
146aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
156aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
166aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
17*0c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
186aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
19*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
20*0c9c56f5SRob Bradford    - [Contributors](#contributors-1)
2195ca7997SRob Bradford- [v21.0](#v210)
2295ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
2395ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
24*0c9c56f5SRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-2)
25*0c9c56f5SRob Bradford    - [Contributors](#contributors-2)
2695ca7997SRob Bradford- [v20.2](#v202)
2795ca7997SRob Bradford- [v20.1](#v201)
287fc0776aSSebastien Boeuf- [v20.0](#v200)
297fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
307fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
317fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
327fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
337fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
34*0c9c56f5SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-3)
35*0c9c56f5SRob Bradford    - [Contributors](#contributors-3)
36d00eb4aaSRob Bradford- [v19.0](#v190)
37d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
38d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
39d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
40d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
41d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
42d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
43*0c9c56f5SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-4)
44*0c9c56f5SRob Bradford    - [Contributors](#contributors-4)
452c4f8d22SRob Bradford- [v18.0](#v180)
462c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
472c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
482c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
492c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
502c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
512c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
522c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
532c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
54*0c9c56f5SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-5)
55*0c9c56f5SRob Bradford    - [Contributors](#contributors-5)
56e6db5999SRob Bradford- [v17.0](#v170)
57e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
58e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
59e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
60e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
61e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
62*0c9c56f5SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-6)
63*0c9c56f5SRob Bradford    - [Contributors](#contributors-6)
645ed8e01fSRob Bradford- [v16.0](#v160)
655ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
665ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
675ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
68*0c9c56f5SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-7)
695ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
70*0c9c56f5SRob Bradford    - [Contributors](#contributors-7)
7130a01277SRob Bradford- [v15.0](#v150)
7230a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
7330a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
7430a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
7530a01277SRob Bradford    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
7630a01277SRob Bradford    - [Bug fixes](#bug-fixes)
77*0c9c56f5SRob Bradford    - [Deprecations](#deprecations-1)
78*0c9c56f5SRob Bradford    - [Contributors](#contributors-8)
7930a01277SRob Bradford- [v0.14.1](#v0141)
8040c63dcfSRob Bradford- [v0.14.0](#v0140)
8140c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
8240c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
8340c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
8440c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
8540c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
8640c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
87*0c9c56f5SRob Bradford    - [Deprecations](#deprecations-2)
88*0c9c56f5SRob Bradford    - [Contributors](#contributors-9)
89f58b6f84SRob Bradford- [v0.13.0](#v0130)
90f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
9140c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
92f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
93f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
94f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
95f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
96*0c9c56f5SRob Bradford    - [Contributors](#contributors-10)
97d42b5084SRob Bradford- [v0.12.0](#v0120)
98d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
99d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
100d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
101d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
102*0c9c56f5SRob Bradford    - [Contributors](#contributors-11)
1037dcd3affSRob Bradford- [v0.11.0](#v0110)
1047dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1057dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1067dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
107d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1087dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1097dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1107dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1117dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
1127dcd3affSRob Bradford    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1137dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
114*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
115*0c9c56f5SRob Bradford    - [Contributors](#contributors-12)
116198bd551SRob Bradford- [v0.10.0](#v0100)
117198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
118198bd551SRob Bradford    - [Memory Zones](#memory-zones)
119198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
120198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
121*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
122*0c9c56f5SRob Bradford    - [Contributors](#contributors-13)
123d714cf81SRob Bradford- [v0.9.0](#v090)
124d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
125d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
126d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
127d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
128d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
129d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
130d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
131d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
132d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
133d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
134198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
135*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
136*0c9c56f5SRob Bradford    - [Contributors](#contributors-14)
137d714cf81SRob Bradford- [v0.8.0](#v080)
138d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
139d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
140d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
141d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
142d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
143*0c9c56f5SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
144d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
145*0c9c56f5SRob Bradford    - [Contributors](#contributors-15)
14696be8229SRob Bradford- [v0.7.0](#v070)
14796be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
14896be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
14996be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
15096be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
15196be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
15296be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
15396be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
15452b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
155*0c9c56f5SRob Bradford    - [Contributors](#contributors-16)
15603cb26ccSSamuel Ortiz- [v0.6.0](#v060)
15703cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
15803cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
15903cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
16003cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
16103cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
162*0c9c56f5SRob Bradford    - [Contributors](#contributors-17)
16394f2fc33SRob Bradford- [v0.5.1](#v051)
1642f395e60SSamuel Ortiz- [v0.5.0](#v050)
16594f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
16694f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
16794f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
16894f2fc33SRob Bradford    - [Development Tools](#development-tools)
16994f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
170*0c9c56f5SRob Bradford    - [Contributors](#contributors-18)
171cec884e8SSamuel Ortiz- [v0.4.0](#v040)
17294f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
17394f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
17494f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
17594f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
17694f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
17794f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
17894f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
179*0c9c56f5SRob Bradford    - [Contributors](#contributors-19)
1808e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
18194f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
18294f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
18394f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
18494f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
18594f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
18694f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
18794f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
18894f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
1897688e6e2SSamuel Ortiz- [v0.2.0](#v020)
19094f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
19194f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
19294f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
19394f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
19494f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
19594f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
1967688e6e2SSamuel Ortiz- [v0.1.0](#v010)
19794f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
19894f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
19994f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
20094f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
20194f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
20294f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
20394f2fc33SRob Bradford    - [Unit testing](#unit-testing)
20494f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
20594f2fc33SRob Bradford
206*0c9c56f5SRob Bradford# v23.0
207*0c9c56f5SRob Bradford
208*0c9c56f5SRob BradfordThis release has been tracked through the [v23.0
209*0c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
210*0c9c56f5SRob Bradford
211*0c9c56f5SRob Bradford### vDPA Support
212*0c9c56f5SRob Bradford
213*0c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
214*0c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
215*0c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
216*0c9c56f5SRob Bradford
217*0c9c56f5SRob Bradford### Updated OS Support list
218*0c9c56f5SRob Bradford
219*0c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
220*0c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
221*0c9c56f5SRob Bradford
222*0c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
223*0c9c56f5SRob Bradford
224*0c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
225*0c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
226*0c9c56f5SRob Bradfordallocated RAM. (#3938)
227*0c9c56f5SRob Bradford
228*0c9c56f5SRob Bradford### `AMX` Support
229*0c9c56f5SRob Bradford
230*0c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
231*0c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
232*0c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
233*0c9c56f5SRob Bradford
234*0c9c56f5SRob Bradford### Notable Bug Fixes
235*0c9c56f5SRob Bradford
236*0c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
237*0c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
238*0c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
239*0c9c56f5SRob Bradford  `virtio-mem` (#3883)
240*0c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
241*0c9c56f5SRob Bradford  vIOMMU (#3870)
242*0c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
243*0c9c56f5SRob Bradford  (#3848)
244*0c9c56f5SRob Bradford
245*0c9c56f5SRob Bradford### Deprecations
246*0c9c56f5SRob Bradford
247*0c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
248*0c9c56f5SRob Bradfordplan to use alternatives
249*0c9c56f5SRob Bradford
250*0c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
251*0c9c56f5SRob Bradford  (#3968)
252*0c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
253*0c9c56f5SRob Bradford
254*0c9c56f5SRob Bradford### Contributors
255*0c9c56f5SRob Bradford
256*0c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
257*0c9c56f5SRob Bradford
258*0c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
259*0c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
260*0c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
261*0c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
262*0c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
263*0c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
264*0c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
265*0c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
266*0c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
267*0c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
268*0c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
269*0c9c56f5SRob Bradford
270*0c9c56f5SRob Bradford# v22.1
271*0c9c56f5SRob Bradford
272*0c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
273*0c9c56f5SRob Bradford
274*0c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
275*0c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
276*0c9c56f5SRob Bradford
2776aa10938SRob Bradford# v22.0
2786aa10938SRob Bradford
279*0c9c56f5SRob BradfordThis release has been tracked through the [v22.0
280*0c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
2816aa10938SRob Bradford
2826aa10938SRob Bradford### GDB Debug Stub Support
2836aa10938SRob Bradford
2846aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
2856aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
2866aa10938SRob Bradfordthe [gdb
2876aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
2886aa10938SRob Bradford
2896aa10938SRob Bradford### `virtio-iommu` Backed Segments
2906aa10938SRob Bradford
2916aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
2926aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
2936aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
2946aa10938SRob Bradford
2956aa10938SRob Bradford### Before Boot Configuration Changes
2966aa10938SRob Bradford
2976aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
2986aa10938SRob Bradfordresize) before the VM is booted.
2996aa10938SRob Bradford
3006aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
3016aa10938SRob Bradford
3026aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
3036aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
3046aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
3056aa10938SRob Bradfordmemory density.
3066aa10938SRob Bradford
3076aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
3086aa10938SRob Bradford
3096aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
3106aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
3116aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
3126aa10938SRob Bradfordhas been updated for this usage.
3136aa10938SRob Bradford
3146aa10938SRob Bradford### PMU Support for AArch64
3156aa10938SRob Bradford
3166aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
3176aa10938SRob Bradfordexposed automatically if available from the host.
3186aa10938SRob Bradford
319*0c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
3206aa10938SRob Bradford
3216aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
3226aa10938SRob BradfordInternational" license which is aligned with the project charter under the
3236aa10938SRob BradfordLinux Foundation.
3246aa10938SRob Bradford
3256aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
3266aa10938SRob Bradford
3276aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
3286aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
3296aa10938SRob Bradfordversion.
3306aa10938SRob Bradford
3316aa10938SRob Bradford### Notable Bug Fixes
3326aa10938SRob Bradford
3336aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
3346aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
3356aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
3366aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
3376aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
3386aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
3396aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
3406aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
3416aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
3426aa10938SRob Bradford
3436aa10938SRob Bradford### Contributors
3446aa10938SRob Bradford
3456aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
3466aa10938SRob Bradford
3476aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
3486aa10938SRob Bradford* Barret Rhoden <brho@google.com>
3496aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
3506aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
3516aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
3526aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
3536aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
3546aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
3556aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
3566aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
3576aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
3586aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
3596aa10938SRob Bradford
36095ca7997SRob Bradford# v21.0
36195ca7997SRob Bradford
36295ca7997SRob BradfordThis release has been tracked through the [v21.0
36395ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
36495ca7997SRob Bradford
36595ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
36695ca7997SRob Bradford
3676aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
3686aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
3696aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
3706aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
3716aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
37295ca7997SRob Bradford
37395ca7997SRob Bradford### Recommended Kernel is Now 5.15
37495ca7997SRob Bradford
3756aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
3766aa10938SRob Bradfordis now 5.15. (#3530)
37795ca7997SRob Bradford
37895ca7997SRob Bradford### Notable Bug fixes
37995ca7997SRob Bradford
38095ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
38195ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
38295ca7997SRob Bradford* Support live migration within firmware (#3586)
38395ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
38495ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
38595ca7997SRob Bradford
38695ca7997SRob Bradford### Contributors
38795ca7997SRob Bradford
38895ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
38995ca7997SRob Bradford
39095ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
39195ca7997SRob Bradford* Barret Rhoden <brho@google.com>
39295ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
39395ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
39495ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
39595ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
39695ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
39795ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
39895ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
39995ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
40095ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
40195ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
40295ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
40395ca7997SRob Bradford
40495ca7997SRob Bradford# v20.2
40595ca7997SRob Bradford
40695ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
40795ca7997SRob Bradford
40895ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
40995ca7997SRob Bradford  when this fails due to older kernel (#3456)
41095ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
41195ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
41295ca7997SRob Bradford  (#3496)
41395ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
41495ca7997SRob Bradford
41595ca7997SRob Bradford# v20.1
41695ca7997SRob Bradford
41795ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
41895ca7997SRob Bradford
41995ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
42095ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
42195ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
42295ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
42395ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
42495ca7997SRob Bradford
4257fc0776aSSebastien Boeuf# v20.0
4267fc0776aSSebastien Boeuf
4277fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
4287fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
4297fc0776aSSebastien Boeuf
4307fc0776aSSebastien Boeuf### Multiple PCI segments support
4317fc0776aSSebastien Boeuf
4327fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
4337fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
4347fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
4357fc0776aSSebastien Boeuf
4367fc0776aSSebastien Boeuf### CPU pinning
4377fc0776aSSebastien Boeuf
4387fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
4397fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
4407fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
4417fc0776aSSebastien Boeuf
4427fc0776aSSebastien Boeuf### Improved VFIO support
4437fc0776aSSebastien Boeuf
4447fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
4457fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
4467fc0776aSSebastien Boeufthe passthrough device.
4477fc0776aSSebastien Boeuf
4487fc0776aSSebastien Boeuf### Safer code
4497fc0776aSSebastien Boeuf
4507fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
4517fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
4527fc0776aSSebastien Boeufunsafe sections are safe to use.
4537fc0776aSSebastien Boeuf
4547fc0776aSSebastien Boeuf### Extended documentation
4557fc0776aSSebastien Boeuf
4567fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
4577fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
4587fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
4597fc0776aSSebastien Boeuf
4607fc0776aSSebastien Boeuf### Notable bug fixes
4617fc0776aSSebastien Boeuf
4627fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
4637fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
4647fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
4657fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
4667fc0776aSSebastien Boeuf
4677fc0776aSSebastien Boeuf### Contributors
4687fc0776aSSebastien Boeuf
4697fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
4707fc0776aSSebastien Boeuf
4717fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
4727fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
4737fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
4747fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
4757fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
4767fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
4777fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
4787fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
4797fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
4807fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
4817fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
4827fc0776aSSebastien Boeuf
483d00eb4aaSRob Bradford# v19.0
484d00eb4aaSRob Bradford
485d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
486d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
487d00eb4aaSRob Bradford
488d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
489d00eb4aaSRob Bradford
490d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
491d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
492d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
493d00eb4aaSRob Bradford
494d00eb4aaSRob Bradford### PCI boot time optimisations
495d00eb4aaSRob Bradford
496d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
497d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
498d00eb4aaSRob Bradford
499d00eb4aaSRob Bradford### Improved TDX support
500d00eb4aaSRob Bradford
501d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
502d00eb4aaSRob Bradfordexposed via the firmware to the guest.
503d00eb4aaSRob Bradford
504d00eb4aaSRob Bradford### Live migration enhancements
505d00eb4aaSRob Bradford
506d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
507d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
508d00eb4aaSRob Bradfordmigration.
509d00eb4aaSRob Bradford
510d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
511d00eb4aaSRob Bradford
512d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
513d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
514d00eb4aaSRob Bradford
515d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
516d00eb4aaSRob Bradford
517d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
518d00eb4aaSRob Bradford
519d00eb4aaSRob Bradford### Notable bug fixes
520d00eb4aaSRob Bradford
521d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
522d00eb4aaSRob Bradford  snapshot/restore (#3165)
523d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
524d00eb4aaSRob Bradford  (#3078 #3113)
525d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
526d00eb4aaSRob Bradford  the underlying crate (#3157)
527d00eb4aaSRob Bradford
528d00eb4aaSRob Bradford### Contributors
529d00eb4aaSRob Bradford
530d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
531d00eb4aaSRob Bradford
532d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
533d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
534d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
535d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
536d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
537d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
538d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
539d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
540d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
541d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
542d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
543d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
544d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
545d00eb4aaSRob Bradford
5462c4f8d22SRob Bradford# v18.0
5472c4f8d22SRob Bradford
5482c4f8d22SRob BradfordThis release has been tracked through the [v18.0
5492c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
5502c4f8d22SRob Bradford
5512c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
5522c4f8d22SRob Bradford
5532c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
5542c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
5552c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
5562c4f8d22SRob Bradford
5572c4f8d22SRob Bradford### Migration support for `vhost-user` devices
5582c4f8d22SRob Bradford
5592c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
5602c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
5612c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
5622c4f8d22SRob Bradford
5632c4f8d22SRob Bradford### VHDX disk image support
5642c4f8d22SRob Bradford
5652c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
5662c4f8d22SRob Bradford
5672c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
5682c4f8d22SRob Bradford
5692c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
5702c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
5712c4f8d22SRob Bradford
5722c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
5732c4f8d22SRob Bradford
5742c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
5752c4f8d22SRob Bradford
5762c4f8d22SRob Bradford### Live migration on MSHV hypervisor
5772c4f8d22SRob Bradford
5782c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
5792c4f8d22SRob Bradfordefficient tracking of dirty pages.
5802c4f8d22SRob Bradford
5812c4f8d22SRob Bradford### AArch64 CPU topology support
5822c4f8d22SRob Bradford
5832c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
5842c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
5852c4f8d22SRob Bradfordtree.
5862c4f8d22SRob Bradford
5872c4f8d22SRob Bradford### Power button support on AArch64
5882c4f8d22SRob Bradford
5892c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
5902c4f8d22SRob Bradfordis now supported when running on AArch64.
5912c4f8d22SRob Bradford
5922c4f8d22SRob Bradford### Notable bug fixes
5932c4f8d22SRob Bradford
5942c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
5952c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
5962c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
5972c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
5982c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
5992c4f8d22SRob Bradford
6002c4f8d22SRob Bradford### Contributors
6012c4f8d22SRob Bradford
6022c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
6032c4f8d22SRob Bradford
6042c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
6052c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
6062c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
6072c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
6082c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
6092c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
6102c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
6112c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
6122c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
6132c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
6142c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
6152c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
6162c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
6172c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
618e6db5999SRob Bradford
619e6db5999SRob Bradford# v17.0
620e6db5999SRob Bradford
621e6db5999SRob BradfordThis release has been tracked through the [v17.0
622e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
623e6db5999SRob Bradford
624e6db5999SRob Bradford### ARM64 NUMA support using ACPI
625e6db5999SRob Bradford
626e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
627e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
628e6db5999SRob Bradford
629e6db5999SRob Bradford### `Seccomp` support for MSHV backend
630e6db5999SRob Bradford
631e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
632e6db5999SRob Bradfordhypervisor backend.
633e6db5999SRob Bradford
634e6db5999SRob Bradford### Hotplug of `macvtap` devices
635e6db5999SRob Bradford
636e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
637e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
638e6db5999SRob Bradfordtool supports this functionality when adding a network device.
639e6db5999SRob Bradford
640e6db5999SRob Bradford### Improved SGX support
641e6db5999SRob Bradford
642e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
643e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
644e6db5999SRob Bradford
645e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
646e6db5999SRob Bradford
647e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
648e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
649e6db5999SRob Bradford
650e6db5999SRob Bradford### Notable bug fixes
651e6db5999SRob Bradford
652e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
653e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
654e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
655e6db5999SRob Bradford(#2833).
656e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
657e6db5999SRob Bradford
658e6db5999SRob Bradford### Contributors
659e6db5999SRob Bradford
660e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
661e6db5999SRob Bradford
662e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
663e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
664e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
665e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
666e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
667e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
668e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
669e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
670e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
671e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
672e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
673e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
674e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
675e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
676e6db5999SRob Bradford
6775ed8e01fSRob Bradford# v16.0
6785ed8e01fSRob Bradford
6795ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
6805ed8e01fSRob Bradford
6815ed8e01fSRob Bradford### Improved live migration support
6825ed8e01fSRob Bradford
6835ed8e01fSRob 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.
6845ed8e01fSRob Bradford
6855ed8e01fSRob Bradford### Improved `vhost-user` support
6865ed8e01fSRob Bradford
6875ed8e01fSRob 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.
6885ed8e01fSRob Bradford
6895ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
6905ed8e01fSRob Bradford
6915ed8e01fSRob 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.
6925ed8e01fSRob Bradford
6935ed8e01fSRob Bradford### Notable bug fixes
6945ed8e01fSRob Bradford
6955ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
6965ed8e01fSRob 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).
6975ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
6985ed8e01fSRob Bradford
6995ed8e01fSRob Bradford### Removed functionality
7005ed8e01fSRob Bradford
7015ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
7025ed8e01fSRob Bradford
7035ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
7045ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
7055ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
7065ed8e01fSRob Bradford
7075ed8e01fSRob Bradford### Contributors
7085ed8e01fSRob Bradford
7095ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
7105ed8e01fSRob Bradford
7115ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
7125ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
7135ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
7145ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
7155ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
7165ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
7175ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
7185ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
7195ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
7205ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
7215ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
7225ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
7235ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
7245ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
7255ed8e01fSRob Bradford
72630a01277SRob Bradford# v15.0
72730a01277SRob Bradford
72830a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
72930a01277SRob Bradford
73030a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
73130a01277SRob Bradford
73230a01277SRob Bradford### Version numbering and stability guarantees
73330a01277SRob Bradford
73430a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
73530a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
73630a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
73730a01277SRob Bradford
73830a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
73930a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
74030a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
74130a01277SRob Bradford  will be documented in the release notes.
74230a01277SRob Bradford* Point releases will be made between individual releases where there are
74330a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
74430a01277SRob Bradford
74530a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
74630a01277SRob Bradford
74730a01277SRob Bradford* Snapshot/restore is not supported across different versions
74830a01277SRob Bradford* Live migration is not supported across different versions
74930a01277SRob Bradford* The following features are considered experimental and may change
75030a01277SRob Bradford  substantially between releases: TDX, SGX.
75130a01277SRob Bradford
75230a01277SRob Bradford### Network device rate limiting
75330a01277SRob Bradford
75430a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
75530a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
75630a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
75730a01277SRob Bradford
75830a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
75930a01277SRob Bradford
76030a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
76130a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
76230a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
76330a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
76430a01277SRob Bradford
76530a01277SRob Bradford### `--api-socket` supports file descriptor parameter
76630a01277SRob Bradford
76730a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
76830a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
76930a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
77030a01277SRob Bradford
77130a01277SRob Bradford### Bug fixes
77230a01277SRob Bradford
77330a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
77430a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
77530a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
77630a01277SRob Bradford  reprogram them (#1797,#1798)
77730a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
77830a01277SRob Bradford  exhaustion on the host) (#2517)
77930a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
78030a01277SRob Bradford  prevents snapshot & restore working (#2535)
78130a01277SRob Bradford
78230a01277SRob Bradford### Deprecations
78330a01277SRob Bradford
78430a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
78530a01277SRob Bradford
78630a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
78730a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
78830a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
78930a01277SRob Bradford
79030a01277SRob Bradford### Contributors
79130a01277SRob Bradford
79230a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
79330a01277SRob Bradford
79430a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
79530a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
79630a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
79730a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
79830a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
79930a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
80030a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
80130a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
80230a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
80330a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
80430a01277SRob Bradford* William Douglas <william.douglas@intel.com>
80530a01277SRob Bradford
80630a01277SRob Bradford# v0.14.1
80730a01277SRob Bradford
80830a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
80930a01277SRob Bradfordin this release:
81030a01277SRob Bradford
81130a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
81230a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
81330a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
81430a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
81530a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
81630a01277SRob Bradford
81740c63dcfSRob Bradford# v0.14.0
81840c63dcfSRob Bradford
81940c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
82040c63dcfSRob Bradford
82140c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
82240c63dcfSRob Bradford
82340c63dcfSRob Bradford### Structured event monitoring
82440c63dcfSRob Bradford
82540c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
82640c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
82740c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
82840c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
82940c63dcfSRob BradfordHypervisor API surface.
83040c63dcfSRob Bradford
83140c63dcfSRob Bradford### MSHV improvements
83240c63dcfSRob Bradford
83340c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
83440c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
83540c63dcfSRob Bradfordthe MSHV support.
83640c63dcfSRob Bradford
83740c63dcfSRob Bradford### Improved aarch64 platform
83840c63dcfSRob Bradford
83940c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
84040c63dcfSRob BradfordVM including an enhanced serial UART.
84140c63dcfSRob Bradford
84240c63dcfSRob Bradford### Updated hotplug documentation
84340c63dcfSRob Bradford
84440c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
84540c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
84640c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
84740c63dcfSRob Bradford
84840c63dcfSRob Bradford### PTY control for serial and `virtio-console`
84940c63dcfSRob Bradford
85040c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
85140c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
85240c63dcfSRob BradfordPTY subsystem.
85340c63dcfSRob Bradford
85440c63dcfSRob Bradford### Block device rate limiting
85540c63dcfSRob Bradford
85640c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
85740c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
85830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
85940c63dcfSRob Bradford
86040c63dcfSRob Bradford
86140c63dcfSRob Bradford### Deprecations
86240c63dcfSRob Bradford
86340c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
86440c63dcfSRob Bradford
86540c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
86640c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
86740c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
86840c63dcfSRob Bradford
86940c63dcfSRob Bradford
87040c63dcfSRob Bradford### Contributors
87140c63dcfSRob Bradford
87240c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
87340c63dcfSRob Bradfordsome new faces.
87440c63dcfSRob Bradford
87540c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
87640c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
87740c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
87840c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
87940c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
88040c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
88140c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
88240c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
88340c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
88440c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
88540c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
88640c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
88740c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
88840c63dcfSRob Bradford
889f58b6f84SRob Bradford# v0.13.0
890f58b6f84SRob Bradford
891f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
892f58b6f84SRob Bradford
893f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
894f58b6f84SRob Bradford
895f58b6f84SRob Bradford### Wider VFIO device support
896f58b6f84SRob Bradford
897f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
898f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
899f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
900f58b6f84SRob Bradforddrivers.
901f58b6f84SRob Bradford
90240c63dcfSRob Bradford### Improved huge page support
903f58b6f84SRob Bradford
904f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
905f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
906f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
907f58b6f84SRob Bradforddesired size in their pool.
908f58b6f84SRob Bradford
909f58b6f84SRob Bradford### MACvTAP support
910f58b6f84SRob Bradford
911f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
912f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
913f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
914f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
915f58b6f84SRob Bradford
916f58b6f84SRob Bradford### VHD disk image support
917f58b6f84SRob Bradford
918f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
919f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
920f58b6f84SRob Bradford
921f58b6f84SRob Bradford### Improved Virtio device threading
922f58b6f84SRob Bradford
923f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
924f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
925f58b6f84SRob Bradfordpredictable name derived from the device id.
926f58b6f84SRob Bradford
927f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
928f58b6f84SRob Bradford
929f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
930f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
931f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
932f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
933f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
934f58b6f84SRob Bradford
935f58b6f84SRob Bradford### Contributors
936f58b6f84SRob Bradford
937f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
938f58b6f84SRob Bradfordsome new faces.
939f58b6f84SRob Bradford
940f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
941f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
942f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
943f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
944f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
945f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
946f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
947f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
948f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
949f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
950f58b6f84SRob Bradford
951d42b5084SRob Bradford# v0.12.0
952d42b5084SRob Bradford
953d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
954d42b5084SRob Bradford
955d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
956d42b5084SRob Bradford
957d42b5084SRob Bradford### ARM64 enhancements
958d42b5084SRob Bradford
959d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
960d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
961d42b5084SRob Bradford
962d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
963d42b5084SRob Bradford
964d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
965d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
966d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
967d42b5084SRob Bradfordremoved.
968d42b5084SRob Bradford
969d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
970d42b5084SRob Bradford
971d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
972d42b5084SRob Bradfordinstead hosted in [it's own
973d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
974d42b5084SRob Bradford
975d42b5084SRob Bradford### Enhanced "info" API
976d42b5084SRob Bradford
977d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
978d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
979d42b5084SRob Bradford
980d42b5084SRob Bradford### Contributors
981d42b5084SRob Bradford
982d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
983d42b5084SRob Bradford
984d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
985d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
986d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
987d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
988d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
989d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
990d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
991d42b5084SRob Bradford
9927dcd3affSRob Bradford# v0.11.0
9937dcd3affSRob Bradford
9947dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
9957dcd3affSRob Bradford
9967dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
9977dcd3affSRob Bradford
9987dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
9997dcd3affSRob Bradford
10007dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
10017dcd3affSRob Bradfordbe used for a significantly higher performance block device.
10027dcd3affSRob Bradford
10037dcd3affSRob Bradford### Windows Guest Support
10047dcd3affSRob Bradford
10057dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
10067dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
10077dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
10087dcd3affSRob Bradforddocumentation](docs/windows.md).
10097dcd3affSRob Bradford
10107dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
10117dcd3affSRob Bradford
10127dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
10137dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
10147dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
10157dcd3affSRob Bradford
1016d00eb4aaSRob Bradford### `virtio-mmio` Removal
10177dcd3affSRob Bradford
10187dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
10197dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
10207dcd3affSRob Bradfordreduce the testing burden of the project.
10217dcd3affSRob Bradford
10227dcd3affSRob Bradford### Snapshot/Restore support for ARM64
10237dcd3affSRob Bradford
10247dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
10257dcd3affSRob Bradfordimplemented.
10267dcd3affSRob Bradford
10277dcd3affSRob Bradford### Improved Linux Boot Time
10287dcd3affSRob Bradford
10297dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
10307dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
10317dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
10327dcd3affSRob Bradford
10337dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
10347dcd3affSRob Bradford
10357dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
10367dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
10377dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
10387dcd3affSRob Bradfordresources.
10397dcd3affSRob Bradford
10407dcd3affSRob Bradford### Default Log Level Changed
10417dcd3affSRob Bradford
10427dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
10437dcd3affSRob Bradfordeasier to see potential issues. New [logging
10447dcd3affSRob Bradforddocumentation](docs/logging) was also added.
10457dcd3affSRob Bradford
10467dcd3affSRob Bradford### New `--balloon` Parameter Added
10477dcd3affSRob Bradford
10487dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
10497dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
10507dcd3affSRob Bradfordcontrols without overloading `--memory`.
10517dcd3affSRob Bradford
10527dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
10537dcd3affSRob Bradford
10547dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
10557dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
10567dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
10577dcd3affSRob Bradford
10587dcd3affSRob Bradford### Notable Bug Fixes
10597dcd3affSRob Bradford
10607dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
10617dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
10627dcd3affSRob Bradford* CPU identification string is now exposed to the guest
10637dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
10647dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
10657dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
10667dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
10677dcd3affSRob Bradford  can be used (#1803)
10687dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
10697dcd3affSRob Bradford  correctly
10707dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
10717dcd3affSRob Bradford  correctly
10727dcd3affSRob Bradford
10737dcd3affSRob Bradford### Contributors
10747dcd3affSRob Bradford
10757dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
10767dcd3affSRob Bradford
10777dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
10787dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
10797dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
10807dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
10817dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
10827dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
10837dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
10847dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
10857dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
10867dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
10877dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
10887dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
10897dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
10907dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10917dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
10927dcd3affSRob Bradford
10937dcd3affSRob Bradford
1094198bd551SRob Bradford# v0.10.0
1095198bd551SRob Bradford
1096198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1097198bd551SRob Bradford
1098198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1099198bd551SRob Bradford
1100198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1101198bd551SRob Bradford
1102198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1103198bd551SRob Bradford
1104198bd551SRob Bradford### Memory Zones
1105198bd551SRob Bradford
1106198bd551SRob 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).
1107198bd551SRob Bradford
1108198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1109198bd551SRob Bradford
1110198bd551SRob 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`.
1111198bd551SRob Bradford
1112198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1113198bd551SRob Bradford
1114198bd551SRob 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.
1115198bd551SRob Bradford
1116198bd551SRob Bradford### Notable Bug Fixes
1117198bd551SRob Bradford
1118198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1119198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1120198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1121198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1122198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1123198bd551SRob Bradford
1124198bd551SRob Bradford### Contributors
1125198bd551SRob Bradford
1126198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1127198bd551SRob Bradford
1128198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1129198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1130198bd551SRob Bradford* Anatol Belski <ab@php.net>
1131198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1132198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1133198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1134198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1135198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1136198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1137198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1138198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1139198bd551SRob Bradford
1140d714cf81SRob Bradford# v0.9.0
1141d714cf81SRob Bradford
1142d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1143d714cf81SRob Bradford
1144d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1145d714cf81SRob Bradford
1146d714cf81SRob Bradford### `io_uring` Based Block Device Support
1147d714cf81SRob Bradford
1148d714cf81SRob 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.
1149d714cf81SRob Bradford
1150d714cf81SRob Bradford### Block and Network Device Statistics
1151d714cf81SRob Bradford
1152d714cf81SRob 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.
1153d714cf81SRob Bradford
1154d714cf81SRob Bradford### HTTP API Responses
1155d714cf81SRob Bradford
1156d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1157d714cf81SRob Bradford
1158d714cf81SRob Bradford### CPU Topology
1159d714cf81SRob Bradford
1160d714cf81SRob 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.
1161d714cf81SRob Bradford
1162d714cf81SRob Bradford### Release Build Optimization
1163d714cf81SRob Bradford
1164d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1165d714cf81SRob Bradford
1166d714cf81SRob Bradford### Hypervisor Abstraction
1167d714cf81SRob Bradford
1168d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1169d714cf81SRob Bradford
1170d714cf81SRob Bradford### Snapshot/Restore Improvements
1171d714cf81SRob Bradford
1172d714cf81SRob 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.
1173d714cf81SRob Bradford
1174d714cf81SRob Bradford### Virtio Memory Ballooning Support
1175d714cf81SRob Bradford
1176d714cf81SRob 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.
1177d714cf81SRob Bradford
1178d714cf81SRob Bradford### Enhancements to ARM64 Support
1179d714cf81SRob Bradford
1180d714cf81SRob 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.
1181d714cf81SRob Bradford
1182d714cf81SRob Bradford### Intel SGX Support
1183d714cf81SRob Bradford
1184d714cf81SRob 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).
1185d714cf81SRob Bradford
1186d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1187d714cf81SRob Bradford
1188d714cf81SRob 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.
1189d714cf81SRob Bradford
1190d714cf81SRob Bradford### Notable Bug Fixes
1191d714cf81SRob Bradford
1192d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1193d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1194d714cf81SRob 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).
1195d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1196d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1197d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1198d714cf81SRob Bradford
1199d714cf81SRob Bradford### Contributors
1200d714cf81SRob Bradford
1201d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1202d714cf81SRob Bradford
1203d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1204d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1205d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1206d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1207d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1208d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1209d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1210d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1211d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1212d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1213d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1214d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1215d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1216d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1217d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1218d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1219d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1220d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1221d714cf81SRob Bradford
1222d714cf81SRob Bradford
122352b83969SRob Bradford# v0.8.0
122452b83969SRob Bradford
122552b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
122652b83969SRob Bradford
122752b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
122852b83969SRob Bradford
122952b83969SRob Bradford### Experimental Snapshot and Restore Support
123052b83969SRob Bradford
123152b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
123252b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
123352b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
123452b83969SRob Bradfordoriginal VM at the point it was paused.
123552b83969SRob Bradford
123652b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
123752b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
123852b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
123952b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
124052b83969SRob Bradford(#1176).
124152b83969SRob Bradford
124252b83969SRob Bradford### Experimental ARM64 Support
124352b83969SRob Bradford
124452b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
124552b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
124652b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
124752b83969SRob Bradford
124852b83969SRob Bradford### Support for Using 5-level Paging in Guests
124952b83969SRob Bradford
125052b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
125152b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
125252b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
125352b83969SRob Bradfordwork due to current limitations in the PVH boot process.
125452b83969SRob Bradford
125552b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
125652b83969SRob Bradford
125752b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
125852b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
125952b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
126052b83969SRob Bradfordthe guest must service.
126152b83969SRob Bradford
126252b83969SRob Bradford### `vhost_user_fs` Improvements
126352b83969SRob Bradford
126452b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
126552b83969SRob Bradford
126652b83969SRob Bradford
126752b83969SRob Bradford### Notable Bug Fixes
126852b83969SRob Bradford
126952b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
127052b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
127152b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
127252b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
127352b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
127452b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
127552b83969SRob Bradford  #1216).
127652b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
127752b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
127852b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
127952b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
128052b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
128152b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
128252b83969SRob Bradford  (#751).
128352b83969SRob Bradford
128452b83969SRob Bradford### Command Line and API Changes
128552b83969SRob Bradford
128652b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
128752b83969SRob Bradford
128852b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
128952b83969SRob Bradford  rather than `sock` in some cases.
129052b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
129152b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
129252b83969SRob Bradford  offered for negotiation.
129352b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
129452b83969SRob Bradford  address for the `tap` device on the host.
129552b83969SRob Bradford
129652b83969SRob Bradford### Contributors
129752b83969SRob Bradford
129852b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
129952b83969SRob Bradford
130052b83969SRob Bradford* Anatol Belski <ab@php.net>
130152b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
130252b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
130352b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
130452b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
130552b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
130652b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
130752b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
130852b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
130952b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
131052b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
131152b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
131252b83969SRob Bradford
131396be8229SRob Bradford# v0.7.0
131496be8229SRob Bradford
131596be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
131696be8229SRob Bradford
131796be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
131896be8229SRob Bradford
131996be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
132096be8229SRob Bradford
132196be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
132296be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
132396be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
13245c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
132596be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
132696be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
132796be8229SRob Bradforddevices to ease their removal.
132896be8229SRob Bradford
132996be8229SRob Bradford### Alternative `libc` Support
133096be8229SRob Bradford
133196be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
133296be8229SRob Bradfordcontains a static binary compiled using that toolchain.
133396be8229SRob Bradford
133496be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
133596be8229SRob Bradford
133696be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
133796be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
133896be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
133996be8229SRob Bradfordis passed when the devices are created.
134096be8229SRob Bradford
134196be8229SRob Bradford### Initial RamFS Support
134296be8229SRob Bradford
134396be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
134496be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
134596be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
134696be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
134796be8229SRob Bradfordminimal image.
134896be8229SRob Bradford
134996be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
135096be8229SRob Bradford
135196be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
135296be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
135396be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
135496be8229SRob Bradfordrequires kernel patches to be able to support it.
135596be8229SRob Bradford
135696be8229SRob Bradford### `Seccomp` Sandboxing
135796be8229SRob Bradford
135896be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
135996be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
136096be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
136196be8229SRob Bradford
136296be8229SRob Bradford### Updated Distribution Support
136396be8229SRob Bradford
136496be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
136596be8229SRob Bradforddistributions and is part of our regular testing programme.
136696be8229SRob Bradford
136796be8229SRob Bradford### Command Line and API Changes
136896be8229SRob Bradford
136996be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
137096be8229SRob Bradford
137196be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
137296be8229SRob Bradford  If no name is specified the VMM chooses one.
137396be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
137496be8229SRob Bradford  memory instead of providing a path.
137596be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
137696be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
137796be8229SRob Bradford  option and replaced it with a single optional field.
137896be8229SRob Bradford* There is enhanced validation of the command line and API provided
137996be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
138096be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
138196be8229SRob Bradford  device.
138296be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
138396be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
138496be8229SRob Bradford  has appropriate new HTTP endpoints too.
138596be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
138696be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
138796be8229SRob Bradford  to provide the equivalent of a read-only file.
138896be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
138996be8229SRob Bradford  with those used by `--disk`.
139096be8229SRob Bradford
139196be8229SRob Bradford### Contributors
139296be8229SRob Bradford
139396be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
139496be8229SRob Bradford
139596be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
139696be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
139796be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
139896be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
139996be8229SRob Bradford* Dean Sheather <dean@coder.com>
140096be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
140196be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
140296be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
140396be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
140496be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
140596be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
140696be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
140796be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
140896be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
140996be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
141096be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
141196be8229SRob Bradford
141203cb26ccSSamuel Ortiz# v0.6.0
141303cb26ccSSamuel Ortiz
141403cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
141503cb26ccSSamuel Ortiz
141603cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
141703cb26ccSSamuel Ortiz
141803cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
141903cb26ccSSamuel Ortiz
142003cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
142103cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
142203cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
142303cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
142403cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
142503cb26ccSSamuel Ortiz
142603cb26ccSSamuel Ortiz### Shared Filesystem Improvements
142703cb26ccSSamuel Ortiz
142803cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
142903cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
143003cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
143103cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
143203cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
143303cb26ccSSamuel Ortiz
143403cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
143503cb26ccSSamuel Ortiz
143603cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
143703cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
143803cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
143903cb26ccSSamuel Ortizinto their own, separate processes.
14405c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
144103cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
144203cb26ccSSamuel Ortiz
144303cb26ccSSamuel Ortiz### Command Line Interface
144403cb26ccSSamuel Ortiz
144503cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
144637a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
144737a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
144837a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
144937a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
145037a2c13aSAlyssa Rossis created with each build and available e.g. at
145103cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
145203cb26ccSSamuel Ortiz
145303cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
145403cb26ccSSamuel Ortizcommands.
145503cb26ccSSamuel Ortiz
145603cb26ccSSamuel Ortiz### PVH Boot
145703cb26ccSSamuel Ortiz
145803cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
145903cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
146003cb26ccSSamuel Ortiz
146103cb26ccSSamuel Ortiz### Contributors
146203cb26ccSSamuel Ortiz
146303cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
146403cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
146503cb26ccSSamuel Ortiz
146603cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
146703cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
146803cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
146903cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
147003cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
147103cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
147203cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
147303cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
147403cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
147503cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
147603cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
147703cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
147803cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
147903cb26ccSSamuel Ortiz
148094f2fc33SRob Bradford# v0.5.1
148194f2fc33SRob Bradford
148294f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
148394f2fc33SRob Bradford
148494f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
148594f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
148694f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
148794f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
148894f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
14898e8a7b6dSSamuel Ortiz
14902f395e60SSamuel Ortiz# v0.5.0
14912f395e60SSamuel Ortiz
14922f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
14932f395e60SSamuel Ortiz
14942f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
14952f395e60SSamuel Ortiz
14962f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
14972f395e60SSamuel Ortiz
14982f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
14992f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
15002f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
15012f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
15022f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
15032f395e60SSamuel Ortiz
15042f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
15052f395e60SSamuel Ortiz
15062f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
15072f395e60SSamuel Ortiz
15082f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
15092f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
15102f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
15112f395e60SSamuel Ortiz
15122f395e60SSamuel Ortiz### New Interrupt Management Framework
15132f395e60SSamuel Ortiz
15142f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
15152f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
15162f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
15172f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
15182f395e60SSamuel Ortizvirtio ones.
15192f395e60SSamuel Ortiz
15202f395e60SSamuel Ortiz### Development Tools
15212f395e60SSamuel Ortiz
15222f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
15232f395e60SSamuel Ortizbuild, development and testing tools.
15242f395e60SSamuel OrtizSomehow similar to the excellent
15252f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
152637a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
15272f395e60SSamuel Ortiz
15282f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
15292f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
15302f395e60SSamuel Ortiz
15312f395e60SSamuel Ortiz### Kata Containers Integration
15322f395e60SSamuel Ortiz
15332f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
15342f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
15352f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
15362f395e60SSamuel Ortizintegrated into the project's CI.
15372f395e60SSamuel Ortiz
15382f395e60SSamuel Ortiz### Contributors
15392f395e60SSamuel Ortiz
15402f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
15412f395e60SSamuel Ortiz
15422f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
15432f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
15442f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
15452f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
15462f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
15472f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
15482f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
15492f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
15502f395e60SSamuel Ortiz
1551cec884e8SSamuel Ortiz# v0.4.0
1552cec884e8SSamuel Ortiz
1553cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
1554cec884e8SSamuel Ortiz
1555cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
1556cec884e8SSamuel Ortiz
1557cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
1558cec884e8SSamuel Ortiz
1559e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
1560cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
1561cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
1562cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
156337a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
1564cec884e8SSamuel Ortiz
1565cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
1566cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
1567cec884e8SSamuel Ortiz
1568cec884e8SSamuel Ortiz### Programmatic firmware tables generation
1569cec884e8SSamuel Ortiz
1570cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
1571cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
1572cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
1573cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
1574cec884e8SSamuel Ortiztables based on the VMM device model and topology.
1575cec884e8SSamuel Ortiz
1576cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
1577cec884e8SSamuel Ortiz
1578cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
1579cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
1580cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
1581cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
1582cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
1583cec884e8SSamuel Ortiz
1584cec884e8SSamuel Ortiz### Guest pause and resume
1585cec884e8SSamuel Ortiz
15865c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
1587cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
1588cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
1589cec884e8SSamuel Ortizand resume capabilities.
1590cec884e8SSamuel Ortiz
1591cec884e8SSamuel Ortiz### Userspace IOAPIC by default
1592cec884e8SSamuel Ortiz
1593cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
1594cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
1595cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
1596cec884e8SSamuel Ortizdefault.
1597cec884e8SSamuel Ortiz
1598cec884e8SSamuel Ortiz### PCI BAR reprogramming
1599cec884e8SSamuel Ortiz
1600cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
1601cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
1602cec884e8SSamuel Ortizreprogramming.
1603cec884e8SSamuel Ortiz
1604cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
1605cec884e8SSamuel Ortiz
1606cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
1607cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
1608cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
1609cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
1610cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1611cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
1612cec884e8SSamuel Ortiztemporarily fork.
1613cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
1614cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
1615cec884e8SSamuel Ortiz
1616cec884e8SSamuel Ortiz### Contributors
1617cec884e8SSamuel Ortiz
1618cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
1619cec884e8SSamuel Ortiz
1620cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
1621cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
1622cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1623cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
1624cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
1625cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
1626cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
1627cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
1628cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
1629cec884e8SSamuel Ortiz
16308e8a7b6dSSamuel Ortiz# v0.3.0
16318e8a7b6dSSamuel Ortiz
16328ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
16338e8a7b6dSSamuel Ortiz
16348e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
16358e8a7b6dSSamuel Ortiz
16368e8a7b6dSSamuel Ortiz### Block device offloading
16378e8a7b6dSSamuel Ortiz
16388e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
16398e8a7b6dSSamuel Ortizand we added support for
16408e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
16418e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
16428e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
16438e8a7b6dSSamuel Ortizbackend.
16448e8a7b6dSSamuel Ortiz
16458e8a7b6dSSamuel Ortiz### Network device backend
16468e8a7b6dSSamuel Ortiz
16478e8a7b6dSSamuel OrtizThe previous release provided support for
16488e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
16498e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
16508e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
16518e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
16528e8a7b6dSSamuel Ortiz
16538e8a7b6dSSamuel Ortiz### Virtual sockets
16548e8a7b6dSSamuel Ortiz
16558e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
16568e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
16578e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
16588e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
16598e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
16608e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
16618e8a7b6dSSamuel Ortiz
16628e8a7b6dSSamuel Ortiz### HTTP based API
16638e8a7b6dSSamuel Ortiz
16648e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
16658e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
16668e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
16678e8a7b6dSSamuel Ortiznext release cycle.
16688e8a7b6dSSamuel Ortiz
16698e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
16708e8a7b6dSSamuel Ortiz
16718e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
16728e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
16738e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
16748e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
16758e8a7b6dSSamuel Ortiz
16768e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
16778e8a7b6dSSamuel Ortiz
16788e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
167937a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
168037a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
16818e8a7b6dSSamuel Ortiz
16828e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
16838e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
16848e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
16858e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
16868e8a7b6dSSamuel Ortizsetting.
16878e8a7b6dSSamuel Ortiz
16888e8a7b6dSSamuel Ortiz### Ubuntu 19.10
16898e8a7b6dSSamuel Ortiz
16908ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
16918e8a7b6dSSamuel Ortizwe can now support the latest
16928e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
16938e8a7b6dSSamuel Ortiz
16948e8a7b6dSSamuel Ortiz### Large memory guests
16958e8a7b6dSSamuel Ortiz
16968e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
16978e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
16987688e6e2SSamuel Ortiz
1699d784ac29SSamuel Ortiz# v0.2.0
1700d784ac29SSamuel Ortiz
17018ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
1702d784ac29SSamuel Ortiz
1703d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
1704d784ac29SSamuel Ortiz
1705d784ac29SSamuel Ortiz### Network device offloading
1706d784ac29SSamuel Ortiz
1707d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
1708d784ac29SSamuel Ortizprocesses, we added support for
1709d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
1710d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
1711d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
1712d784ac29SSamuel Ortiz
1713d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
1714d784ac29SSamuel Ortiz
1715d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
1716d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
1717d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
1718d784ac29SSamuel Ortizcleanly reboot and shutdown.
1719d784ac29SSamuel Ortiz
1720d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
1721d784ac29SSamuel Ortizenabled by default.
1722d784ac29SSamuel Ortiz
1723d784ac29SSamuel Ortiz### Debug I/O port
1724d784ac29SSamuel Ortiz
1725d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
1726d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
1727d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
1728d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
172937a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
173037a2c13aSAlyssa Rossdetails.
1731d784ac29SSamuel Ortiz
1732d784ac29SSamuel Ortiz### Improved direct device assignment
1733d784ac29SSamuel Ortiz
1734d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
1735d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
1736d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
1737d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
1738d784ac29SSamuel Ortizdirectly assigned devices.
1739d784ac29SSamuel Ortiz
1740d784ac29SSamuel Ortiz### Improved shared filesystem
1741d784ac29SSamuel Ortiz
1742d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
1743d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
1744d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
1745d784ac29SSamuel Ortizmemory footprint.
1746d784ac29SSamuel Ortiz
1747d784ac29SSamuel Ortiz### Ubuntu bionic based CI
1748d784ac29SSamuel Ortiz
17498ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1750d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
1751d784ac29SSamuel Ortizour CI pipeline.
1752d784ac29SSamuel Ortiz
175393b77530SSamuel Ortiz# v0.1.0
175493b77530SSamuel Ortiz
17558ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
175693b77530SSamuel Ortiz
175793b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
175893b77530SSamuel Ortiz
175993b77530SSamuel Ortiz### Shared filesystem
176093b77530SSamuel Ortiz
176193b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
176293b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
176393b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
176493b77530SSamuel Ortiz
176537a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
176637a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
176793b77530SSamuel Ortiz
176893b77530SSamuel Ortiz### Initial direct device assignment support
176993b77530SSamuel Ortiz
177093b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
177193b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
177293b77530SSamuel Ortizphysical devices into its guest.
177393b77530SSamuel Ortiz
177437a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
177537a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
177693b77530SSamuel Ortiz
177793b77530SSamuel Ortiz### Userspace IOAPIC
177893b77530SSamuel Ortiz
177993b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
178093b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
178193b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
178293b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
178393b77530SSamuel Ortiz
178493b77530SSamuel Ortiz### Virtual persistent memory
178593b77530SSamuel Ortiz
178693b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
178793b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
178893b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
178993b77530SSamuel Ortiz
179093b77530SSamuel Ortiz### Linux kernel bzImage
179193b77530SSamuel Ortiz
179293b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
179393b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
179493b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
179593b77530SSamuel Ortizdistribution kernel image.
179693b77530SSamuel Ortiz
179793b77530SSamuel Ortiz### Console over virtio
179893b77530SSamuel Ortiz
179993b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
180093b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
180193b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
180293b77530SSamuel Ortizimplementation.
180393b77530SSamuel Ortiz
180493b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
180593b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
180693b77530SSamuel Ortiz`--serial tty --console off` from the command line.
180793b77530SSamuel Ortiz
180893b77530SSamuel Ortiz### Unit testing
180993b77530SSamuel Ortiz
181093b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
181193b77530SSamuel Ortiz
181293b77530SSamuel Ortiz### Integration tests parallelization
181393b77530SSamuel Ortiz
181493b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
181593b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
1816