xref: /cloud-hypervisor/release-notes.md (revision 2ba6a9bfcfd79629aecf77504fa554ab821d138e)
1*2ba6a9bfSRob Bradford- [v27.0](#v270)
2*2ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
3*2ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
4*2ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
5*2ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
6*2ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
7*2ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
8*2ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
9*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
10*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations)
11*2ba6a9bfSRob Bradford    - [Contributors](#contributors)
12ed9e54d6SRob Bradford- [v26.0](#v260)
13ed9e54d6SRob Bradford    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
14ed9e54d6SRob Bradford    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
15*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
16*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations-1)
17ed9e54d6SRob Bradford    - [Removals](#removals)
18*2ba6a9bfSRob Bradford    - [Contributors](#contributors-1)
19b132cd21SRob Bradford- [v25.0](#v250)
20b132cd21SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
21b132cd21SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
22*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
23ed9e54d6SRob Bradford    - [Removals](#removals-1)
24*2ba6a9bfSRob Bradford    - [Contributors](#contributors-2)
250150de55SSebastien Boeuf- [v24.0](#v240)
260150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
270150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
280150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
290150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
30*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
310150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
32*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations-2)
330150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
34*2ba6a9bfSRob Bradford    - [Contributors](#contributors-3)
350150de55SSebastien Boeuf- [v23.1](#v231)
360c9c56f5SRob Bradford- [v23.0](#v230)
370c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
380c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
390c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
400c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
41*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
42*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations-3)
43*2ba6a9bfSRob Bradford    - [Contributors](#contributors-4)
440c9c56f5SRob Bradford- [v22.1](#v221)
456aa10938SRob Bradford- [v22.0](#v220)
466aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
476aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
486aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
496aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
506aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
516aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
520c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
536aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
54*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
55*2ba6a9bfSRob Bradford    - [Contributors](#contributors-5)
5695ca7997SRob Bradford- [v21.0](#v210)
5795ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
5895ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
59*2ba6a9bfSRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-6)
60*2ba6a9bfSRob Bradford    - [Contributors](#contributors-6)
6195ca7997SRob Bradford- [v20.2](#v202)
6295ca7997SRob Bradford- [v20.1](#v201)
637fc0776aSSebastien Boeuf- [v20.0](#v200)
647fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
657fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
667fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
677fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
687fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
69*2ba6a9bfSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-7)
70*2ba6a9bfSRob Bradford    - [Contributors](#contributors-7)
71d00eb4aaSRob Bradford- [v19.0](#v190)
72d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
73d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
74d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
75d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
76d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
77d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
78*2ba6a9bfSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-8)
79*2ba6a9bfSRob Bradford    - [Contributors](#contributors-8)
802c4f8d22SRob Bradford- [v18.0](#v180)
812c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
822c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
832c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
842c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
852c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
862c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
872c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
882c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
89*2ba6a9bfSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-9)
90*2ba6a9bfSRob Bradford    - [Contributors](#contributors-9)
91e6db5999SRob Bradford- [v17.0](#v170)
92e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
93e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
94e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
95e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
96e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
97*2ba6a9bfSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-10)
98*2ba6a9bfSRob Bradford    - [Contributors](#contributors-10)
995ed8e01fSRob Bradford- [v16.0](#v160)
1005ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1015ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1025ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
103*2ba6a9bfSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-11)
1045ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
105*2ba6a9bfSRob Bradford    - [Contributors](#contributors-11)
10630a01277SRob Bradford- [v15.0](#v150)
10730a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
10830a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
10930a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
11030a01277SRob Bradford    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
11130a01277SRob Bradford    - [Bug fixes](#bug-fixes)
112*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations-4)
113*2ba6a9bfSRob Bradford    - [Contributors](#contributors-12)
11430a01277SRob Bradford- [v0.14.1](#v0141)
11540c63dcfSRob Bradford- [v0.14.0](#v0140)
11640c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
11740c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
11840c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
11940c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
12040c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
12140c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
122*2ba6a9bfSRob Bradford    - [Deprecations](#deprecations-5)
123*2ba6a9bfSRob Bradford    - [Contributors](#contributors-13)
124f58b6f84SRob Bradford- [v0.13.0](#v0130)
125f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
12640c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
127f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
128f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
129f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
130f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
131*2ba6a9bfSRob Bradford    - [Contributors](#contributors-14)
132d42b5084SRob Bradford- [v0.12.0](#v0120)
133d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
134d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
135d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
136d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
137*2ba6a9bfSRob Bradford    - [Contributors](#contributors-15)
1387dcd3affSRob Bradford- [v0.11.0](#v0110)
1397dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1407dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1417dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
142d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1437dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1447dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1457dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1467dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
1477dcd3affSRob Bradford    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1487dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
149*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
150*2ba6a9bfSRob Bradford    - [Contributors](#contributors-16)
151198bd551SRob Bradford- [v0.10.0](#v0100)
152198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
153198bd551SRob Bradford    - [Memory Zones](#memory-zones)
154198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
155198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
156*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-13)
157*2ba6a9bfSRob Bradford    - [Contributors](#contributors-17)
158d714cf81SRob Bradford- [v0.9.0](#v090)
159d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
160d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
161d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
162d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
163d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
164d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
165d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
166d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
167d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
168d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
169198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
170*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-14)
171*2ba6a9bfSRob Bradford    - [Contributors](#contributors-18)
172d714cf81SRob Bradford- [v0.8.0](#v080)
173d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
174d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
175d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
176d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
177d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
178*2ba6a9bfSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-15)
179d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
180*2ba6a9bfSRob Bradford    - [Contributors](#contributors-19)
18196be8229SRob Bradford- [v0.7.0](#v070)
18296be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
18396be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
18496be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
18596be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
18696be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
18796be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
18896be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
18952b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
190*2ba6a9bfSRob Bradford    - [Contributors](#contributors-20)
19103cb26ccSSamuel Ortiz- [v0.6.0](#v060)
19203cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
19303cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
19403cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
19503cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
19603cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
197*2ba6a9bfSRob Bradford    - [Contributors](#contributors-21)
19894f2fc33SRob Bradford- [v0.5.1](#v051)
1992f395e60SSamuel Ortiz- [v0.5.0](#v050)
20094f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
20194f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
20294f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
20394f2fc33SRob Bradford    - [Development Tools](#development-tools)
20494f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
205*2ba6a9bfSRob Bradford    - [Contributors](#contributors-22)
206cec884e8SSamuel Ortiz- [v0.4.0](#v040)
20794f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
20894f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
20994f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
21094f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
21194f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
21294f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
21394f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
214*2ba6a9bfSRob Bradford    - [Contributors](#contributors-23)
2158e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
21694f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
21794f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
21894f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
21994f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
22094f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
22194f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
22294f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
22394f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2247688e6e2SSamuel Ortiz- [v0.2.0](#v020)
22594f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
22694f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
22794f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
22894f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
22994f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
23094f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2317688e6e2SSamuel Ortiz- [v0.1.0](#v010)
23294f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
23394f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
23494f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
23594f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
23694f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
23794f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
23894f2fc33SRob Bradford    - [Unit testing](#unit-testing)
23994f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
24094f2fc33SRob Bradford
241*2ba6a9bfSRob Bradford# v27.0
242*2ba6a9bfSRob Bradford
243*2ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
244*2ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
245*2ba6a9bfSRob Bradfordv27.0.
246*2ba6a9bfSRob Bradford
247*2ba6a9bfSRob Bradford### Community Engagement
248*2ba6a9bfSRob Bradford
249*2ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
250*2ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
251*2ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
252*2ba6a9bfSRob Bradford
253*2ba6a9bfSRob Bradford### Prebuilt Packages
254*2ba6a9bfSRob Bradford
255*2ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
256*2ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
257*2ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
258*2ba6a9bfSRob Bradfordfirmware options available.
259*2ba6a9bfSRob Bradford
260*2ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
261*2ba6a9bfSRob Bradford
262*2ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
263*2ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
264*2ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
265*2ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
266*2ba6a9bfSRob Bradford(#4658, #4676.)
267*2ba6a9bfSRob Bradford
268*2ba6a9bfSRob Bradford### Boot Tracing
269*2ba6a9bfSRob Bradford
270*2ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
271*2ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
272*2ba6a9bfSRob Bradford
273*2ba6a9bfSRob Bradford### Simplified Build Feature Flags
274*2ba6a9bfSRob Bradford
275*2ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
276*2ba6a9bfSRob Bradford
277*2ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
278*2ba6a9bfSRob Bradford  (with `kvm` enabled by default),
279*2ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
280*2ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
281*2ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
282*2ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
283*2ba6a9bfSRob Bradford  feature) and dumping guest memory.
284*2ba6a9bfSRob Bradford
285*2ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
286*2ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
287*2ba6a9bfSRob Bradford
288*2ba6a9bfSRob Bradford### Asynchronous Kernel Loading
289*2ba6a9bfSRob Bradford
290*2ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
291*2ba6a9bfSRob Bradfordx86-64. (#4538)
292*2ba6a9bfSRob Bradford
293*2ba6a9bfSRob Bradford### GDB Support for AArch64
294*2ba6a9bfSRob Bradford
295*2ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
296*2ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
297*2ba6a9bfSRob Bradford
298*2ba6a9bfSRob Bradford### Notable Bug Fixes
299*2ba6a9bfSRob Bradford
300*2ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
301*2ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
302*2ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
303*2ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
304*2ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
305*2ba6a9bfSRob Bradford
306*2ba6a9bfSRob Bradford### Deprecations
307*2ba6a9bfSRob Bradford
308*2ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
309*2ba6a9bfSRob Bradfordplan to use alternatives.
310*2ba6a9bfSRob Bradford
311*2ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
312*2ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
313*2ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
314*2ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
315*2ba6a9bfSRob Bradford
316*2ba6a9bfSRob Bradford### Contributors
317*2ba6a9bfSRob Bradford
318*2ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
319*2ba6a9bfSRob Bradford
320*2ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
321*2ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
322*2ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
323*2ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
324*2ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
325*2ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
326*2ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
327*2ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
328*2ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
329*2ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
330*2ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
331*2ba6a9bfSRob Bradford
332ed9e54d6SRob Bradford# v26.0
333ed9e54d6SRob Bradford
334ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
335ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
336ed9e54d6SRob Bradford
337ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
338ed9e54d6SRob Bradford
339ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
340ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
341ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
342ed9e54d6SRob Bradford
343ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
344ed9e54d6SRob Bradford
345ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
346ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
347ed9e54d6SRob Bradford
348ed9e54d6SRob Bradford### Notable Bug Fixes
349ed9e54d6SRob Bradford
350ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
351ed9e54d6SRob Bradford* PCI Express capabilties for functionality we do not support are now filtered
352ed9e54d6SRob Bradford  out (#4456)
353ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
354ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
355ed9e54d6SRob Bradford  (#4269, #4293)
356ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
357ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
358ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
359ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
360ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
361ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
362ed9e54d6SRob Bradford
363ed9e54d6SRob Bradford### Deprecations
364ed9e54d6SRob Bradford
365ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
366ed9e54d6SRob Bradfordplan to use alternatives.
367ed9e54d6SRob Bradford
368ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
369ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
370ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
371ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
372ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
373ed9e54d6SRob Bradford
374ed9e54d6SRob Bradford### Removals
375ed9e54d6SRob Bradford
376ed9e54d6SRob BradfordThe following functionality has been removed:
377ed9e54d6SRob Bradford
378ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
379ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
380ed9e54d6SRob Bradford  spawning feature (#4402.)
381ed9e54d6SRob Bradford
382ed9e54d6SRob Bradford### Contributors
383ed9e54d6SRob Bradford
384ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
385ed9e54d6SRob Bradford
386ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
387ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
388ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
389ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
390ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
391ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
392ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
393ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
394ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
395ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
396ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
397ed9e54d6SRob Bradford
398b132cd21SRob Bradford# v25.0
399b132cd21SRob Bradford
400b132cd21SRob BradfordThis release has been tracked through the [v25.0
401b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
402b132cd21SRob Bradford
403b132cd21SRob Bradford### `ch-remote` Improvements
404b132cd21SRob Bradford
405b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
406b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
407b132cd21SRob Bradford
408b132cd21SRob Bradford### VM "Coredump" Support
409b132cd21SRob Bradford
410b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
411b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
412b132cd21SRob Bradford
413b132cd21SRob Bradford### Notable Bug Fixes
414b132cd21SRob Bradford
415b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
416b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
417b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
418b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
419b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
420b132cd21SRob Bradford  5.16 (#4156)
421b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
422b132cd21SRob Bradford  Linux guest
423b132cd21SRob Bradford
424b132cd21SRob Bradford### Removals
425b132cd21SRob Bradford
426b132cd21SRob BradfordThe following functionality has been removed:
427b132cd21SRob Bradford
428b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
429b132cd21SRob Bradford  (#3968)
430b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
431b132cd21SRob Bradford
432b132cd21SRob Bradford### Contributors
433b132cd21SRob Bradford
434b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
435b132cd21SRob Bradford
436b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
437b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
438b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
439b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
440b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
441b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
442b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
443b132cd21SRob Bradford
4440150de55SSebastien Boeuf# v24.0
4450150de55SSebastien Boeuf
4460150de55SSebastien BoeufThis release has been tracked through the [v24.0
4470150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
4480150de55SSebastien Boeuf
4490150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
4500150de55SSebastien Boeuf
4510150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
4520150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
4530150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
4540150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
4550150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
4560150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
4570150de55SSebastien Boeuf
4580150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
4590150de55SSebastien Boeuf
4600150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
4610150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
4620150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
4630150de55SSebastien Boeuf
4640150de55SSebastien Boeuf### Sparse Mmap support
4650150de55SSebastien Boeuf
4660150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
4670150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
4680150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
4690150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
4700150de55SSebastien Boeufimpacts the performance related to this device.
4710150de55SSebastien Boeuf
4720150de55SSebastien Boeuf### Expose Platform Serial Number
4730150de55SSebastien Boeuf
4740150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
4750150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
4760150de55SSebastien Boeufguest through the SMBIOS.
4770150de55SSebastien Boeuf
4780150de55SSebastien Boeuf### Notable Bug Fixes
4790150de55SSebastien Boeuf
4800150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
4810150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
4820150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
4830150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
4840150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
4850150de55SSebastien Boeuf
4860150de55SSebastien Boeuf### Notable Improvements
4870150de55SSebastien Boeuf
4880150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
4890150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
4900150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
4910150de55SSebastien Boeuf
4920150de55SSebastien Boeuf### Deprecations
4930150de55SSebastien Boeuf
4940150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
4950150de55SSebastien Boeufplan to use alternatives
4960150de55SSebastien Boeuf
4970150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
4980150de55SSebastien Boeuf  (#3968)
4990150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
5000150de55SSebastien Boeuf
5010150de55SSebastien Boeuf### New on the Website
5020150de55SSebastien Boeuf
5030150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
5040150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
5050150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
5060150de55SSebastien Boeuf
5070150de55SSebastien Boeuf### Contributors
5080150de55SSebastien Boeuf
5090150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
5100150de55SSebastien Boeuf
5110150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
5120150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
5130150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
5140150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
5150150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
5160150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
5170150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
5180150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
5190150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
5200150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
5210150de55SSebastien Boeuf
5220150de55SSebastien Boeuf# v23.1
5230150de55SSebastien Boeuf
5240150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
5250150de55SSebastien Boeuf
5260150de55SSebastien Boeuf* Add some missing seccomp rules
5270150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
5280150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
5290150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
5300150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
5310150de55SSebastien Boeuf
5320c9c56f5SRob Bradford# v23.0
5330c9c56f5SRob Bradford
5340c9c56f5SRob BradfordThis release has been tracked through the [v23.0
5350c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
5360c9c56f5SRob Bradford
5370c9c56f5SRob Bradford### vDPA Support
5380c9c56f5SRob Bradford
5390c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
5400c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
5410c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
5420c9c56f5SRob Bradford
5430c9c56f5SRob Bradford### Updated OS Support list
5440c9c56f5SRob Bradford
5450c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
5460c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
5470c9c56f5SRob Bradford
5480c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
5490c9c56f5SRob Bradford
5500c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
5510c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
5520c9c56f5SRob Bradfordallocated RAM. (#3938)
5530c9c56f5SRob Bradford
5540c9c56f5SRob Bradford### `AMX` Support
5550c9c56f5SRob Bradford
5560c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
5570c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
5580c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
5590c9c56f5SRob Bradford
5600c9c56f5SRob Bradford### Notable Bug Fixes
5610c9c56f5SRob Bradford
5620c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
5630c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
5640c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
5650c9c56f5SRob Bradford  `virtio-mem` (#3883)
5660c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
5670c9c56f5SRob Bradford  vIOMMU (#3870)
5680c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
5690c9c56f5SRob Bradford  (#3848)
5700c9c56f5SRob Bradford
5710c9c56f5SRob Bradford### Deprecations
5720c9c56f5SRob Bradford
5730c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
5740c9c56f5SRob Bradfordplan to use alternatives
5750c9c56f5SRob Bradford
5760c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
5770c9c56f5SRob Bradford  (#3968)
5780c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
5790c9c56f5SRob Bradford
5800c9c56f5SRob Bradford### Contributors
5810c9c56f5SRob Bradford
5820c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
5830c9c56f5SRob Bradford
5840c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
5850c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
5860c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
5870c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
5880c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
5890c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
5900c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
5910c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
5920c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
5930c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
5940c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
5950c9c56f5SRob Bradford
5960c9c56f5SRob Bradford# v22.1
5970c9c56f5SRob Bradford
5980c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
5990c9c56f5SRob Bradford
6000c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
6010c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
6020c9c56f5SRob Bradford
6036aa10938SRob Bradford# v22.0
6046aa10938SRob Bradford
6050c9c56f5SRob BradfordThis release has been tracked through the [v22.0
6060c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
6076aa10938SRob Bradford
6086aa10938SRob Bradford### GDB Debug Stub Support
6096aa10938SRob Bradford
6106aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
6116aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
6126aa10938SRob Bradfordthe [gdb
6136aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
6146aa10938SRob Bradford
6156aa10938SRob Bradford### `virtio-iommu` Backed Segments
6166aa10938SRob Bradford
6176aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
6186aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
6196aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
6206aa10938SRob Bradford
6216aa10938SRob Bradford### Before Boot Configuration Changes
6226aa10938SRob Bradford
6236aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
6246aa10938SRob Bradfordresize) before the VM is booted.
6256aa10938SRob Bradford
6266aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
6276aa10938SRob Bradford
6286aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
6296aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
6306aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
6316aa10938SRob Bradfordmemory density.
6326aa10938SRob Bradford
6336aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
6346aa10938SRob Bradford
6356aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
6366aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
6376aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
6386aa10938SRob Bradfordhas been updated for this usage.
6396aa10938SRob Bradford
6406aa10938SRob Bradford### PMU Support for AArch64
6416aa10938SRob Bradford
6426aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
6436aa10938SRob Bradfordexposed automatically if available from the host.
6446aa10938SRob Bradford
6450c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
6466aa10938SRob Bradford
6476aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
6486aa10938SRob BradfordInternational" license which is aligned with the project charter under the
6496aa10938SRob BradfordLinux Foundation.
6506aa10938SRob Bradford
6516aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
6526aa10938SRob Bradford
6536aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
6546aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
6556aa10938SRob Bradfordversion.
6566aa10938SRob Bradford
6576aa10938SRob Bradford### Notable Bug Fixes
6586aa10938SRob Bradford
6596aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
6606aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
6616aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
6626aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
6636aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
6646aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
6656aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
6666aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
6676aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
6686aa10938SRob Bradford
6696aa10938SRob Bradford### Contributors
6706aa10938SRob Bradford
6716aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
6726aa10938SRob Bradford
6736aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
6746aa10938SRob Bradford* Barret Rhoden <brho@google.com>
6756aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
6766aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
6776aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
6786aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
6796aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
6806aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
6816aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
6826aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
6836aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
6846aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
6856aa10938SRob Bradford
68695ca7997SRob Bradford# v21.0
68795ca7997SRob Bradford
68895ca7997SRob BradfordThis release has been tracked through the [v21.0
68995ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
69095ca7997SRob Bradford
69195ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
69295ca7997SRob Bradford
6936aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
6946aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
6956aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
6966aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
6976aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
69895ca7997SRob Bradford
69995ca7997SRob Bradford### Recommended Kernel is Now 5.15
70095ca7997SRob Bradford
7016aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
7026aa10938SRob Bradfordis now 5.15. (#3530)
70395ca7997SRob Bradford
70495ca7997SRob Bradford### Notable Bug fixes
70595ca7997SRob Bradford
70695ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
70795ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
70895ca7997SRob Bradford* Support live migration within firmware (#3586)
70995ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
71095ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
71195ca7997SRob Bradford
71295ca7997SRob Bradford### Contributors
71395ca7997SRob Bradford
71495ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
71595ca7997SRob Bradford
71695ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
71795ca7997SRob Bradford* Barret Rhoden <brho@google.com>
71895ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
71995ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
72095ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
72195ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
72295ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
72395ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
72495ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
72595ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
72695ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
72795ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
72895ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
72995ca7997SRob Bradford
73095ca7997SRob Bradford# v20.2
73195ca7997SRob Bradford
73295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
73395ca7997SRob Bradford
73495ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
73595ca7997SRob Bradford  when this fails due to older kernel (#3456)
73695ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
73795ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
73895ca7997SRob Bradford  (#3496)
73995ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
74095ca7997SRob Bradford
74195ca7997SRob Bradford# v20.1
74295ca7997SRob Bradford
74395ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
74495ca7997SRob Bradford
74595ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
74695ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
74795ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
74895ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
74995ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
75095ca7997SRob Bradford
7517fc0776aSSebastien Boeuf# v20.0
7527fc0776aSSebastien Boeuf
7537fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
7547fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
7557fc0776aSSebastien Boeuf
7567fc0776aSSebastien Boeuf### Multiple PCI segments support
7577fc0776aSSebastien Boeuf
7587fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
7597fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
7607fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
7617fc0776aSSebastien Boeuf
7627fc0776aSSebastien Boeuf### CPU pinning
7637fc0776aSSebastien Boeuf
7647fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
7657fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
7667fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
7677fc0776aSSebastien Boeuf
7687fc0776aSSebastien Boeuf### Improved VFIO support
7697fc0776aSSebastien Boeuf
7707fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
7717fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
7727fc0776aSSebastien Boeufthe passthrough device.
7737fc0776aSSebastien Boeuf
7747fc0776aSSebastien Boeuf### Safer code
7757fc0776aSSebastien Boeuf
7767fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
7777fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
7787fc0776aSSebastien Boeufunsafe sections are safe to use.
7797fc0776aSSebastien Boeuf
7807fc0776aSSebastien Boeuf### Extended documentation
7817fc0776aSSebastien Boeuf
7827fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
7837fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
7847fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
7857fc0776aSSebastien Boeuf
7867fc0776aSSebastien Boeuf### Notable bug fixes
7877fc0776aSSebastien Boeuf
7887fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
7897fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
7907fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
7917fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
7927fc0776aSSebastien Boeuf
7937fc0776aSSebastien Boeuf### Contributors
7947fc0776aSSebastien Boeuf
7957fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
7967fc0776aSSebastien Boeuf
7977fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
7987fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
7997fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
8007fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
8017fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
8027fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
8037fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
8047fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
8057fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
8067fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
8077fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
8087fc0776aSSebastien Boeuf
809d00eb4aaSRob Bradford# v19.0
810d00eb4aaSRob Bradford
811d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
812d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
813d00eb4aaSRob Bradford
814d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
815d00eb4aaSRob Bradford
816d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
817d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
818d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
819d00eb4aaSRob Bradford
820d00eb4aaSRob Bradford### PCI boot time optimisations
821d00eb4aaSRob Bradford
822d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
823d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
824d00eb4aaSRob Bradford
825d00eb4aaSRob Bradford### Improved TDX support
826d00eb4aaSRob Bradford
827d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
828d00eb4aaSRob Bradfordexposed via the firmware to the guest.
829d00eb4aaSRob Bradford
830d00eb4aaSRob Bradford### Live migration enhancements
831d00eb4aaSRob Bradford
832d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
833d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
834d00eb4aaSRob Bradfordmigration.
835d00eb4aaSRob Bradford
836d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
837d00eb4aaSRob Bradford
838d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
839d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
840d00eb4aaSRob Bradford
841d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
842d00eb4aaSRob Bradford
843d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
844d00eb4aaSRob Bradford
845d00eb4aaSRob Bradford### Notable bug fixes
846d00eb4aaSRob Bradford
847d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
848d00eb4aaSRob Bradford  snapshot/restore (#3165)
849d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
850d00eb4aaSRob Bradford  (#3078 #3113)
851d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
852d00eb4aaSRob Bradford  the underlying crate (#3157)
853d00eb4aaSRob Bradford
854d00eb4aaSRob Bradford### Contributors
855d00eb4aaSRob Bradford
856d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
857d00eb4aaSRob Bradford
858d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
859d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
860d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
861d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
862d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
863d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
864d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
865d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
866d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
867d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
868d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
869d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
870d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
871d00eb4aaSRob Bradford
8722c4f8d22SRob Bradford# v18.0
8732c4f8d22SRob Bradford
8742c4f8d22SRob BradfordThis release has been tracked through the [v18.0
8752c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
8762c4f8d22SRob Bradford
8772c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
8782c4f8d22SRob Bradford
8792c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
8802c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
8812c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
8822c4f8d22SRob Bradford
8832c4f8d22SRob Bradford### Migration support for `vhost-user` devices
8842c4f8d22SRob Bradford
8852c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
8862c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
8872c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
8882c4f8d22SRob Bradford
8892c4f8d22SRob Bradford### VHDX disk image support
8902c4f8d22SRob Bradford
8912c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
8922c4f8d22SRob Bradford
8932c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
8942c4f8d22SRob Bradford
8952c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
8962c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
8972c4f8d22SRob Bradford
8982c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
8992c4f8d22SRob Bradford
9002c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
9012c4f8d22SRob Bradford
9022c4f8d22SRob Bradford### Live migration on MSHV hypervisor
9032c4f8d22SRob Bradford
9042c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
9052c4f8d22SRob Bradfordefficient tracking of dirty pages.
9062c4f8d22SRob Bradford
9072c4f8d22SRob Bradford### AArch64 CPU topology support
9082c4f8d22SRob Bradford
9092c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
9102c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
9112c4f8d22SRob Bradfordtree.
9122c4f8d22SRob Bradford
9132c4f8d22SRob Bradford### Power button support on AArch64
9142c4f8d22SRob Bradford
9152c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
9162c4f8d22SRob Bradfordis now supported when running on AArch64.
9172c4f8d22SRob Bradford
9182c4f8d22SRob Bradford### Notable bug fixes
9192c4f8d22SRob Bradford
9202c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
9212c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
9222c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
9232c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
9242c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
9252c4f8d22SRob Bradford
9262c4f8d22SRob Bradford### Contributors
9272c4f8d22SRob Bradford
9282c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
9292c4f8d22SRob Bradford
9302c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
9312c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
9322c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
9332c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
9342c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
9352c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
9362c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9372c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
9382c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
9392c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
9402c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
9412c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
9422c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
9432c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
944e6db5999SRob Bradford
945e6db5999SRob Bradford# v17.0
946e6db5999SRob Bradford
947e6db5999SRob BradfordThis release has been tracked through the [v17.0
948e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
949e6db5999SRob Bradford
950e6db5999SRob Bradford### ARM64 NUMA support using ACPI
951e6db5999SRob Bradford
952e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
953e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
954e6db5999SRob Bradford
955e6db5999SRob Bradford### `Seccomp` support for MSHV backend
956e6db5999SRob Bradford
957e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
958e6db5999SRob Bradfordhypervisor backend.
959e6db5999SRob Bradford
960e6db5999SRob Bradford### Hotplug of `macvtap` devices
961e6db5999SRob Bradford
962e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
963e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
964e6db5999SRob Bradfordtool supports this functionality when adding a network device.
965e6db5999SRob Bradford
966e6db5999SRob Bradford### Improved SGX support
967e6db5999SRob Bradford
968e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
969e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
970e6db5999SRob Bradford
971e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
972e6db5999SRob Bradford
973e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
974e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
975e6db5999SRob Bradford
976e6db5999SRob Bradford### Notable bug fixes
977e6db5999SRob Bradford
978e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
979e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
980e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
981e6db5999SRob Bradford(#2833).
982e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
983e6db5999SRob Bradford
984e6db5999SRob Bradford### Contributors
985e6db5999SRob Bradford
986e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
987e6db5999SRob Bradford
988e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
989e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
990e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
991e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
992e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
993e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
994e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
995e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
996e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
997e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
998e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
999e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1000e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1001e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1002e6db5999SRob Bradford
10035ed8e01fSRob Bradford# v16.0
10045ed8e01fSRob Bradford
10055ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
10065ed8e01fSRob Bradford
10075ed8e01fSRob Bradford### Improved live migration support
10085ed8e01fSRob Bradford
10095ed8e01fSRob 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.
10105ed8e01fSRob Bradford
10115ed8e01fSRob Bradford### Improved `vhost-user` support
10125ed8e01fSRob Bradford
10135ed8e01fSRob 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.
10145ed8e01fSRob Bradford
10155ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
10165ed8e01fSRob Bradford
10175ed8e01fSRob 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.
10185ed8e01fSRob Bradford
10195ed8e01fSRob Bradford### Notable bug fixes
10205ed8e01fSRob Bradford
10215ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
10225ed8e01fSRob 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).
10235ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
10245ed8e01fSRob Bradford
10255ed8e01fSRob Bradford### Removed functionality
10265ed8e01fSRob Bradford
10275ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
10285ed8e01fSRob Bradford
10295ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
10305ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
10315ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
10325ed8e01fSRob Bradford
10335ed8e01fSRob Bradford### Contributors
10345ed8e01fSRob Bradford
10355ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
10365ed8e01fSRob Bradford
10375ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
10385ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
10395ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
10405ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
10415ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
10425ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
10435ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
10445ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
10455ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
10465ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
10475ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
10485ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10495ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
10505ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
10515ed8e01fSRob Bradford
105230a01277SRob Bradford# v15.0
105330a01277SRob Bradford
105430a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
105530a01277SRob Bradford
105630a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
105730a01277SRob Bradford
105830a01277SRob Bradford### Version numbering and stability guarantees
105930a01277SRob Bradford
106030a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
106130a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
106230a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
106330a01277SRob Bradford
106430a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
106530a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
106630a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
106730a01277SRob Bradford  will be documented in the release notes.
106830a01277SRob Bradford* Point releases will be made between individual releases where there are
106930a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
107030a01277SRob Bradford
107130a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
107230a01277SRob Bradford
107330a01277SRob Bradford* Snapshot/restore is not supported across different versions
107430a01277SRob Bradford* Live migration is not supported across different versions
107530a01277SRob Bradford* The following features are considered experimental and may change
107630a01277SRob Bradford  substantially between releases: TDX, SGX.
107730a01277SRob Bradford
107830a01277SRob Bradford### Network device rate limiting
107930a01277SRob Bradford
108030a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
108130a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
108230a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
108330a01277SRob Bradford
108430a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
108530a01277SRob Bradford
108630a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
108730a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
108830a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
108930a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
109030a01277SRob Bradford
109130a01277SRob Bradford### `--api-socket` supports file descriptor parameter
109230a01277SRob Bradford
109330a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
109430a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
109530a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
109630a01277SRob Bradford
109730a01277SRob Bradford### Bug fixes
109830a01277SRob Bradford
109930a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
110030a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
110130a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
110230a01277SRob Bradford  reprogram them (#1797,#1798)
110330a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
110430a01277SRob Bradford  exhaustion on the host) (#2517)
110530a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
110630a01277SRob Bradford  prevents snapshot & restore working (#2535)
110730a01277SRob Bradford
110830a01277SRob Bradford### Deprecations
110930a01277SRob Bradford
111030a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
111130a01277SRob Bradford
111230a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
111330a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
111430a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
111530a01277SRob Bradford
111630a01277SRob Bradford### Contributors
111730a01277SRob Bradford
111830a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
111930a01277SRob Bradford
112030a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
112130a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
112230a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
112330a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
112430a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
112530a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
112630a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
112730a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
112830a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
112930a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
113030a01277SRob Bradford* William Douglas <william.douglas@intel.com>
113130a01277SRob Bradford
113230a01277SRob Bradford# v0.14.1
113330a01277SRob Bradford
113430a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
113530a01277SRob Bradfordin this release:
113630a01277SRob Bradford
113730a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
113830a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
113930a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
114030a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
114130a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
114230a01277SRob Bradford
114340c63dcfSRob Bradford# v0.14.0
114440c63dcfSRob Bradford
114540c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
114640c63dcfSRob Bradford
114740c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
114840c63dcfSRob Bradford
114940c63dcfSRob Bradford### Structured event monitoring
115040c63dcfSRob Bradford
115140c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
115240c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
115340c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
115440c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
115540c63dcfSRob BradfordHypervisor API surface.
115640c63dcfSRob Bradford
115740c63dcfSRob Bradford### MSHV improvements
115840c63dcfSRob Bradford
115940c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
116040c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
116140c63dcfSRob Bradfordthe MSHV support.
116240c63dcfSRob Bradford
116340c63dcfSRob Bradford### Improved aarch64 platform
116440c63dcfSRob Bradford
116540c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
116640c63dcfSRob BradfordVM including an enhanced serial UART.
116740c63dcfSRob Bradford
116840c63dcfSRob Bradford### Updated hotplug documentation
116940c63dcfSRob Bradford
117040c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
117140c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
117240c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
117340c63dcfSRob Bradford
117440c63dcfSRob Bradford### PTY control for serial and `virtio-console`
117540c63dcfSRob Bradford
117640c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
117740c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
117840c63dcfSRob BradfordPTY subsystem.
117940c63dcfSRob Bradford
118040c63dcfSRob Bradford### Block device rate limiting
118140c63dcfSRob Bradford
118240c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
118340c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
118430a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
118540c63dcfSRob Bradford
118640c63dcfSRob Bradford
118740c63dcfSRob Bradford### Deprecations
118840c63dcfSRob Bradford
118940c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
119040c63dcfSRob Bradford
119140c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
119240c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
119340c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
119440c63dcfSRob Bradford
119540c63dcfSRob Bradford
119640c63dcfSRob Bradford### Contributors
119740c63dcfSRob Bradford
119840c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
119940c63dcfSRob Bradfordsome new faces.
120040c63dcfSRob Bradford
120140c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
120240c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
120340c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
120440c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
120540c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
120640c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
120740c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
120840c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
120940c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
121040c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
121140c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
121240c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
121340c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
121440c63dcfSRob Bradford
1215f58b6f84SRob Bradford# v0.13.0
1216f58b6f84SRob Bradford
1217f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1218f58b6f84SRob Bradford
1219f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1220f58b6f84SRob Bradford
1221f58b6f84SRob Bradford### Wider VFIO device support
1222f58b6f84SRob Bradford
1223f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1224f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1225f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1226f58b6f84SRob Bradforddrivers.
1227f58b6f84SRob Bradford
122840c63dcfSRob Bradford### Improved huge page support
1229f58b6f84SRob Bradford
1230f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1231f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1232f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1233f58b6f84SRob Bradforddesired size in their pool.
1234f58b6f84SRob Bradford
1235f58b6f84SRob Bradford### MACvTAP support
1236f58b6f84SRob Bradford
1237f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1238f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1239f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1240f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1241f58b6f84SRob Bradford
1242f58b6f84SRob Bradford### VHD disk image support
1243f58b6f84SRob Bradford
1244f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1245f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1246f58b6f84SRob Bradford
1247f58b6f84SRob Bradford### Improved Virtio device threading
1248f58b6f84SRob Bradford
1249f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1250f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1251f58b6f84SRob Bradfordpredictable name derived from the device id.
1252f58b6f84SRob Bradford
1253f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1254f58b6f84SRob Bradford
1255f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1256f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1257f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1258f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1259f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1260f58b6f84SRob Bradford
1261f58b6f84SRob Bradford### Contributors
1262f58b6f84SRob Bradford
1263f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1264f58b6f84SRob Bradfordsome new faces.
1265f58b6f84SRob Bradford
1266f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1267f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1268f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1269f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1270f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1271f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1272f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1273f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1274f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1275f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1276f58b6f84SRob Bradford
1277d42b5084SRob Bradford# v0.12.0
1278d42b5084SRob Bradford
1279d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1280d42b5084SRob Bradford
1281d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1282d42b5084SRob Bradford
1283d42b5084SRob Bradford### ARM64 enhancements
1284d42b5084SRob Bradford
1285d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1286d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1287d42b5084SRob Bradford
1288d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1289d42b5084SRob Bradford
1290d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1291d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1292d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1293d42b5084SRob Bradfordremoved.
1294d42b5084SRob Bradford
1295d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1296d42b5084SRob Bradford
1297d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1298d42b5084SRob Bradfordinstead hosted in [it's own
1299d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1300d42b5084SRob Bradford
1301d42b5084SRob Bradford### Enhanced "info" API
1302d42b5084SRob Bradford
1303d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1304d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1305d42b5084SRob Bradford
1306d42b5084SRob Bradford### Contributors
1307d42b5084SRob Bradford
1308d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1309d42b5084SRob Bradford
1310d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1311d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1312d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1313d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1314d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1315d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1316d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1317d42b5084SRob Bradford
13187dcd3affSRob Bradford# v0.11.0
13197dcd3affSRob Bradford
13207dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
13217dcd3affSRob Bradford
13227dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
13237dcd3affSRob Bradford
13247dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
13257dcd3affSRob Bradford
13267dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
13277dcd3affSRob Bradfordbe used for a significantly higher performance block device.
13287dcd3affSRob Bradford
13297dcd3affSRob Bradford### Windows Guest Support
13307dcd3affSRob Bradford
13317dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
13327dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
13337dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
13347dcd3affSRob Bradforddocumentation](docs/windows.md).
13357dcd3affSRob Bradford
13367dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
13377dcd3affSRob Bradford
13387dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
13397dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
13407dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
13417dcd3affSRob Bradford
1342d00eb4aaSRob Bradford### `virtio-mmio` Removal
13437dcd3affSRob Bradford
13447dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
13457dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
13467dcd3affSRob Bradfordreduce the testing burden of the project.
13477dcd3affSRob Bradford
13487dcd3affSRob Bradford### Snapshot/Restore support for ARM64
13497dcd3affSRob Bradford
13507dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
13517dcd3affSRob Bradfordimplemented.
13527dcd3affSRob Bradford
13537dcd3affSRob Bradford### Improved Linux Boot Time
13547dcd3affSRob Bradford
13557dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
13567dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
13577dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
13587dcd3affSRob Bradford
13597dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
13607dcd3affSRob Bradford
13617dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
13627dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
13637dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
13647dcd3affSRob Bradfordresources.
13657dcd3affSRob Bradford
13667dcd3affSRob Bradford### Default Log Level Changed
13677dcd3affSRob Bradford
13687dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
13697dcd3affSRob Bradfordeasier to see potential issues. New [logging
13707dcd3affSRob Bradforddocumentation](docs/logging) was also added.
13717dcd3affSRob Bradford
13727dcd3affSRob Bradford### New `--balloon` Parameter Added
13737dcd3affSRob Bradford
13747dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
13757dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
13767dcd3affSRob Bradfordcontrols without overloading `--memory`.
13777dcd3affSRob Bradford
13787dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
13797dcd3affSRob Bradford
13807dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
13817dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
13827dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
13837dcd3affSRob Bradford
13847dcd3affSRob Bradford### Notable Bug Fixes
13857dcd3affSRob Bradford
13867dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
13877dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
13887dcd3affSRob Bradford* CPU identification string is now exposed to the guest
13897dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
13907dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
13917dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
13927dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
13937dcd3affSRob Bradford  can be used (#1803)
13947dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
13957dcd3affSRob Bradford  correctly
13967dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
13977dcd3affSRob Bradford  correctly
13987dcd3affSRob Bradford
13997dcd3affSRob Bradford### Contributors
14007dcd3affSRob Bradford
14017dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
14027dcd3affSRob Bradford
14037dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
14047dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
14057dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
14067dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
14077dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
14087dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
14097dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
14107dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
14117dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
14127dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
14137dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
14147dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
14157dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
14167dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
14177dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
14187dcd3affSRob Bradford
14197dcd3affSRob Bradford
1420198bd551SRob Bradford# v0.10.0
1421198bd551SRob Bradford
1422198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1423198bd551SRob Bradford
1424198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1425198bd551SRob Bradford
1426198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1427198bd551SRob Bradford
1428198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1429198bd551SRob Bradford
1430198bd551SRob Bradford### Memory Zones
1431198bd551SRob Bradford
1432198bd551SRob 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).
1433198bd551SRob Bradford
1434198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1435198bd551SRob Bradford
1436198bd551SRob 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`.
1437198bd551SRob Bradford
1438198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1439198bd551SRob Bradford
1440198bd551SRob 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.
1441198bd551SRob Bradford
1442198bd551SRob Bradford### Notable Bug Fixes
1443198bd551SRob Bradford
1444198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1445198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1446198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1447198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1448198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1449198bd551SRob Bradford
1450198bd551SRob Bradford### Contributors
1451198bd551SRob Bradford
1452198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1453198bd551SRob Bradford
1454198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1455198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1456198bd551SRob Bradford* Anatol Belski <ab@php.net>
1457198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1458198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1459198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1460198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1461198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1462198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1463198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1464198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1465198bd551SRob Bradford
1466d714cf81SRob Bradford# v0.9.0
1467d714cf81SRob Bradford
1468d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1469d714cf81SRob Bradford
1470d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1471d714cf81SRob Bradford
1472d714cf81SRob Bradford### `io_uring` Based Block Device Support
1473d714cf81SRob Bradford
1474d714cf81SRob 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.
1475d714cf81SRob Bradford
1476d714cf81SRob Bradford### Block and Network Device Statistics
1477d714cf81SRob Bradford
1478d714cf81SRob 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.
1479d714cf81SRob Bradford
1480d714cf81SRob Bradford### HTTP API Responses
1481d714cf81SRob Bradford
1482d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1483d714cf81SRob Bradford
1484d714cf81SRob Bradford### CPU Topology
1485d714cf81SRob Bradford
1486d714cf81SRob 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.
1487d714cf81SRob Bradford
1488d714cf81SRob Bradford### Release Build Optimization
1489d714cf81SRob Bradford
1490d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1491d714cf81SRob Bradford
1492d714cf81SRob Bradford### Hypervisor Abstraction
1493d714cf81SRob Bradford
1494d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1495d714cf81SRob Bradford
1496d714cf81SRob Bradford### Snapshot/Restore Improvements
1497d714cf81SRob Bradford
1498d714cf81SRob 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.
1499d714cf81SRob Bradford
1500d714cf81SRob Bradford### Virtio Memory Ballooning Support
1501d714cf81SRob Bradford
1502d714cf81SRob 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.
1503d714cf81SRob Bradford
1504d714cf81SRob Bradford### Enhancements to ARM64 Support
1505d714cf81SRob Bradford
1506d714cf81SRob 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.
1507d714cf81SRob Bradford
1508d714cf81SRob Bradford### Intel SGX Support
1509d714cf81SRob Bradford
1510d714cf81SRob 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).
1511d714cf81SRob Bradford
1512d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1513d714cf81SRob Bradford
1514d714cf81SRob 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.
1515d714cf81SRob Bradford
1516d714cf81SRob Bradford### Notable Bug Fixes
1517d714cf81SRob Bradford
1518d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1519d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1520d714cf81SRob 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).
1521d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1522d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1523d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1524d714cf81SRob Bradford
1525d714cf81SRob Bradford### Contributors
1526d714cf81SRob Bradford
1527d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1528d714cf81SRob Bradford
1529d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1530d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1531d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1532d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1533d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1534d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1535d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1536d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1537d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1538d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1539d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1540d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1541d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1542d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1543d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1544d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1545d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1546d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1547d714cf81SRob Bradford
1548d714cf81SRob Bradford
154952b83969SRob Bradford# v0.8.0
155052b83969SRob Bradford
155152b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
155252b83969SRob Bradford
155352b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
155452b83969SRob Bradford
155552b83969SRob Bradford### Experimental Snapshot and Restore Support
155652b83969SRob Bradford
155752b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
155852b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
155952b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
156052b83969SRob Bradfordoriginal VM at the point it was paused.
156152b83969SRob Bradford
156252b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
156352b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
156452b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
156552b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
156652b83969SRob Bradford(#1176).
156752b83969SRob Bradford
156852b83969SRob Bradford### Experimental ARM64 Support
156952b83969SRob Bradford
157052b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
157152b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
157252b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
157352b83969SRob Bradford
157452b83969SRob Bradford### Support for Using 5-level Paging in Guests
157552b83969SRob Bradford
157652b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
157752b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
157852b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
157952b83969SRob Bradfordwork due to current limitations in the PVH boot process.
158052b83969SRob Bradford
158152b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
158252b83969SRob Bradford
158352b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
158452b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
158552b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
158652b83969SRob Bradfordthe guest must service.
158752b83969SRob Bradford
158852b83969SRob Bradford### `vhost_user_fs` Improvements
158952b83969SRob Bradford
159052b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
159152b83969SRob Bradford
159252b83969SRob Bradford
159352b83969SRob Bradford### Notable Bug Fixes
159452b83969SRob Bradford
159552b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
159652b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
159752b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
159852b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
159952b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
160052b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
160152b83969SRob Bradford  #1216).
160252b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
160352b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
160452b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
160552b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
160652b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
160752b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
160852b83969SRob Bradford  (#751).
160952b83969SRob Bradford
161052b83969SRob Bradford### Command Line and API Changes
161152b83969SRob Bradford
161252b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
161352b83969SRob Bradford
161452b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
161552b83969SRob Bradford  rather than `sock` in some cases.
161652b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
161752b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
161852b83969SRob Bradford  offered for negotiation.
161952b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
162052b83969SRob Bradford  address for the `tap` device on the host.
162152b83969SRob Bradford
162252b83969SRob Bradford### Contributors
162352b83969SRob Bradford
162452b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
162552b83969SRob Bradford
162652b83969SRob Bradford* Anatol Belski <ab@php.net>
162752b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
162852b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
162952b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
163052b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
163152b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
163252b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
163352b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
163452b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
163552b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
163652b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
163752b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
163852b83969SRob Bradford
163996be8229SRob Bradford# v0.7.0
164096be8229SRob Bradford
164196be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
164296be8229SRob Bradford
164396be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
164496be8229SRob Bradford
164596be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
164696be8229SRob Bradford
164796be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
164896be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
164996be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
16505c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
165196be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
165296be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
165396be8229SRob Bradforddevices to ease their removal.
165496be8229SRob Bradford
165596be8229SRob Bradford### Alternative `libc` Support
165696be8229SRob Bradford
165796be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
165896be8229SRob Bradfordcontains a static binary compiled using that toolchain.
165996be8229SRob Bradford
166096be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
166196be8229SRob Bradford
166296be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
166396be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
166496be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
166596be8229SRob Bradfordis passed when the devices are created.
166696be8229SRob Bradford
166796be8229SRob Bradford### Initial RamFS Support
166896be8229SRob Bradford
166996be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
167096be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
167196be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
167296be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
167396be8229SRob Bradfordminimal image.
167496be8229SRob Bradford
167596be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
167696be8229SRob Bradford
167796be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
167896be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
167996be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
168096be8229SRob Bradfordrequires kernel patches to be able to support it.
168196be8229SRob Bradford
168296be8229SRob Bradford### `Seccomp` Sandboxing
168396be8229SRob Bradford
168496be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
168596be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
168696be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
168796be8229SRob Bradford
168896be8229SRob Bradford### Updated Distribution Support
168996be8229SRob Bradford
169096be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
169196be8229SRob Bradforddistributions and is part of our regular testing programme.
169296be8229SRob Bradford
169396be8229SRob Bradford### Command Line and API Changes
169496be8229SRob Bradford
169596be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
169696be8229SRob Bradford
169796be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
169896be8229SRob Bradford  If no name is specified the VMM chooses one.
169996be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
170096be8229SRob Bradford  memory instead of providing a path.
170196be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
170296be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
170396be8229SRob Bradford  option and replaced it with a single optional field.
170496be8229SRob Bradford* There is enhanced validation of the command line and API provided
170596be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
170696be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
170796be8229SRob Bradford  device.
170896be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
170996be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
171096be8229SRob Bradford  has appropriate new HTTP endpoints too.
171196be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
171296be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
171396be8229SRob Bradford  to provide the equivalent of a read-only file.
171496be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
171596be8229SRob Bradford  with those used by `--disk`.
171696be8229SRob Bradford
171796be8229SRob Bradford### Contributors
171896be8229SRob Bradford
171996be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
172096be8229SRob Bradford
172196be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
172296be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
172396be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
172496be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
172596be8229SRob Bradford* Dean Sheather <dean@coder.com>
172696be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
172796be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
172896be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
172996be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
173096be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
173196be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
173296be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
173396be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
173496be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
173596be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
173696be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
173796be8229SRob Bradford
173803cb26ccSSamuel Ortiz# v0.6.0
173903cb26ccSSamuel Ortiz
174003cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
174103cb26ccSSamuel Ortiz
174203cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
174303cb26ccSSamuel Ortiz
174403cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
174503cb26ccSSamuel Ortiz
174603cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
174703cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
174803cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
174903cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
175003cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
175103cb26ccSSamuel Ortiz
175203cb26ccSSamuel Ortiz### Shared Filesystem Improvements
175303cb26ccSSamuel Ortiz
175403cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
175503cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
175603cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
175703cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
175803cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
175903cb26ccSSamuel Ortiz
176003cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
176103cb26ccSSamuel Ortiz
176203cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
176303cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
176403cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
176503cb26ccSSamuel Ortizinto their own, separate processes.
17665c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
176703cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
176803cb26ccSSamuel Ortiz
176903cb26ccSSamuel Ortiz### Command Line Interface
177003cb26ccSSamuel Ortiz
177103cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
177237a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
177337a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
177437a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
177537a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
177637a2c13aSAlyssa Rossis created with each build and available e.g. at
177703cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
177803cb26ccSSamuel Ortiz
177903cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
178003cb26ccSSamuel Ortizcommands.
178103cb26ccSSamuel Ortiz
178203cb26ccSSamuel Ortiz### PVH Boot
178303cb26ccSSamuel Ortiz
178403cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
178503cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
178603cb26ccSSamuel Ortiz
178703cb26ccSSamuel Ortiz### Contributors
178803cb26ccSSamuel Ortiz
178903cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
179003cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
179103cb26ccSSamuel Ortiz
179203cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
179303cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
179403cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
179503cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
179603cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
179703cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
179803cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
179903cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
180003cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
180103cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
180203cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
180303cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
180403cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
180503cb26ccSSamuel Ortiz
180694f2fc33SRob Bradford# v0.5.1
180794f2fc33SRob Bradford
180894f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
180994f2fc33SRob Bradford
181094f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
181194f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
181294f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
181394f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
181494f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
18158e8a7b6dSSamuel Ortiz
18162f395e60SSamuel Ortiz# v0.5.0
18172f395e60SSamuel Ortiz
18182f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
18192f395e60SSamuel Ortiz
18202f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
18212f395e60SSamuel Ortiz
18222f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
18232f395e60SSamuel Ortiz
18242f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
18252f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
18262f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
18272f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
18282f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
18292f395e60SSamuel Ortiz
18302f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
18312f395e60SSamuel Ortiz
18322f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
18332f395e60SSamuel Ortiz
18342f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
18352f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
18362f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
18372f395e60SSamuel Ortiz
18382f395e60SSamuel Ortiz### New Interrupt Management Framework
18392f395e60SSamuel Ortiz
18402f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
18412f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
18422f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
18432f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
18442f395e60SSamuel Ortizvirtio ones.
18452f395e60SSamuel Ortiz
18462f395e60SSamuel Ortiz### Development Tools
18472f395e60SSamuel Ortiz
18482f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
18492f395e60SSamuel Ortizbuild, development and testing tools.
18502f395e60SSamuel OrtizSomehow similar to the excellent
18512f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
185237a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
18532f395e60SSamuel Ortiz
18542f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
18552f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
18562f395e60SSamuel Ortiz
18572f395e60SSamuel Ortiz### Kata Containers Integration
18582f395e60SSamuel Ortiz
18592f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
18602f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
18612f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
18622f395e60SSamuel Ortizintegrated into the project's CI.
18632f395e60SSamuel Ortiz
18642f395e60SSamuel Ortiz### Contributors
18652f395e60SSamuel Ortiz
18662f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
18672f395e60SSamuel Ortiz
18682f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
18692f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
18702f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
18712f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
18722f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
18732f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
18742f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
18752f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
18762f395e60SSamuel Ortiz
1877cec884e8SSamuel Ortiz# v0.4.0
1878cec884e8SSamuel Ortiz
1879cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
1880cec884e8SSamuel Ortiz
1881cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
1882cec884e8SSamuel Ortiz
1883cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
1884cec884e8SSamuel Ortiz
1885e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
1886cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
1887cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
1888cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
188937a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
1890cec884e8SSamuel Ortiz
1891cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
1892cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
1893cec884e8SSamuel Ortiz
1894cec884e8SSamuel Ortiz### Programmatic firmware tables generation
1895cec884e8SSamuel Ortiz
1896cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
1897cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
1898cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
1899cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
1900cec884e8SSamuel Ortiztables based on the VMM device model and topology.
1901cec884e8SSamuel Ortiz
1902cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
1903cec884e8SSamuel Ortiz
1904cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
1905cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
1906cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
1907cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
1908cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
1909cec884e8SSamuel Ortiz
1910cec884e8SSamuel Ortiz### Guest pause and resume
1911cec884e8SSamuel Ortiz
19125c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
1913cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
1914cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
1915cec884e8SSamuel Ortizand resume capabilities.
1916cec884e8SSamuel Ortiz
1917cec884e8SSamuel Ortiz### Userspace IOAPIC by default
1918cec884e8SSamuel Ortiz
1919cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
1920cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
1921cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
1922cec884e8SSamuel Ortizdefault.
1923cec884e8SSamuel Ortiz
1924cec884e8SSamuel Ortiz### PCI BAR reprogramming
1925cec884e8SSamuel Ortiz
1926cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
1927cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
1928cec884e8SSamuel Ortizreprogramming.
1929cec884e8SSamuel Ortiz
1930cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
1931cec884e8SSamuel Ortiz
1932cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
1933cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
1934cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
1935cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
1936cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1937cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
1938cec884e8SSamuel Ortiztemporarily fork.
1939cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
1940cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
1941cec884e8SSamuel Ortiz
1942cec884e8SSamuel Ortiz### Contributors
1943cec884e8SSamuel Ortiz
1944cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
1945cec884e8SSamuel Ortiz
1946cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
1947cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
1948cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1949cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
1950cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
1951cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
1952cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
1953cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
1954cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
1955cec884e8SSamuel Ortiz
19568e8a7b6dSSamuel Ortiz# v0.3.0
19578e8a7b6dSSamuel Ortiz
19588ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
19598e8a7b6dSSamuel Ortiz
19608e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
19618e8a7b6dSSamuel Ortiz
19628e8a7b6dSSamuel Ortiz### Block device offloading
19638e8a7b6dSSamuel Ortiz
19648e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
19658e8a7b6dSSamuel Ortizand we added support for
19668e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
19678e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
19688e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
19698e8a7b6dSSamuel Ortizbackend.
19708e8a7b6dSSamuel Ortiz
19718e8a7b6dSSamuel Ortiz### Network device backend
19728e8a7b6dSSamuel Ortiz
19738e8a7b6dSSamuel OrtizThe previous release provided support for
19748e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
19758e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
19768e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
19778e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
19788e8a7b6dSSamuel Ortiz
19798e8a7b6dSSamuel Ortiz### Virtual sockets
19808e8a7b6dSSamuel Ortiz
19818e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
19828e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
19838e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
19848e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
19858e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
19868e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
19878e8a7b6dSSamuel Ortiz
19888e8a7b6dSSamuel Ortiz### HTTP based API
19898e8a7b6dSSamuel Ortiz
19908e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
19918e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
19928e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
19938e8a7b6dSSamuel Ortiznext release cycle.
19948e8a7b6dSSamuel Ortiz
19958e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
19968e8a7b6dSSamuel Ortiz
19978e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
19988e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
19998e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
20008e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
20018e8a7b6dSSamuel Ortiz
20028e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
20038e8a7b6dSSamuel Ortiz
20048e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
200537a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
200637a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
20078e8a7b6dSSamuel Ortiz
20088e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
20098e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
20108e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
20118e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
20128e8a7b6dSSamuel Ortizsetting.
20138e8a7b6dSSamuel Ortiz
20148e8a7b6dSSamuel Ortiz### Ubuntu 19.10
20158e8a7b6dSSamuel Ortiz
20168ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
20178e8a7b6dSSamuel Ortizwe can now support the latest
20188e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
20198e8a7b6dSSamuel Ortiz
20208e8a7b6dSSamuel Ortiz### Large memory guests
20218e8a7b6dSSamuel Ortiz
20228e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
20238e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
20247688e6e2SSamuel Ortiz
2025d784ac29SSamuel Ortiz# v0.2.0
2026d784ac29SSamuel Ortiz
20278ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2028d784ac29SSamuel Ortiz
2029d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2030d784ac29SSamuel Ortiz
2031d784ac29SSamuel Ortiz### Network device offloading
2032d784ac29SSamuel Ortiz
2033d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2034d784ac29SSamuel Ortizprocesses, we added support for
2035d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2036d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2037d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2038d784ac29SSamuel Ortiz
2039d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2040d784ac29SSamuel Ortiz
2041d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2042d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2043d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2044d784ac29SSamuel Ortizcleanly reboot and shutdown.
2045d784ac29SSamuel Ortiz
2046d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2047d784ac29SSamuel Ortizenabled by default.
2048d784ac29SSamuel Ortiz
2049d784ac29SSamuel Ortiz### Debug I/O port
2050d784ac29SSamuel Ortiz
2051d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2052d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2053d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2054d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
205537a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
205637a2c13aSAlyssa Rossdetails.
2057d784ac29SSamuel Ortiz
2058d784ac29SSamuel Ortiz### Improved direct device assignment
2059d784ac29SSamuel Ortiz
2060d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2061d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2062d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2063d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2064d784ac29SSamuel Ortizdirectly assigned devices.
2065d784ac29SSamuel Ortiz
2066d784ac29SSamuel Ortiz### Improved shared filesystem
2067d784ac29SSamuel Ortiz
2068d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2069d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2070d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2071d784ac29SSamuel Ortizmemory footprint.
2072d784ac29SSamuel Ortiz
2073d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2074d784ac29SSamuel Ortiz
20758ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2076d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2077d784ac29SSamuel Ortizour CI pipeline.
2078d784ac29SSamuel Ortiz
207993b77530SSamuel Ortiz# v0.1.0
208093b77530SSamuel Ortiz
20818ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
208293b77530SSamuel Ortiz
208393b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
208493b77530SSamuel Ortiz
208593b77530SSamuel Ortiz### Shared filesystem
208693b77530SSamuel Ortiz
208793b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
208893b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
208993b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
209093b77530SSamuel Ortiz
209137a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
209237a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
209393b77530SSamuel Ortiz
209493b77530SSamuel Ortiz### Initial direct device assignment support
209593b77530SSamuel Ortiz
209693b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
209793b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
209893b77530SSamuel Ortizphysical devices into its guest.
209993b77530SSamuel Ortiz
210037a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
210137a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
210293b77530SSamuel Ortiz
210393b77530SSamuel Ortiz### Userspace IOAPIC
210493b77530SSamuel Ortiz
210593b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
210693b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
210793b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
210893b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
210993b77530SSamuel Ortiz
211093b77530SSamuel Ortiz### Virtual persistent memory
211193b77530SSamuel Ortiz
211293b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
211393b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
211493b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
211593b77530SSamuel Ortiz
211693b77530SSamuel Ortiz### Linux kernel bzImage
211793b77530SSamuel Ortiz
211893b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
211993b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
212093b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
212193b77530SSamuel Ortizdistribution kernel image.
212293b77530SSamuel Ortiz
212393b77530SSamuel Ortiz### Console over virtio
212493b77530SSamuel Ortiz
212593b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
212693b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
212793b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
212893b77530SSamuel Ortizimplementation.
212993b77530SSamuel Ortiz
213093b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
213193b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
213293b77530SSamuel Ortiz`--serial tty --console off` from the command line.
213393b77530SSamuel Ortiz
213493b77530SSamuel Ortiz### Unit testing
213593b77530SSamuel Ortiz
213693b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
213793b77530SSamuel Ortiz
213893b77530SSamuel Ortiz### Integration tests parallelization
213993b77530SSamuel Ortiz
214093b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
214193b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2142