xref: /cloud-hypervisor/release-notes.md (revision 58850d2679610aafccb65cd25b083ddc49b51be3)
1*58850d26SRob Bradford- [v42.0](#v420)
2*58850d26SRob Bradford    - [SVE/SVE2 Support on AArch64](#svesve2-support-on-aarch64)
3*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
4*58850d26SRob Bradford    - [Sponsorships](#sponsorships)
5*58850d26SRob Bradford    - [Contributors](#contributors)
6ea3e2ff6SRob Bradford- [v41.0](#v410)
7ea3e2ff6SRob Bradford    - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support)
8ea3e2ff6SRob Bradford    - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support)
9ea3e2ff6SRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements)
10ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
11ea3e2ff6SRob Bradford    - [Contributors](#contributors-1)
12*58850d26SRob Bradford- [v40.0](#v400)
13*58850d26SRob Bradford    - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices)
14*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
15*58850d26SRob Bradford    - [Contributors](#contributors-2)
164f96fa15SRob Bradford- [v39.0](#v390)
174f96fa15SRob Bradford    - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments)
184f96fa15SRob Bradford    - [Direct Booting with bzImages](#direct-booting-with-bzimages)
194f96fa15SRob Bradford    - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support)
204f96fa15SRob Bradford    - [Guest NMI Injection Support](#guest-nmi-injection-support)
21*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
22*58850d26SRob Bradford    - [Contributors](#contributors-3)
23ef4fbf08SBo Chen- [v38.0](#v380)
24ef4fbf08SBo Chen    - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices)
25ef4fbf08SBo Chen    - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread)
26ef4fbf08SBo Chen    - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault)
27ef4fbf08SBo Chen    - [New 'debug-console' Device](#new-debug-console-device)
28ef4fbf08SBo Chen    - [Improved VFIO Device Support](#improved-vfio-device-support)
29ef4fbf08SBo Chen    - [Extended CPU Affinity Support](#extended-cpu-affinity-support)
30*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
31*58850d26SRob Bradford    - [Contributors](#contributors-4)
325e702dcdSBo Chen- [v37.0](#v370)
335e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
34ef4fbf08SBo Chen    - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices)
355e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
365e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
375e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
38*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
39*58850d26SRob Bradford    - [Contributors](#contributors-5)
40f5899d15SBo Chen- [v36.0](#v360)
41f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
42f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
43f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
44f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
45f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
46f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
47f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
48*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
49*58850d26SRob Bradford    - [Contributors](#contributors-6)
50339912a5SBo Chen- [v35.0](#v350)
51339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
52339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
53339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
54*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
55*58850d26SRob Bradford    - [Contributors](#contributors-7)
56487a43cdSRob Bradford- [v34.0](#v340)
57487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
58487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
59487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
60487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
61*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
62*58850d26SRob Bradford    - [Contributors](#contributors-8)
63487a43cdSRob Bradford- [v33.0](#v330)
64487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
65487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
66*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
67*58850d26SRob Bradford    - [Contributors](#contributors-9)
6842ca292dSRob Bradford- [v32.0](#v320)
6942ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
7042ca292dSRob Bradford    - [API Changes](#api-changes)
71*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
72*58850d26SRob Bradford    - [Contributors](#contributors-10)
7342ca292dSRob Bradford- [v31.1](#v311)
74f3522e85SMichael Zhao- [v31.0](#v310)
75f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
76f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
77f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
78f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
79f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
80*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
81*58850d26SRob Bradford    - [Contributors](#contributors-11)
82ece0e6faSBo Chen- [v30.0](#v300)
83ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
84ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
85ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
86f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
87*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
88*58850d26SRob Bradford    - [Contributors](#contributors-12)
89ece0e6faSBo Chen- [v28.2](#v282)
9022cf8c97SRob Bradford- [v29.0](#v290)
9122cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
9222cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
9322cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
9422cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
9522cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
9622cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
9722cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
98*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-13)
9922cf8c97SRob Bradford    - [Removals](#removals)
10022cf8c97SRob Bradford    - [Deprecations](#deprecations)
101*58850d26SRob Bradford    - [Contributors](#contributors-13)
10222cf8c97SRob Bradford- [v28.1](#v281)
10366460765SRob Bradford- [v28.0](#v280)
10466460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
1055e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
10666460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
10766460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
10866460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
109*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-14)
11022cf8c97SRob Bradford    - [Removals](#removals-1)
111*58850d26SRob Bradford    - [Contributors](#contributors-14)
1122ba6a9bfSRob Bradford- [v27.0](#v270)
1132ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
1142ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
1152ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
1162ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
1172ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
1182ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
1192ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
120*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-15)
121f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
122*58850d26SRob Bradford    - [Contributors](#contributors-15)
123f3522e85SMichael Zhao- [v26.0](#v260)
124f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
125f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
126*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-16)
12722cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
12866460765SRob Bradford    - [Removals](#removals-2)
129*58850d26SRob Bradford    - [Contributors](#contributors-16)
13022cf8c97SRob Bradford- [v25.0](#v250)
13122cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
13222cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
133*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-17)
13422cf8c97SRob Bradford    - [Removals](#removals-3)
135*58850d26SRob Bradford    - [Contributors](#contributors-17)
1360150de55SSebastien Boeuf- [v24.0](#v240)
1370150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1380150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1390150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1400150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
141*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-18)
1420150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
14322cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1440150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
145*58850d26SRob Bradford    - [Contributors](#contributors-18)
1460150de55SSebastien Boeuf- [v23.1](#v231)
1470c9c56f5SRob Bradford- [v23.0](#v230)
1480c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1490c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1500c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1510c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
152*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-19)
15322cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
154*58850d26SRob Bradford    - [Contributors](#contributors-19)
1550c9c56f5SRob Bradford- [v22.1](#v221)
1566aa10938SRob Bradford- [v22.0](#v220)
1576aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1586aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1596aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1606aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1616aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1626aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1630c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1646aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
165*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-20)
166*58850d26SRob Bradford    - [Contributors](#contributors-20)
16795ca7997SRob Bradford- [v21.0](#v210)
16895ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
16995ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
170*58850d26SRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-21)
171*58850d26SRob Bradford    - [Contributors](#contributors-21)
17295ca7997SRob Bradford- [v20.2](#v202)
17395ca7997SRob Bradford- [v20.1](#v201)
1747fc0776aSSebastien Boeuf- [v20.0](#v200)
1757fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1767fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1777fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1787fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1797fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
180*58850d26SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-22)
181*58850d26SRob Bradford    - [Contributors](#contributors-22)
182d00eb4aaSRob Bradford- [v19.0](#v190)
183d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
184d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
185d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
186d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
187d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
188d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
189*58850d26SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-23)
190*58850d26SRob Bradford    - [Contributors](#contributors-23)
1912c4f8d22SRob Bradford- [v18.0](#v180)
1922c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1932c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1942c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1952c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1962c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1972c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1982c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1992c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
200*58850d26SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-24)
201*58850d26SRob Bradford    - [Contributors](#contributors-24)
202e6db5999SRob Bradford- [v17.0](#v170)
203e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
204e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
205e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
206e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
207e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
208*58850d26SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-25)
209*58850d26SRob Bradford    - [Contributors](#contributors-25)
2105ed8e01fSRob Bradford- [v16.0](#v160)
2115ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
2125ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
2135ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
214*58850d26SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-26)
2155ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
216*58850d26SRob Bradford    - [Contributors](#contributors-26)
21730a01277SRob Bradford- [v15.0](#v150)
21830a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
21930a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
22030a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
221f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
22230a01277SRob Bradford    - [Bug fixes](#bug-fixes)
22322cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
224*58850d26SRob Bradford    - [Contributors](#contributors-27)
22530a01277SRob Bradford- [v0.14.1](#v0141)
22640c63dcfSRob Bradford- [v0.14.0](#v0140)
22740c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
22840c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
22940c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
23040c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
23140c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
23240c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
23322cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
234*58850d26SRob Bradford    - [Contributors](#contributors-28)
235f58b6f84SRob Bradford- [v0.13.0](#v0130)
236f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
23740c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
238f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
239f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
240f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
241f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
242*58850d26SRob Bradford    - [Contributors](#contributors-29)
243d42b5084SRob Bradford- [v0.12.0](#v0120)
244d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
245d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
246d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
247d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
248*58850d26SRob Bradford    - [Contributors](#contributors-30)
2497dcd3affSRob Bradford- [v0.11.0](#v0110)
2507dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2517dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2527dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
253d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2547dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2557dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2567dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2577dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
258f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2597dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
260*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-27)
261*58850d26SRob Bradford    - [Contributors](#contributors-31)
262198bd551SRob Bradford- [v0.10.0](#v0100)
263198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
264198bd551SRob Bradford    - [Memory Zones](#memory-zones)
265198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
266198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
267*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-28)
268*58850d26SRob Bradford    - [Contributors](#contributors-32)
269d714cf81SRob Bradford- [v0.9.0](#v090)
270d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
271d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
272d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
273d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
274d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
275d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
276d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
277d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
278d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
279d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
280198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
281*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-29)
282*58850d26SRob Bradford    - [Contributors](#contributors-33)
283d714cf81SRob Bradford- [v0.8.0](#v080)
284d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
285d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
286d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
287d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
288d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
289*58850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-30)
290d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
291*58850d26SRob Bradford    - [Contributors](#contributors-34)
29296be8229SRob Bradford- [v0.7.0](#v070)
29396be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
29496be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
29596be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
29696be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
29796be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
29896be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
29996be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
30052b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
301*58850d26SRob Bradford    - [Contributors](#contributors-35)
30203cb26ccSSamuel Ortiz- [v0.6.0](#v060)
30303cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
30403cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
30503cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
30603cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
30703cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
308*58850d26SRob Bradford    - [Contributors](#contributors-36)
30994f2fc33SRob Bradford- [v0.5.1](#v051)
3102f395e60SSamuel Ortiz- [v0.5.0](#v050)
31194f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
31294f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
31394f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
31494f2fc33SRob Bradford    - [Development Tools](#development-tools)
31594f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
316*58850d26SRob Bradford    - [Contributors](#contributors-37)
317cec884e8SSamuel Ortiz- [v0.4.0](#v040)
31894f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
31994f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
32094f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
32194f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
32294f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
32394f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
32494f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
325*58850d26SRob Bradford    - [Contributors](#contributors-38)
3268e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
32794f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
32894f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
32994f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
33094f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
33194f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
33294f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
33394f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
33494f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3357688e6e2SSamuel Ortiz- [v0.2.0](#v020)
33694f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
33794f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
33894f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
33994f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
34094f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
34194f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3427688e6e2SSamuel Ortiz- [v0.1.0](#v010)
34394f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
34494f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
34594f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
34694f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
34794f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
34894f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
34994f2fc33SRob Bradford    - [Unit testing](#unit-testing)
35094f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
35194f2fc33SRob Bradford
352*58850d26SRob Bradford# v42.0
353*58850d26SRob Bradford
354*58850d26SRob BradfordThis release has been tracked in our [roadmap
355*58850d26SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
356*58850d26SRob Bradfordv42.0. The following user visible changes have been made:
357*58850d26SRob Bradford
358*58850d26SRob Bradford### SVE/SVE2 Support on AArch64
359*58850d26SRob Bradford
360*58850d26SRob BradfordThe SVE and SVE2 feature bits are now propagated through to the guest on
361*58850d26SRob BradfordAArch64. (#6678, #6691)
362*58850d26SRob Bradford
363*58850d26SRob Bradford### Notable Bug Fixes
364*58850d26SRob Bradford
365*58850d26SRob Bradford* Reduce latency notification when rate limited (#6672)
366*58850d26SRob Bradford* Fix `virtio-console` resizing (#6704)
367*58850d26SRob Bradford* Fix resizing when console uses TTY (#6754)
368*58850d26SRob Bradford* Avoid deadlock in PCI BAR reprogramming that can occur when adding a new
369*58850d26SRob Bradford  `virtio` device to a VM that has been restored (#6775)
370*58850d26SRob Bradford* Fix console resizing after VM restore (#6748)
371*58850d26SRob Bradford* Fix memory resize error due to incorrect bounds checks (#6736)
372*58850d26SRob Bradford
373*58850d26SRob Bradford### Sponsorships
374*58850d26SRob Bradford
375*58850d26SRob BradfordDuring this release cycle a new VFIO CI worker has been provided by Crusoe
376*58850d26SRob BradfordEnergy and a new ARM64 CI worker has been provided by Ubicloud.
377*58850d26SRob Bradford
378*58850d26SRob Bradford### Contributors
379*58850d26SRob Bradford
380*58850d26SRob BradfordMany thanks to everyone who has contributed to our release:
381*58850d26SRob Bradford
382*58850d26SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
383*58850d26SRob Bradford* Alyssa Ross <hi@alyssa.is>
384*58850d26SRob Bradford* Anirudh Rayabharam <anrayabh@microsoft.com>
385*58850d26SRob Bradford* BharatNarasimman <bharatn@microsoft.com>
386*58850d26SRob Bradford* Bo Chen <chen.bo@intel.com>
387*58850d26SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
388*58850d26SRob Bradford* Jonas Scholz <Jonas.Scholz@bbscholz.de>
389*58850d26SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
390*58850d26SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
391*58850d26SRob Bradford* Purna Pavan Chandra <paekkaladevi@microsoft.com>
392*58850d26SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
393*58850d26SRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
394*58850d26SRob Bradford* Songqian Li <sionli@tencent.com>
395*58850d26SRob Bradford* Tom Dohrmann <erbse.13@gmx.de>
396*58850d26SRob Bradford* Wei Liu <liuwe@microsoft.com>
397*58850d26SRob Bradford* Wenyu Huang <huangwenyuu@outlook.com>
398*58850d26SRob Bradford* Yuhong Zhong <yz@cs.columbia.edu>
399*58850d26SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
400*58850d26SRob Bradford
401ea3e2ff6SRob Bradford# v41.0
402ea3e2ff6SRob Bradford
403ea3e2ff6SRob BradfordThis release has been tracked in our [roadmap
404ea3e2ff6SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
405ea3e2ff6SRob Bradfordv41.0. The following user visible changes have been made:
406ea3e2ff6SRob Bradford
407ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support
408ea3e2ff6SRob Bradford
409ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires
410ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its
411ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features.
412ea3e2ff6SRob Bradford(#6318, #6467)
413ea3e2ff6SRob Bradford
414ea3e2ff6SRob Bradford### Sandboxing With Landlock Support
415ea3e2ff6SRob Bradford
416ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API
417ea3e2ff6SRob Bradfordhas been added  - this can be used to restrict the files (and the read/write
418ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of
419ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be
420ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170)
421ea3e2ff6SRob Bradford
422ea3e2ff6SRob Bradford### Notable Performance Improvements
423ea3e2ff6SRob Bradford
424ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec`
425ea3e2ff6SRob Bradford  structures (#6636)
426ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to
427ea3e2ff6SRob Bradford  `virtio-block` giving a 60% improvement in single queue block throughput and
428ea3e2ff6SRob Bradford  IOPs performance (#6580)
429ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586)
430ea3e2ff6SRob Bradford
431ea3e2ff6SRob Bradford### Notable Bug Fixes
432ea3e2ff6SRob Bradford
433ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657)
434ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
435ea3e2ff6SRob Bradford  access (#6647)
436ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now
437ea3e2ff6SRob Bradford  included in the virtio-device seccomp filters for tests that use this (#6648)
438ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621)
439ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
440ea3e2ff6SRob Bradford
441ea3e2ff6SRob Bradford### Contributors
442ea3e2ff6SRob Bradford
443ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release:
444ea3e2ff6SRob Bradford
445ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is>
446ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com>
447ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com>
448ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
449ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
450ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com>
451ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
452ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
453ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
454ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com>
455ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com>
456ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com>
457ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com>
458ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
459ea3e2ff6SRob Bradford
460e9b26397SRob Bradford# v40.0
461e9b26397SRob Bradford
462e9b26397SRob BradfordThis release has been tracked in our [roadmap
463e9b26397SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
464e9b26397SRob Bradfordv40.0. The following user visible changes have been made:
465e9b26397SRob Bradford
466e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices
467e9b26397SRob Bradford
468e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using
469e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices.
470e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or
471e9b26397SRob Bradfordother file descriptor backed network devices. (#6286)
472e9b26397SRob Bradford
473e9b26397SRob Bradford### Notable Bug Fixes
474e9b26397SRob Bradford
475e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata
476e9b26397SRob Bradford  (#6495)
477e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456)
478e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial`
479e9b26397SRob Bradford  (#6486)
480e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has
481e9b26397SRob Bradford  been introduced (#6482)
482e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding
483e9b26397SRob Bradford  `cpuid` instructions and by seeding the in kernel file descriptor table
484e9b26397SRob Bradford  (#6498, #6478)
485e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523)
486e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets
487e9b26397SRob Bradford  (#6504)
488e9b26397SRob Bradford
489e9b26397SRob Bradford### Contributors
490e9b26397SRob Bradford
491e9b26397SRob BradfordMany thanks to everyone who has contributed to our release:
492e9b26397SRob Bradford
493e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
494e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com>
495e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
496e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com>
497e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com>
498e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
499e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
500e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
501e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com>
502e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
503e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com>
504e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai>
505e9b26397SRob Bradford* Songqian Li <sionli@tencent.com>
506e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com>
507e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com>
508e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
509e9b26397SRob Bradford*
510e9b26397SRob Bradford
5114f96fa15SRob Bradford# v39.0
5124f96fa15SRob Bradford
5134f96fa15SRob BradfordThis release has been tracked in our [roadmap
5144f96fa15SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5154f96fa15SRob Bradfordv39.0. The following user visible changes have been made:
5164f96fa15SRob Bradford
5174f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments
5184f96fa15SRob Bradford
5194f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that
5204f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
5214f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may
5224f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With
5234f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387)
5244f96fa15SRob Bradford
5254f96fa15SRob Bradford### Direct Booting with bzImages
5264f96fa15SRob Bradford
5274f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200)
5284f96fa15SRob Bradford
5294f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support
5304f96fa15SRob Bradford
5314f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the
5324f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235)
5334f96fa15SRob Bradford
5344f96fa15SRob Bradford### Guest NMI Injection Support
5354f96fa15SRob Bradford
5364f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the
5374f96fa15SRob Bradfordguest. (#6047)
5384f96fa15SRob Bradford
5394f96fa15SRob Bradford### Notable Bug Fixes
5404f96fa15SRob Bradford
5414f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
5424f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208)
5434f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247)
5444f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268)
5454f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock`
5464f96fa15SRob Bradford  (#6306)
5474f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359)
5484f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372)
5494f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
5504f96fa15SRob Bradford  #6319)
5514f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337,
5524f96fa15SRob Bradford  #6338)
5534f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across
5544f96fa15SRob Bradford  snapshot/restore (#6332, #6286)
5554f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274)
5564f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293)
5574f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230)
5584f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration
5594f96fa15SRob Bradford  (#6326, #6265)
5604f96fa15SRob Bradford
5614f96fa15SRob Bradford### Contributors
5624f96fa15SRob Bradford
5634f96fa15SRob BradfordMany thanks to everyone who has contributed to our release:
5644f96fa15SRob Bradford
5654f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
5664f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com>
5674f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com>
5684f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke>
5694f96fa15SRob Bradford* Chris Webb <chris@arachsys.com>
5704f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
5714f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com>
5724f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com>
5734f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
5744f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
5754f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
5764f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
5774f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de>
5784f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com>
5794f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com>
5804f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com>
5814f96fa15SRob Bradford
582ef4fbf08SBo Chen# v38.0
583ef4fbf08SBo Chen
584ef4fbf08SBo ChenThis release has been tracked in our [roadmap
585ef4fbf08SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
586ef4fbf08SBo Chenv38.0. The following user visible changes have been made:
587ef4fbf08SBo Chen
588ef4fbf08SBo Chen### Group Rate Limiter on Block Devices
589ef4fbf08SBo Chen
590ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new
591ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O
592ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md)
593ef4fbf08SBo Chen
594ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread
595ef4fbf08SBo Chen
596ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices
597ef4fbf08SBo Chento specific host cpus.
598ef4fbf08SBo Chen
599ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault
600ef4fbf08SBo Chen
601ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel
602ef4fbf08SBo Chenmemory prefault.
603ef4fbf08SBo Chen
604ef4fbf08SBo Chen### New 'debug-console' Device
605ef4fbf08SBo Chen
606ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug
607ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug
608ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md).
609ef4fbf08SBo Chen
610ef4fbf08SBo Chen### Improved VFIO Device Support
611ef4fbf08SBo Chen
612ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO
613ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same
614ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving
615ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU
616ef4fbf08SBo Chenand an IB device).
617ef4fbf08SBo Chen
618ef4fbf08SBo Chen### Extended CPU Affinity Support
619ef4fbf08SBo Chen
620ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger
621ef4fbf08SBo Chenthan 255.
622ef4fbf08SBo Chen
623ef4fbf08SBo Chen### Notable Bug Fixes
624ef4fbf08SBo Chen
625ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software
626ef4fbf08SBo Chensuch as hwloc in the guest (#6146)
627ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141)
628ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062)
629ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095)
630ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106)
631ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196)
632ef4fbf08SBo Chen
633ef4fbf08SBo Chen### Contributors
634ef4fbf08SBo Chen
635ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release:
636ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is>
637ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com>
638ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com>
639ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com>
640ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com>
641ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com>
642ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
643ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
644ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com>
645ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
646ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com>
647ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
648ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com>
649ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com>
650ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com>
651ef4fbf08SBo Chen
6525e702dcdSBo Chen# v37.0
6535e702dcdSBo Chen
6545e702dcdSBo ChenThis release has been tracked in our [roadmap
6555e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
6565e702dcdSBo Chenv37.0. The following user visible changes have been made:
6575e702dcdSBo Chen
6585e702dcdSBo Chen### Long Term Support (LTS) Release
6595e702dcdSBo Chen
6605e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
6615e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
6625e702dcdSBo Chensupported between the point releases of the LTS.
6635e702dcdSBo Chen
6645e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
6655e702dcdSBo Chen
6665e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
6675e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
6685e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
6695e702dcdSBo Chen
6705e702dcdSBo Chen### Configurable Named TAP Devices
6715e702dcdSBo Chen
6725e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
6735e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
6745e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
6755e702dcdSBo Chen
6765e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
6775e702dcdSBo Chen
6785e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
6795e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
6805e702dcdSBo Chenlegacy serial device without losing performance benefits of using
6815e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
6825e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
6835e702dcdSBo Chen
6845e702dcdSBo Chen### Faster VM Restoration from Snapshots
6855e702dcdSBo Chen
6865e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
6875e702dcdSBo Chenimplementation of deserializing JSON files.
6885e702dcdSBo Chen
6895e702dcdSBo Chen### Notable Bug Fixes
6905e702dcdSBo Chen
6915e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
6925e702dcdSBo Chen  disabled (#5930)
6935e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
6945e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
6955e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
6965e702dcdSBo Chen
6975e702dcdSBo Chen### Contributors
6985e702dcdSBo Chen
6995e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
7005e702dcdSBo Chen
7015e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
7025e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
7035e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
7045e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
7055e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
7065e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
7075e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
7085e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
7095e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
7105e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
7115e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
7125e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
7135e702dcdSBo Chen
714f5899d15SBo Chen# v36.0
715f5899d15SBo Chen
716f5899d15SBo ChenThis release has been tracked in our [roadmap
717f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
718f5899d15SBo Chenv36.0. The following user visible changes have been made:
719f5899d15SBo Chen
720f5899d15SBo Chen### Command Line Changes
721f5899d15SBo Chen
722f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
723f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
724f5899d15SBo Chenchanges:
725f5899d15SBo Chen
726f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
727f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
728f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
729f5899d15SBo Chen
730f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
731f5899d15SBo Chen
732f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
733f5899d15SBo Chen
734f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
735f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
736f5899d15SBo Chen(`--version -v`).
737f5899d15SBo Chen
738f5899d15SBo Chen### NUMA Support for PCI segments
739f5899d15SBo Chen
740f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
741f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
742f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
743f5899d15SBo Chen
744f5899d15SBo Chen### CPU Topology Support on AMD Platforms
745f5899d15SBo Chen
746f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
747f5899d15SBo Chen
748f5899d15SBo Chen### Unix Socket Backend for Serial Port
749f5899d15SBo Chen
750f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
751f5899d15SBo Chenusers to access the serial port using a Unix socket.
752f5899d15SBo Chen
753f5899d15SBo Chen### AIO Backend for Block Devices
754f5899d15SBo Chen
755f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
756f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
757f5899d15SBo Chenhost Operating System.
758f5899d15SBo Chen
759f5899d15SBo Chen### Documentation Improvements
760f5899d15SBo Chen
761f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
762f5899d15SBo Chen* Various typo fixes
763f5899d15SBo Chen
764f5899d15SBo Chen### Notable Bug Fixes
765f5899d15SBo Chen
766f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
767f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
768f5899d15SBo Chen  enabled (#5834)
769f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
770f5899d15SBo Chen
771f5899d15SBo Chen### Contributors
772f5899d15SBo Chen
773f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
774f5899d15SBo Chen
775f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
776f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
777f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
778f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
779f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
780f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
781f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
782f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
783f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
784f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
785f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
786f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
787f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
788f5899d15SBo Chen
789339912a5SBo Chen# v35.0
790339912a5SBo Chen
791339912a5SBo ChenThis release has been tracked in our [roadmap
792339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
793339912a5SBo Chenv35.0. The following user visible changes have been made:
794339912a5SBo Chen
795339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
796339912a5SBo Chen
797339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
798339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
799339912a5SBo Chennow support both situations.
800339912a5SBo Chen
801339912a5SBo Chen### User Specified Serial Number for `virtio-block`
802339912a5SBo Chen
803339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
804339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
805339912a5SBo Chen
806339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
807339912a5SBo Chen
808339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
809339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
810339912a5SBo Chen
811339912a5SBo Chen### Notable Bug Fixes
812339912a5SBo Chen
813339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
814339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
815339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
816339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
817339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
818339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
819339912a5SBo Chen  (#5712, #5750, #5762, #5763)
820339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
821339912a5SBo Chen
822339912a5SBo Chen### Contributors
823339912a5SBo Chen
824339912a5SBo ChenMany thanks to everyone who has contributed to our release:
825339912a5SBo Chen
826339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
827339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
828339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
829339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
830339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
831339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
832339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
833339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
834339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
835339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
836339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
837339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
838339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
839339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
840339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
841339912a5SBo Chen
842487a43cdSRob Bradford# v34.0
843487a43cdSRob Bradford
844487a43cdSRob BradfordThis release has been tracked in our [roadmap
845487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
846487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
847487a43cdSRob Bradford
848487a43cdSRob Bradford### Paravirtualised Panic Device Support
849487a43cdSRob Bradford
850487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
851487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
852487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
853487a43cdSRob Bradford
854487a43cdSRob Bradford### Improvements to VM Core Dump
855487a43cdSRob Bradford
856487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
857487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
858487a43cdSRob Bradford
859487a43cdSRob Bradford### QCOW2 Support for Backing Files
860487a43cdSRob Bradford
861487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
862487a43cdSRob Bradfordbacking files. (#5573)
863487a43cdSRob Bradford
864487a43cdSRob Bradford### Minimum Host Kernel Bump
865487a43cdSRob Bradford
866487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
867487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
868487a43cdSRob Bradford
869487a43cdSRob Bradford### Notable Bug Fixes
870487a43cdSRob Bradford
871487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
872487a43cdSRob Bradford  carries out this job with KVM) (#5561).
873487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
874487a43cdSRob Bradford  than MSI-X (#5658).
875487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
876487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
877487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
878487a43cdSRob Bradford  when all vCPUs are paused (#5611).
879487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
880487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
881487a43cdSRob Bradford
882487a43cdSRob Bradford### Contributors
883487a43cdSRob Bradford
884487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
885487a43cdSRob Bradford
886487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
887487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
888487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
889487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
890487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
891487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
892487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
893487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
894487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
895487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
896487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
897487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
898487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
899487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
900487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
901487a43cdSRob Bradford
9026e0e6323SBo Chen# v33.0
9036e0e6323SBo Chen
9046e0e6323SBo ChenThis release has been tracked in our [roadmap
9056e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
9066e0e6323SBo Chenv33.0. The following user visible changes have been made:
9076e0e6323SBo Chen
9086e0e6323SBo Chen### D-Bus based API
9096e0e6323SBo Chen
9106e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
9116e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
9126e0e6323SBo Chenfound in the [API documentation](docs/api.md).
9136e0e6323SBo Chen
9146e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
9156e0e6323SBo Chen
9166e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
9176e0e6323SBo Chenguest on AArch64.
9186e0e6323SBo Chen
9196e0e6323SBo Chen### Notable Bug Fixes
9206e0e6323SBo Chen
9216e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
9226e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
9236e0e6323SBo Chen* Fix TDX initialization (#5454)
9246e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
9256e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
9266e0e6323SBo Chen  (#5506, #5524)
9276e0e6323SBo Chen* Populate APIC ID properly (#5512)
9286e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
9296e0e6323SBo Chen
9306e0e6323SBo Chen### Contributors
9316e0e6323SBo Chen
9326e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
9336e0e6323SBo Chen
9346e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
9356e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
9366e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
9376e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
9386e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
9396e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
9406e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
9416e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
9426e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
9436e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
9446e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
9456e0e6323SBo Chen
94642ca292dSRob Bradford# v32.0
94742ca292dSRob Bradford
94842ca292dSRob BradfordThis release has been tracked in our [roadmap
94942ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
95042ca292dSRob Bradfordv32.0. The following user visible changes have been made:
95142ca292dSRob Bradford
95242ca292dSRob Bradford### Increased PCI Segment Limit
95342ca292dSRob Bradford
95442ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
95542ca292dSRob Bradford
95642ca292dSRob Bradford### API Changes
95742ca292dSRob Bradford
95842ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
95942ca292dSRob Bradford  (#5348)
96042ca292dSRob Bradford
96142ca292dSRob Bradford### Notable Bug Fixes
96242ca292dSRob Bradford
96342ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
96442ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
96542ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
96642ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
96742ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
96842ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
96942ca292dSRob Bradford* Fixes for TTY reset (#5414)
97042ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
97142ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
97242ca292dSRob Bradford
97342ca292dSRob Bradford### Contributors
97442ca292dSRob Bradford
97542ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
97642ca292dSRob Bradford
97742ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
97842ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
97942ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
98042ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
98142ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
98242ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
98342ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
98442ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
98542ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
98642ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
98742ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
98842ca292dSRob Bradford
98942ca292dSRob Bradford# v31.1
99042ca292dSRob Bradford
99142ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
99242ca292dSRob Bradford
99342ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
99442ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
99542ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
99642ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
99742ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
99842ca292dSRob Bradford
999f3522e85SMichael Zhao# v31.0
1000f3522e85SMichael Zhao
1001f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
1002f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
1003f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
1004f3522e85SMichael Zhao
1005f3522e85SMichael Zhao### Update to Latest `acpi_tables`
1006f3522e85SMichael Zhao
1007f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
1008f3522e85SMichael ZhaoThere has been significant API changes in the crate.
1009f3522e85SMichael Zhao
1010f3522e85SMichael Zhao### Update Reference Kernel to 6.2
1011f3522e85SMichael Zhao
1012f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
1013f3522e85SMichael Zhao
1014f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
1015f3522e85SMichael Zhao
1016f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
1017f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
1018f3522e85SMichael Zhao
1019f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
1020f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
1021f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
1022f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
1023f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
1024f3522e85SMichael Zhao
1025f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
1026f3522e85SMichael Zhao
1027f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
1028f3522e85SMichael Zhao
1029f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
1030f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
1031f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
1032f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
1033f3522e85SMichael Zhao
1034f3522e85SMichael Zhao### Documentation Improvements
1035f3522e85SMichael Zhao
1036f3522e85SMichael Zhao* Various improvements in API document
1037f3522e85SMichael Zhao* Improvements in Doc comments
1038f3522e85SMichael Zhao* Updated Slack channel information in README
1039f3522e85SMichael Zhao
1040f3522e85SMichael Zhao### Notable Bug Fixes
1041f3522e85SMichael Zhao
1042f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
1043f3522e85SMichael Zhao  client.
1044f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
1045f3522e85SMichael Zhao  endpoint.
1046f3522e85SMichael Zhao
1047f3522e85SMichael Zhao### Contributors
1048f3522e85SMichael Zhao
1049f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
1050f3522e85SMichael Zhao
1051f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
1052f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
1053f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
1054f3522e85SMichael Zhao* Dom <peng6662001@163.com>
1055f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
1056f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
1057f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
1058f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1059f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
1060f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
1061f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
1062f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
1063f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
1064f3522e85SMichael Zhao
1065ece0e6faSBo Chen# v30.0
1066ece0e6faSBo Chen
1067ece0e6faSBo ChenThis release has been tracked in our [roadmap
1068ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
1069ece0e6faSBo Chenv30.0. The following user visible changes have been made:
1070ece0e6faSBo Chen
1071ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
1072ece0e6faSBo Chen
1073ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
1074ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
1075ece0e6faSBo Chenwere several syntax changes:
1076ece0e6faSBo Chen
1077ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
1078ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
1079ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
1080ece0e6faSBo Chen
1081ece0e6faSBo Chen### Basic vfio-user Server Support
1082ece0e6faSBo Chen
1083ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
1084ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
1085ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
1086ece0e6faSBo Chen`rust-vmm` organization.
1087ece0e6faSBo Chen
1088ece0e6faSBo Chen### Heap Profiling Support
1089ece0e6faSBo Chen
1090ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
1091ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
1092ece0e6faSBo Chen
1093ece0e6faSBo Chen### Documentation Improvements
1094ece0e6faSBo Chen
1095ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
1096ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
1097ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
1098ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
1099ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
1100ece0e6faSBo Chenexisting 'profiling' documentation.
1101ece0e6faSBo Chen
1102ece0e6faSBo Chen### Notable Bug Fixes
1103ece0e6faSBo Chen
1104ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
1105ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
1106ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
1107ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
1108ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
1109ece0e6faSBo Chen
1110ece0e6faSBo Chen### Contributors
1111ece0e6faSBo Chen
1112ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
1113ece0e6faSBo Chen
1114ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
1115ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
1116ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
1117ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
1118ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
1119ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
1120ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
1121ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1122ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
1123ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1124ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
1125ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
1126ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
1127ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
1128ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
1129ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
1130ece0e6faSBo Chen
1131ece0e6faSBo Chen# v28.2
1132ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
1133ece0e6faSBo Chen
1134ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
1135ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
1136ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
1137ece0e6faSBo Chen
113822cf8c97SRob Bradford# v29.0
113922cf8c97SRob Bradford
114022cf8c97SRob BradfordThis release has been tracked in our [roadmap
114122cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
114222cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
114322cf8c97SRob Bradford
114422cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
114522cf8c97SRob Bradford
114622cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
114722cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
114822cf8c97SRob Bradford
114922cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
115022cf8c97SRob Bradford
115122cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
115222cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
115322cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
115422cf8c97SRob Bradfordsupported but has worked for some versions.)
115522cf8c97SRob Bradford
115622cf8c97SRob Bradford### Heap Allocation Improvements
115722cf8c97SRob Bradford
115822cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
115922cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
116022cf8c97SRob Bradford
116122cf8c97SRob Bradford### `ch-remote` Improvements
116222cf8c97SRob Bradford
116322cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
116422cf8c97SRob Bradford`ch-remote`.
116522cf8c97SRob Bradford
116622cf8c97SRob Bradford### `AArch64` Documentation Integration
116722cf8c97SRob Bradford
116822cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
116922cf8c97SRob BradfordREADME.
117022cf8c97SRob Bradford
117122cf8c97SRob Bradford### `virtio-block` Counters Enhancement
117222cf8c97SRob Bradford
117322cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
117422cf8c97SRob Bradfordlatency counters.
117522cf8c97SRob Bradford
117622cf8c97SRob Bradford### TCP Offload Control
117722cf8c97SRob Bradford
117822cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
117922cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
118022cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
118122cf8c97SRob Bradford
118222cf8c97SRob Bradford### Notable Bug Fixes
118322cf8c97SRob Bradford
118422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
118522cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
118622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
118722cf8c97SRob Bradford  (#4924, #4949)
118822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
118922cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
119022cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
119122cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
119222cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
119322cf8c97SRob Bradford
119422cf8c97SRob Bradford### Removals
119522cf8c97SRob Bradford
119622cf8c97SRob BradfordNo functionality has been removed in this release.
119722cf8c97SRob Bradford
119822cf8c97SRob Bradford### Deprecations
119922cf8c97SRob Bradford
120022cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
120122cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
120222cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
120322cf8c97SRob Bradford  (#5085)
120422cf8c97SRob Bradford
120522cf8c97SRob Bradford### Contributors
120622cf8c97SRob Bradford
120722cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
120822cf8c97SRob Bradford
120922cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
121022cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
121122cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
121222cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
121322cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
121422cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
121522cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
121622cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
121722cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
121822cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
121922cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
122022cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
122122cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
122222cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
122322cf8c97SRob Bradford
122422cf8c97SRob Bradford
122522cf8c97SRob Bradford# v28.1
122622cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
122722cf8c97SRob Bradford
122822cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
122922cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
123022cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
123122cf8c97SRob Bradford  (#4924, #4949)
123222cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
123322cf8c97SRob Bradford* Improve README and documentation
123422cf8c97SRob Bradford
123566460765SRob Bradford# v28.0
123666460765SRob Bradford
123766460765SRob BradfordThis release has been tracked in our new [roadmap
123866460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
123966460765SRob Bradfordv28.0.
124066460765SRob Bradford
124166460765SRob Bradford### Community Engagement (Reminder)
124266460765SRob Bradford
124366460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
124466460765SRob Bradforddiscussions.  Please consider
124566460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
124666460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
124766460765SRob BradfordHypervisor development.
124866460765SRob Bradford
124966460765SRob Bradford### Long Term Support (LTS) Release
125066460765SRob Bradford
125166460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
125266460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
125366460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
125466460765SRob Bradfordreleases of the LTS.
125566460765SRob Bradford
125666460765SRob Bradford### Virtualised TPM Support
125766460765SRob Bradford
125842e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM
125966460765SRob Bradforddocumentation](docs/tpm.md).
126066460765SRob Bradford
126166460765SRob Bradford### Transparent Huge Page Support
126266460765SRob Bradford
126366460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
126466460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
126566460765SRob Bradfordthen this will be used resulting in improved boot performance.
126666460765SRob Bradford
126766460765SRob Bradford### README Quick Start Improved
126866460765SRob Bradford
126966460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
127066460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
127166460765SRob Bradford
127266460765SRob Bradford### Notable Bug Fixes
127366460765SRob Bradford
127466460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
127566460765SRob Bradford  memory consumption (#4835)
127666460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
127766460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
127866460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
127966460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
128066460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
128166460765SRob Bradford  newer Linux kernels (#4744)
128266460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
128366460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
128466460765SRob Bradford
128566460765SRob Bradford### Removals
128666460765SRob Bradford
128766460765SRob BradfordThe following functionality has been removed:
128866460765SRob Bradford
128966460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
129066460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
129166460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
129266460765SRob Bradford
129366460765SRob Bradford### Contributors
129466460765SRob Bradford
129566460765SRob BradfordMany thanks to everyone who has contributed to our release:
129666460765SRob Bradford
129766460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
129866460765SRob Bradford* Bo Chen <chen.bo@intel.com>
129966460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
130066460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
130166460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
130266460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
130366460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
130466460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
130566460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
130666460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
130766460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
130866460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
130966460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
131066460765SRob Bradford
13112ba6a9bfSRob Bradford# v27.0
13122ba6a9bfSRob Bradford
13132ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
13142ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
13152ba6a9bfSRob Bradfordv27.0.
13162ba6a9bfSRob Bradford
13172ba6a9bfSRob Bradford### Community Engagement
13182ba6a9bfSRob Bradford
13192ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
13202ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
13212ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
13222ba6a9bfSRob Bradford
13232ba6a9bfSRob Bradford### Prebuilt Packages
13242ba6a9bfSRob Bradford
13252ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
13262ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
13272ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
13282ba6a9bfSRob Bradfordfirmware options available.
13292ba6a9bfSRob Bradford
13302ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
13312ba6a9bfSRob Bradford
13322ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
13332ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
13342ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
13352ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
13362ba6a9bfSRob Bradford(#4658, #4676.)
13372ba6a9bfSRob Bradford
13382ba6a9bfSRob Bradford### Boot Tracing
13392ba6a9bfSRob Bradford
13402ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
13412ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
13422ba6a9bfSRob Bradford
13432ba6a9bfSRob Bradford### Simplified Build Feature Flags
13442ba6a9bfSRob Bradford
13452ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
13462ba6a9bfSRob Bradford
13472ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
13482ba6a9bfSRob Bradford  (with `kvm` enabled by default),
13492ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
13502ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
13512ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
13522ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
13532ba6a9bfSRob Bradford  feature) and dumping guest memory.
13542ba6a9bfSRob Bradford
13552ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
13562ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
13572ba6a9bfSRob Bradford
13582ba6a9bfSRob Bradford### Asynchronous Kernel Loading
13592ba6a9bfSRob Bradford
13602ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
13612ba6a9bfSRob Bradfordx86-64. (#4538)
13622ba6a9bfSRob Bradford
13632ba6a9bfSRob Bradford### GDB Support for AArch64
13642ba6a9bfSRob Bradford
13652ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
13662ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
13672ba6a9bfSRob Bradford
13682ba6a9bfSRob Bradford### Notable Bug Fixes
13692ba6a9bfSRob Bradford
13702ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
13712ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
13722ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
13732ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
13742ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
13752ba6a9bfSRob Bradford
13762ba6a9bfSRob Bradford### Deprecations
13772ba6a9bfSRob Bradford
13782ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
13792ba6a9bfSRob Bradfordplan to use alternatives.
13802ba6a9bfSRob Bradford
13812ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
13822ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
13832ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
13842ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
13852ba6a9bfSRob Bradford
13862ba6a9bfSRob Bradford### Contributors
13872ba6a9bfSRob Bradford
13882ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
13892ba6a9bfSRob Bradford
13902ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
13912ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
13922ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
13932ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13942ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
13952ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
13962ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
13972ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
13982ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13992ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
14002ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
14012ba6a9bfSRob Bradford
1402ed9e54d6SRob Bradford# v26.0
1403ed9e54d6SRob Bradford
1404ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
1405ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
1406ed9e54d6SRob Bradford
1407ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1408ed9e54d6SRob Bradford
1409ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1410ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1411ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1412ed9e54d6SRob Bradford
1413ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1414ed9e54d6SRob Bradford
1415ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1416ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1417ed9e54d6SRob Bradford
1418ed9e54d6SRob Bradford### Notable Bug Fixes
1419ed9e54d6SRob Bradford
1420ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
14217bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1422ed9e54d6SRob Bradford  out (#4456)
1423ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1424ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1425ed9e54d6SRob Bradford  (#4269, #4293)
1426ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1427ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1428ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1429ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1430ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1431ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1432ed9e54d6SRob Bradford
1433ed9e54d6SRob Bradford### Deprecations
1434ed9e54d6SRob Bradford
1435ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1436ed9e54d6SRob Bradfordplan to use alternatives.
1437ed9e54d6SRob Bradford
1438ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1439ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1440ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1441ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1442ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1443ed9e54d6SRob Bradford
1444ed9e54d6SRob Bradford### Removals
1445ed9e54d6SRob Bradford
1446ed9e54d6SRob BradfordThe following functionality has been removed:
1447ed9e54d6SRob Bradford
1448ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
144942e9632cSJosh Soref  equivalent. This was residual from the removal of the `vhost-user-block`
1450ed9e54d6SRob Bradford  spawning feature (#4402.)
1451ed9e54d6SRob Bradford
1452ed9e54d6SRob Bradford### Contributors
1453ed9e54d6SRob Bradford
1454ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1455ed9e54d6SRob Bradford
1456ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1457ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1458ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1459ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1460ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1461ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1462ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1463ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1464ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1465ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1466ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1467ed9e54d6SRob Bradford
1468b132cd21SRob Bradford# v25.0
1469b132cd21SRob Bradford
1470b132cd21SRob BradfordThis release has been tracked through the [v25.0
1471b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
1472b132cd21SRob Bradford
1473b132cd21SRob Bradford### `ch-remote` Improvements
1474b132cd21SRob Bradford
1475b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1476b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1477b132cd21SRob Bradford
1478b132cd21SRob Bradford### VM "Coredump" Support
1479b132cd21SRob Bradford
1480b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1481b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1482b132cd21SRob Bradford
1483b132cd21SRob Bradford### Notable Bug Fixes
1484b132cd21SRob Bradford
1485b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1486b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1487b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1488b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1489b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1490b132cd21SRob Bradford  5.16 (#4156)
1491b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1492b132cd21SRob Bradford  Linux guest
1493b132cd21SRob Bradford
1494b132cd21SRob Bradford### Removals
1495b132cd21SRob Bradford
1496b132cd21SRob BradfordThe following functionality has been removed:
1497b132cd21SRob Bradford
1498b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1499b132cd21SRob Bradford  (#3968)
1500b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1501b132cd21SRob Bradford
1502b132cd21SRob Bradford### Contributors
1503b132cd21SRob Bradford
1504b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1505b132cd21SRob Bradford
1506b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1507b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1508b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1509b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1510b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1511b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1512b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1513b132cd21SRob Bradford
15140150de55SSebastien Boeuf# v24.0
15150150de55SSebastien Boeuf
15160150de55SSebastien BoeufThis release has been tracked through the [v24.0
15170150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
15180150de55SSebastien Boeuf
15190150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
15200150de55SSebastien Boeuf
15210150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
15220150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
15230150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
15240150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
15250150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
15260150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
15270150de55SSebastien Boeuf
15280150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
15290150de55SSebastien Boeuf
15300150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
15310150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
15320150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
15330150de55SSebastien Boeuf
15340150de55SSebastien Boeuf### Sparse Mmap support
15350150de55SSebastien Boeuf
15360150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
15370150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
15380150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
15390150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
15400150de55SSebastien Boeufimpacts the performance related to this device.
15410150de55SSebastien Boeuf
15420150de55SSebastien Boeuf### Expose Platform Serial Number
15430150de55SSebastien Boeuf
15440150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
15450150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
15460150de55SSebastien Boeufguest through the SMBIOS.
15470150de55SSebastien Boeuf
15480150de55SSebastien Boeuf### Notable Bug Fixes
15490150de55SSebastien Boeuf
15500150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
15510150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
15520150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
15530150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
15540150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
15550150de55SSebastien Boeuf
15560150de55SSebastien Boeuf### Notable Improvements
15570150de55SSebastien Boeuf
15580150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
15590150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
15600150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
15610150de55SSebastien Boeuf
15620150de55SSebastien Boeuf### Deprecations
15630150de55SSebastien Boeuf
15640150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
15650150de55SSebastien Boeufplan to use alternatives
15660150de55SSebastien Boeuf
15670150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
15680150de55SSebastien Boeuf  (#3968)
15690150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
15700150de55SSebastien Boeuf
15710150de55SSebastien Boeuf### New on the Website
15720150de55SSebastien Boeuf
15730150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
15740150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
15750150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
15760150de55SSebastien Boeuf
15770150de55SSebastien Boeuf### Contributors
15780150de55SSebastien Boeuf
15790150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
15800150de55SSebastien Boeuf
15810150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
15820150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
15830150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
15840150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
15850150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
15860150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
15870150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
15880150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
15890150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
15900150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
15910150de55SSebastien Boeuf
15920150de55SSebastien Boeuf# v23.1
15930150de55SSebastien Boeuf
15940150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
15950150de55SSebastien Boeuf
15960150de55SSebastien Boeuf* Add some missing seccomp rules
15970150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
15980150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
15990150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
16000150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
16010150de55SSebastien Boeuf
16020c9c56f5SRob Bradford# v23.0
16030c9c56f5SRob Bradford
16040c9c56f5SRob BradfordThis release has been tracked through the [v23.0
16050c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
16060c9c56f5SRob Bradford
16070c9c56f5SRob Bradford### vDPA Support
16080c9c56f5SRob Bradford
16090c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
16100c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
16110c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
16120c9c56f5SRob Bradford
16130c9c56f5SRob Bradford### Updated OS Support list
16140c9c56f5SRob Bradford
16150c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
16160c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
16170c9c56f5SRob Bradford
16180c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
16190c9c56f5SRob Bradford
16200c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
16210c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
16220c9c56f5SRob Bradfordallocated RAM. (#3938)
16230c9c56f5SRob Bradford
16240c9c56f5SRob Bradford### `AMX` Support
16250c9c56f5SRob Bradford
16260c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
16270c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
16280c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
16290c9c56f5SRob Bradford
16300c9c56f5SRob Bradford### Notable Bug Fixes
16310c9c56f5SRob Bradford
16320c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
16330c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
16340c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
16350c9c56f5SRob Bradford  `virtio-mem` (#3883)
16360c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
16370c9c56f5SRob Bradford  vIOMMU (#3870)
16380c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
16390c9c56f5SRob Bradford  (#3848)
16400c9c56f5SRob Bradford
16410c9c56f5SRob Bradford### Deprecations
16420c9c56f5SRob Bradford
16430c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
16440c9c56f5SRob Bradfordplan to use alternatives
16450c9c56f5SRob Bradford
16460c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
16470c9c56f5SRob Bradford  (#3968)
16480c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
16490c9c56f5SRob Bradford
16500c9c56f5SRob Bradford### Contributors
16510c9c56f5SRob Bradford
16520c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
16530c9c56f5SRob Bradford
16540c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
16550c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
16560c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
16570c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16580c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
16590c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
16600c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
16610c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16620c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
16630c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
16640c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
16650c9c56f5SRob Bradford
16660c9c56f5SRob Bradford# v22.1
16670c9c56f5SRob Bradford
16680c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
16690c9c56f5SRob Bradford
16700c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
16710c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
16720c9c56f5SRob Bradford
16736aa10938SRob Bradford# v22.0
16746aa10938SRob Bradford
16750c9c56f5SRob BradfordThis release has been tracked through the [v22.0
16760c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
16776aa10938SRob Bradford
16786aa10938SRob Bradford### GDB Debug Stub Support
16796aa10938SRob Bradford
16806aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
16816aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
16826aa10938SRob Bradfordthe [gdb
16836aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
16846aa10938SRob Bradford
16856aa10938SRob Bradford### `virtio-iommu` Backed Segments
16866aa10938SRob Bradford
16876aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
16886aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
16896aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
16906aa10938SRob Bradford
16916aa10938SRob Bradford### Before Boot Configuration Changes
16926aa10938SRob Bradford
16936aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
16946aa10938SRob Bradfordresize) before the VM is booted.
16956aa10938SRob Bradford
16966aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
16976aa10938SRob Bradford
16986aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
16996aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
17006aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
17016aa10938SRob Bradfordmemory density.
17026aa10938SRob Bradford
17036aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
17046aa10938SRob Bradford
17056aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
17066aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
17076aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
17086aa10938SRob Bradfordhas been updated for this usage.
17096aa10938SRob Bradford
17106aa10938SRob Bradford### PMU Support for AArch64
17116aa10938SRob Bradford
17126aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
17136aa10938SRob Bradfordexposed automatically if available from the host.
17146aa10938SRob Bradford
17150c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
17166aa10938SRob Bradford
17176aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
17186aa10938SRob BradfordInternational" license which is aligned with the project charter under the
17196aa10938SRob BradfordLinux Foundation.
17206aa10938SRob Bradford
17216aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
17226aa10938SRob Bradford
17236aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
17246aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
17256aa10938SRob Bradfordversion.
17266aa10938SRob Bradford
17276aa10938SRob Bradford### Notable Bug Fixes
17286aa10938SRob Bradford
17296aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
17306aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
17316aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
17326aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
17336aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
17346aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
17356aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
17366aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
17376aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
17386aa10938SRob Bradford
17396aa10938SRob Bradford### Contributors
17406aa10938SRob Bradford
17416aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
17426aa10938SRob Bradford
17436aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
17446aa10938SRob Bradford* Barret Rhoden <brho@google.com>
17456aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
17466aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17476aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
17486aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
17496aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17506aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
17516aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
17526aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
17536aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17546aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
17556aa10938SRob Bradford
175695ca7997SRob Bradford# v21.0
175795ca7997SRob Bradford
175895ca7997SRob BradfordThis release has been tracked through the [v21.0
175995ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
176095ca7997SRob Bradford
176195ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
176295ca7997SRob Bradford
17636aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
17646aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
17656aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
17666aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
17676aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
176895ca7997SRob Bradford
176995ca7997SRob Bradford### Recommended Kernel is Now 5.15
177095ca7997SRob Bradford
17716aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
17726aa10938SRob Bradfordis now 5.15. (#3530)
177395ca7997SRob Bradford
177495ca7997SRob Bradford### Notable Bug fixes
177595ca7997SRob Bradford
17767bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
177795ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
177895ca7997SRob Bradford* Support live migration within firmware (#3586)
17797bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
178095ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
178195ca7997SRob Bradford
178295ca7997SRob Bradford### Contributors
178395ca7997SRob Bradford
178495ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
178595ca7997SRob Bradford
178695ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
178795ca7997SRob Bradford* Barret Rhoden <brho@google.com>
178895ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
178995ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
179095ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
179195ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
179295ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
179395ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
179495ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
179595ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
179695ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
179795ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
179895ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
179995ca7997SRob Bradford
180095ca7997SRob Bradford# v20.2
180195ca7997SRob Bradford
180295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
180395ca7997SRob Bradford
180495ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
180595ca7997SRob Bradford  when this fails due to older kernel (#3456)
180695ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
180795ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
180895ca7997SRob Bradford  (#3496)
180995ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
181095ca7997SRob Bradford
181195ca7997SRob Bradford# v20.1
181295ca7997SRob Bradford
181395ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
181495ca7997SRob Bradford
181595ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
181695ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
181795ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
181895ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
181995ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
182095ca7997SRob Bradford
18217fc0776aSSebastien Boeuf# v20.0
18227fc0776aSSebastien Boeuf
18237fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
18247fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
18257fc0776aSSebastien Boeuf
18267fc0776aSSebastien Boeuf### Multiple PCI segments support
18277fc0776aSSebastien Boeuf
18287fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
18297fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
18307fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
18317fc0776aSSebastien Boeuf
18327fc0776aSSebastien Boeuf### CPU pinning
18337fc0776aSSebastien Boeuf
18347fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
18357fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
18367fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
18377fc0776aSSebastien Boeuf
18387fc0776aSSebastien Boeuf### Improved VFIO support
18397fc0776aSSebastien Boeuf
18407fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
18417fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
18427fc0776aSSebastien Boeufthe passthrough device.
18437fc0776aSSebastien Boeuf
18447fc0776aSSebastien Boeuf### Safer code
18457fc0776aSSebastien Boeuf
18467fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
18477fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
18487fc0776aSSebastien Boeufunsafe sections are safe to use.
18497fc0776aSSebastien Boeuf
18507fc0776aSSebastien Boeuf### Extended documentation
18517fc0776aSSebastien Boeuf
18527fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
18537fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
18547fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
18557fc0776aSSebastien Boeuf
18567fc0776aSSebastien Boeuf### Notable bug fixes
18577fc0776aSSebastien Boeuf
18587fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
18597fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
18607fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
18617fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
18627fc0776aSSebastien Boeuf
18637fc0776aSSebastien Boeuf### Contributors
18647fc0776aSSebastien Boeuf
18657fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
18667fc0776aSSebastien Boeuf
18677fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
18687fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
18697fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
18707fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
18717fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
18727fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
18737fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
18747fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
18757fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
18767fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
18777fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
18787fc0776aSSebastien Boeuf
1879d00eb4aaSRob Bradford# v19.0
1880d00eb4aaSRob Bradford
1881d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1882d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1883d00eb4aaSRob Bradford
1884d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1885d00eb4aaSRob Bradford
1886d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1887d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1888d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1889d00eb4aaSRob Bradford
1890d00eb4aaSRob Bradford### PCI boot time optimisations
1891d00eb4aaSRob Bradford
1892d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1893d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1894d00eb4aaSRob Bradford
1895d00eb4aaSRob Bradford### Improved TDX support
1896d00eb4aaSRob Bradford
1897d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1898d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1899d00eb4aaSRob Bradford
1900d00eb4aaSRob Bradford### Live migration enhancements
1901d00eb4aaSRob Bradford
1902d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1903d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1904d00eb4aaSRob Bradfordmigration.
1905d00eb4aaSRob Bradford
1906d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1907d00eb4aaSRob Bradford
1908d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1909d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1910d00eb4aaSRob Bradford
1911d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1912d00eb4aaSRob Bradford
1913d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1914d00eb4aaSRob Bradford
1915d00eb4aaSRob Bradford### Notable bug fixes
1916d00eb4aaSRob Bradford
1917d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1918d00eb4aaSRob Bradford  snapshot/restore (#3165)
1919d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1920d00eb4aaSRob Bradford  (#3078 #3113)
1921d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1922d00eb4aaSRob Bradford  the underlying crate (#3157)
1923d00eb4aaSRob Bradford
1924d00eb4aaSRob Bradford### Contributors
1925d00eb4aaSRob Bradford
1926d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1927d00eb4aaSRob Bradford
1928d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1929d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1930d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1931d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1932d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1933d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1934d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1935d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1936d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1937d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1938d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1939d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1940d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1941d00eb4aaSRob Bradford
19422c4f8d22SRob Bradford# v18.0
19432c4f8d22SRob Bradford
19442c4f8d22SRob BradfordThis release has been tracked through the [v18.0
19452c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
19462c4f8d22SRob Bradford
19472c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
19482c4f8d22SRob Bradford
19492c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
19502c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
19512c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
19522c4f8d22SRob Bradford
19532c4f8d22SRob Bradford### Migration support for `vhost-user` devices
19542c4f8d22SRob Bradford
19552c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
19562c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
19572c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
19582c4f8d22SRob Bradford
19592c4f8d22SRob Bradford### VHDX disk image support
19602c4f8d22SRob Bradford
19612c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
19622c4f8d22SRob Bradford
19632c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
19642c4f8d22SRob Bradford
19652c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
19662c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
19672c4f8d22SRob Bradford
19682c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
19692c4f8d22SRob Bradford
19702c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
19712c4f8d22SRob Bradford
19722c4f8d22SRob Bradford### Live migration on MSHV hypervisor
19732c4f8d22SRob Bradford
19742c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
19752c4f8d22SRob Bradfordefficient tracking of dirty pages.
19762c4f8d22SRob Bradford
19772c4f8d22SRob Bradford### AArch64 CPU topology support
19782c4f8d22SRob Bradford
19792c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
19802c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
19812c4f8d22SRob Bradfordtree.
19822c4f8d22SRob Bradford
19832c4f8d22SRob Bradford### Power button support on AArch64
19842c4f8d22SRob Bradford
19852c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
19862c4f8d22SRob Bradfordis now supported when running on AArch64.
19872c4f8d22SRob Bradford
19882c4f8d22SRob Bradford### Notable bug fixes
19892c4f8d22SRob Bradford
19902c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
19912c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
19922c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
19932c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
19942c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
19952c4f8d22SRob Bradford
19962c4f8d22SRob Bradford### Contributors
19972c4f8d22SRob Bradford
19982c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
19992c4f8d22SRob Bradford
20002c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
20012c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
20022c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
20032c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
20042c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
20052c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
20062c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
20072c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
20082c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
20092c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
20102c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
20112c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
20122c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
20132c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2014e6db5999SRob Bradford
2015e6db5999SRob Bradford# v17.0
2016e6db5999SRob Bradford
2017e6db5999SRob BradfordThis release has been tracked through the [v17.0
2018e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
2019e6db5999SRob Bradford
2020e6db5999SRob Bradford### ARM64 NUMA support using ACPI
2021e6db5999SRob Bradford
2022e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
2023e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
2024e6db5999SRob Bradford
2025e6db5999SRob Bradford### `Seccomp` support for MSHV backend
2026e6db5999SRob Bradford
2027e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
2028e6db5999SRob Bradfordhypervisor backend.
2029e6db5999SRob Bradford
2030e6db5999SRob Bradford### Hotplug of `macvtap` devices
2031e6db5999SRob Bradford
2032e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
2033e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
2034e6db5999SRob Bradfordtool supports this functionality when adding a network device.
2035e6db5999SRob Bradford
2036e6db5999SRob Bradford### Improved SGX support
2037e6db5999SRob Bradford
2038e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
2039e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
2040e6db5999SRob Bradford
2041e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
2042e6db5999SRob Bradford
2043e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
2044e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
2045e6db5999SRob Bradford
2046e6db5999SRob Bradford### Notable bug fixes
2047e6db5999SRob Bradford
2048e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
2049e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
2050e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
2051e6db5999SRob Bradford(#2833).
2052e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
2053e6db5999SRob Bradford
2054e6db5999SRob Bradford### Contributors
2055e6db5999SRob Bradford
2056e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
2057e6db5999SRob Bradford
2058e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2059e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
2060e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
2061e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
2062e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2063e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
2064e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2065e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
2066e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2067e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
2068e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2069e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2070e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
2071e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
2072e6db5999SRob Bradford
20735ed8e01fSRob Bradford# v16.0
20745ed8e01fSRob Bradford
20755ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
20765ed8e01fSRob Bradford
20775ed8e01fSRob Bradford### Improved live migration support
20785ed8e01fSRob Bradford
20795ed8e01fSRob 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.
20805ed8e01fSRob Bradford
20815ed8e01fSRob Bradford### Improved `vhost-user` support
20825ed8e01fSRob Bradford
20835ed8e01fSRob 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.
20845ed8e01fSRob Bradford
20855ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
20865ed8e01fSRob Bradford
20875ed8e01fSRob 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.
20885ed8e01fSRob Bradford
20895ed8e01fSRob Bradford### Notable bug fixes
20905ed8e01fSRob Bradford
20915ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
20925ed8e01fSRob 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).
20935ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
20945ed8e01fSRob Bradford
20955ed8e01fSRob Bradford### Removed functionality
20965ed8e01fSRob Bradford
20975ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
20985ed8e01fSRob Bradford
20995ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
21005ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
21015ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
21025ed8e01fSRob Bradford
21035ed8e01fSRob Bradford### Contributors
21045ed8e01fSRob Bradford
21055ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
21065ed8e01fSRob Bradford
21075ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
21085ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
21095ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
21105ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
21115ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
21125ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
21135ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
21145ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
21155ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
21165ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
21175ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
21185ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
21195ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
21205ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
21215ed8e01fSRob Bradford
212230a01277SRob Bradford# v15.0
212330a01277SRob Bradford
212430a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
212530a01277SRob Bradford
212630a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
212730a01277SRob Bradford
212830a01277SRob Bradford### Version numbering and stability guarantees
212930a01277SRob Bradford
213030a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
213130a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
213230a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
213330a01277SRob Bradford
213430a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
213530a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
213630a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
213730a01277SRob Bradford  will be documented in the release notes.
213830a01277SRob Bradford* Point releases will be made between individual releases where there are
213930a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
214030a01277SRob Bradford
214130a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
214230a01277SRob Bradford
214330a01277SRob Bradford* Snapshot/restore is not supported across different versions
214430a01277SRob Bradford* Live migration is not supported across different versions
214530a01277SRob Bradford* The following features are considered experimental and may change
214630a01277SRob Bradford  substantially between releases: TDX, SGX.
214730a01277SRob Bradford
214830a01277SRob Bradford### Network device rate limiting
214930a01277SRob Bradford
215030a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
215130a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
215230a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
215330a01277SRob Bradford
215430a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
215530a01277SRob Bradford
215630a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
215730a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
215830a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
215930a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
216030a01277SRob Bradford
216130a01277SRob Bradford### `--api-socket` supports file descriptor parameter
216230a01277SRob Bradford
216330a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
216430a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
216530a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
216630a01277SRob Bradford
216730a01277SRob Bradford### Bug fixes
216830a01277SRob Bradford
216930a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
217030a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
217130a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
217230a01277SRob Bradford  reprogram them (#1797,#1798)
217330a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
217430a01277SRob Bradford  exhaustion on the host) (#2517)
217530a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
217630a01277SRob Bradford  prevents snapshot & restore working (#2535)
217730a01277SRob Bradford
217830a01277SRob Bradford### Deprecations
217930a01277SRob Bradford
218030a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
218130a01277SRob Bradford
218230a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
218330a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
218430a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
218530a01277SRob Bradford
218630a01277SRob Bradford### Contributors
218730a01277SRob Bradford
218830a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
218930a01277SRob Bradford
219030a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
219130a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
219230a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
219330a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
219430a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
219530a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
219630a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
219730a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
219830a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
219930a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
220030a01277SRob Bradford* William Douglas <william.douglas@intel.com>
220130a01277SRob Bradford
220230a01277SRob Bradford# v0.14.1
220330a01277SRob Bradford
220430a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
220530a01277SRob Bradfordin this release:
220630a01277SRob Bradford
220730a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
220830a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
220930a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
221030a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
221130a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
221230a01277SRob Bradford
221340c63dcfSRob Bradford# v0.14.0
221440c63dcfSRob Bradford
221540c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
221640c63dcfSRob Bradford
221740c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
221840c63dcfSRob Bradford
221940c63dcfSRob Bradford### Structured event monitoring
222040c63dcfSRob Bradford
222140c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
222240c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
222340c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
222440c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
222540c63dcfSRob BradfordHypervisor API surface.
222640c63dcfSRob Bradford
222740c63dcfSRob Bradford### MSHV improvements
222840c63dcfSRob Bradford
222940c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
223040c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
223140c63dcfSRob Bradfordthe MSHV support.
223240c63dcfSRob Bradford
223340c63dcfSRob Bradford### Improved aarch64 platform
223440c63dcfSRob Bradford
223540c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
223640c63dcfSRob BradfordVM including an enhanced serial UART.
223740c63dcfSRob Bradford
223840c63dcfSRob Bradford### Updated hotplug documentation
223940c63dcfSRob Bradford
224040c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
224140c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
224240c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
224340c63dcfSRob Bradford
224440c63dcfSRob Bradford### PTY control for serial and `virtio-console`
224540c63dcfSRob Bradford
224640c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
224740c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
224840c63dcfSRob BradfordPTY subsystem.
224940c63dcfSRob Bradford
225040c63dcfSRob Bradford### Block device rate limiting
225140c63dcfSRob Bradford
225240c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
225340c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
225430a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
225540c63dcfSRob Bradford
225640c63dcfSRob Bradford
225740c63dcfSRob Bradford### Deprecations
225840c63dcfSRob Bradford
225940c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
226040c63dcfSRob Bradford
226140c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
226240c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
226340c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
226440c63dcfSRob Bradford
226540c63dcfSRob Bradford
226640c63dcfSRob Bradford### Contributors
226740c63dcfSRob Bradford
226840c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
226940c63dcfSRob Bradfordsome new faces.
227040c63dcfSRob Bradford
227142e9632cSJosh Soref* Bo Chen <chen.bo@intel.com>
227242e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com>
227342e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com>
227442e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
227542e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com>
227642e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com>
227742e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com>
227842e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com>
227942e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com>
228042e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com>
228142e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com>
228242e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com>
228342e9632cSJosh Soref* Zide Chen <zide.chen@intel.com>
228440c63dcfSRob Bradford
2285f58b6f84SRob Bradford# v0.13.0
2286f58b6f84SRob Bradford
2287f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
2288f58b6f84SRob Bradford
2289f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
2290f58b6f84SRob Bradford
2291f58b6f84SRob Bradford### Wider VFIO device support
2292f58b6f84SRob Bradford
2293f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
2294f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
2295f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
2296f58b6f84SRob Bradforddrivers.
2297f58b6f84SRob Bradford
229840c63dcfSRob Bradford### Improved huge page support
2299f58b6f84SRob Bradford
2300f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
2301f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
2302f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
2303f58b6f84SRob Bradforddesired size in their pool.
2304f58b6f84SRob Bradford
2305f58b6f84SRob Bradford### MACvTAP support
2306f58b6f84SRob Bradford
2307f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
2308f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
2309f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
2310f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
2311f58b6f84SRob Bradford
2312f58b6f84SRob Bradford### VHD disk image support
2313f58b6f84SRob Bradford
2314f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
2315f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
2316f58b6f84SRob Bradford
2317f58b6f84SRob Bradford### Improved Virtio device threading
2318f58b6f84SRob Bradford
2319f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
2320f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
2321f58b6f84SRob Bradfordpredictable name derived from the device id.
2322f58b6f84SRob Bradford
2323f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
2324f58b6f84SRob Bradford
2325f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
2326f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
2327f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
2328f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
2329f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
2330f58b6f84SRob Bradford
2331f58b6f84SRob Bradford### Contributors
2332f58b6f84SRob Bradford
2333f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2334f58b6f84SRob Bradfordsome new faces.
2335f58b6f84SRob Bradford
2336f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2337f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2338f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2339f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2340f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2341f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2342f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2343f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2344f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2345f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2346f58b6f84SRob Bradford
2347d42b5084SRob Bradford# v0.12.0
2348d42b5084SRob Bradford
2349d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
2350d42b5084SRob Bradford
2351d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2352d42b5084SRob Bradford
2353d42b5084SRob Bradford### ARM64 enhancements
2354d42b5084SRob Bradford
2355d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2356d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2357d42b5084SRob Bradford
2358d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2359d42b5084SRob Bradford
2360d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2361d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2362d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2363d42b5084SRob Bradfordremoved.
2364d42b5084SRob Bradford
2365d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2366d42b5084SRob Bradford
2367d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
236842e9632cSJosh Sorefinstead hosted in [its own
2369d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2370d42b5084SRob Bradford
2371d42b5084SRob Bradford### Enhanced "info" API
2372d42b5084SRob Bradford
2373d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2374d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2375d42b5084SRob Bradford
2376d42b5084SRob Bradford### Contributors
2377d42b5084SRob Bradford
2378d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2379d42b5084SRob Bradford
2380d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2381d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2382d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2383d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2384d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2385d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2386d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2387d42b5084SRob Bradford
23887dcd3affSRob Bradford# v0.11.0
23897dcd3affSRob Bradford
23907dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
23917dcd3affSRob Bradford
23927dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
23937dcd3affSRob Bradford
23947dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
23957dcd3affSRob Bradford
23967dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
23977dcd3affSRob Bradfordbe used for a significantly higher performance block device.
23987dcd3affSRob Bradford
23997dcd3affSRob Bradford### Windows Guest Support
24007dcd3affSRob Bradford
24017dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
24027dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
24037dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
24047dcd3affSRob Bradforddocumentation](docs/windows.md).
24057dcd3affSRob Bradford
24067dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
24077dcd3affSRob Bradford
24087dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
24097dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
24107dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
24117dcd3affSRob Bradford
2412d00eb4aaSRob Bradford### `virtio-mmio` Removal
24137dcd3affSRob Bradford
24147dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
24157dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
24167dcd3affSRob Bradfordreduce the testing burden of the project.
24177dcd3affSRob Bradford
24187dcd3affSRob Bradford### Snapshot/Restore support for ARM64
24197dcd3affSRob Bradford
24207dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
24217dcd3affSRob Bradfordimplemented.
24227dcd3affSRob Bradford
24237dcd3affSRob Bradford### Improved Linux Boot Time
24247dcd3affSRob Bradford
24257dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
24267dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
24277dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
24287dcd3affSRob Bradford
24297dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
24307dcd3affSRob Bradford
24317dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
24327dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
24337dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
24347dcd3affSRob Bradfordresources.
24357dcd3affSRob Bradford
24367dcd3affSRob Bradford### Default Log Level Changed
24377dcd3affSRob Bradford
24387dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
24397dcd3affSRob Bradfordeasier to see potential issues. New [logging
24407dcd3affSRob Bradforddocumentation](docs/logging) was also added.
24417dcd3affSRob Bradford
24427dcd3affSRob Bradford### New `--balloon` Parameter Added
24437dcd3affSRob Bradford
24447dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
24457dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
24467dcd3affSRob Bradfordcontrols without overloading `--memory`.
24477dcd3affSRob Bradford
24487dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
24497dcd3affSRob Bradford
24507dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
24517dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
24527dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
24537dcd3affSRob Bradford
24547dcd3affSRob Bradford### Notable Bug Fixes
24557dcd3affSRob Bradford
24567dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
24577dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
24587dcd3affSRob Bradford* CPU identification string is now exposed to the guest
24597dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
24607dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
24617dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
24627dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
24637dcd3affSRob Bradford  can be used (#1803)
24647dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
24657dcd3affSRob Bradford  correctly
24667dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
24677dcd3affSRob Bradford  correctly
24687dcd3affSRob Bradford
24697dcd3affSRob Bradford### Contributors
24707dcd3affSRob Bradford
24717dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
24727dcd3affSRob Bradford
24737dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
24747dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
24757dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
24767dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
24777dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
24787dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
24797dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
24807dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
24817dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
24827dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
24837dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
24847dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
24857dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
24867dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
24877dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
24887dcd3affSRob Bradford
24897dcd3affSRob Bradford
2490198bd551SRob Bradford# v0.10.0
2491198bd551SRob Bradford
2492198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2493198bd551SRob Bradford
2494198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2495198bd551SRob Bradford
2496198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2497198bd551SRob Bradford
2498198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2499198bd551SRob Bradford
2500198bd551SRob Bradford### Memory Zones
2501198bd551SRob Bradford
250242e9632cSJosh SorefSupport 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).
2503198bd551SRob Bradford
2504198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2505198bd551SRob Bradford
2506198bd551SRob 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`.
2507198bd551SRob Bradford
2508198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2509198bd551SRob Bradford
2510198bd551SRob 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.
2511198bd551SRob Bradford
2512198bd551SRob Bradford### Notable Bug Fixes
2513198bd551SRob Bradford
2514198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2515198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2516198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2517198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2518198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2519198bd551SRob Bradford
2520198bd551SRob Bradford### Contributors
2521198bd551SRob Bradford
2522198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2523198bd551SRob Bradford
2524198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2525198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2526198bd551SRob Bradford* Anatol Belski <ab@php.net>
2527198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2528198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2529198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2530198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2531198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2532198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2533198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2534198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2535198bd551SRob Bradford
2536d714cf81SRob Bradford# v0.9.0
2537d714cf81SRob Bradford
2538d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2539d714cf81SRob Bradford
2540d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2541d714cf81SRob Bradford
2542d714cf81SRob Bradford### `io_uring` Based Block Device Support
2543d714cf81SRob Bradford
2544d714cf81SRob 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.
2545d714cf81SRob Bradford
2546d714cf81SRob Bradford### Block and Network Device Statistics
2547d714cf81SRob Bradford
2548d714cf81SRob 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.
2549d714cf81SRob Bradford
2550d714cf81SRob Bradford### HTTP API Responses
2551d714cf81SRob Bradford
2552d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2553d714cf81SRob Bradford
2554d714cf81SRob Bradford### CPU Topology
2555d714cf81SRob Bradford
2556d714cf81SRob 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.
2557d714cf81SRob Bradford
2558d714cf81SRob Bradford### Release Build Optimization
2559d714cf81SRob Bradford
2560d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2561d714cf81SRob Bradford
2562d714cf81SRob Bradford### Hypervisor Abstraction
2563d714cf81SRob Bradford
2564d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2565d714cf81SRob Bradford
2566d714cf81SRob Bradford### Snapshot/Restore Improvements
2567d714cf81SRob Bradford
2568d714cf81SRob 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.
2569d714cf81SRob Bradford
2570d714cf81SRob Bradford### Virtio Memory Ballooning Support
2571d714cf81SRob Bradford
2572d714cf81SRob 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.
2573d714cf81SRob Bradford
2574d714cf81SRob Bradford### Enhancements to ARM64 Support
2575d714cf81SRob Bradford
2576d714cf81SRob 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.
2577d714cf81SRob Bradford
2578d714cf81SRob Bradford### Intel SGX Support
2579d714cf81SRob Bradford
2580d714cf81SRob 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).
2581d714cf81SRob Bradford
2582d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2583d714cf81SRob Bradford
2584d714cf81SRob 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.
2585d714cf81SRob Bradford
2586d714cf81SRob Bradford### Notable Bug Fixes
2587d714cf81SRob Bradford
2588d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2589d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2590d714cf81SRob 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).
2591d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2592d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2593d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2594d714cf81SRob Bradford
2595d714cf81SRob Bradford### Contributors
2596d714cf81SRob Bradford
2597d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2598d714cf81SRob Bradford
2599d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2600d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2601d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2602d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2603d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2604d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2605d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2606d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2607d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2608d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2609d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2610d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2611d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2612d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2613d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2614d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2615d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2616d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2617d714cf81SRob Bradford
2618d714cf81SRob Bradford
261952b83969SRob Bradford# v0.8.0
262052b83969SRob Bradford
262152b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
262252b83969SRob Bradford
262352b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
262452b83969SRob Bradford
262552b83969SRob Bradford### Experimental Snapshot and Restore Support
262652b83969SRob Bradford
262752b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
262852b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
262952b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
263052b83969SRob Bradfordoriginal VM at the point it was paused.
263152b83969SRob Bradford
263252b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
263352b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
263452b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
263552b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
263652b83969SRob Bradford(#1176).
263752b83969SRob Bradford
263852b83969SRob Bradford### Experimental ARM64 Support
263952b83969SRob Bradford
264052b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
264152b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
264252b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
264352b83969SRob Bradford
264452b83969SRob Bradford### Support for Using 5-level Paging in Guests
264552b83969SRob Bradford
264652b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
264752b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
264852b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
264952b83969SRob Bradfordwork due to current limitations in the PVH boot process.
265052b83969SRob Bradford
265152b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
265252b83969SRob Bradford
265352b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
265452b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
265552b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
265652b83969SRob Bradfordthe guest must service.
265752b83969SRob Bradford
265852b83969SRob Bradford### `vhost_user_fs` Improvements
265952b83969SRob Bradford
266052b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
266152b83969SRob Bradford
266252b83969SRob Bradford
266352b83969SRob Bradford### Notable Bug Fixes
266452b83969SRob Bradford
266552b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
266652b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
266752b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
266852b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
266952b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
267052b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
267152b83969SRob Bradford  #1216).
267252b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
267352b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
267452b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
267552b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
267652b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
267752b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
267852b83969SRob Bradford  (#751).
267952b83969SRob Bradford
268052b83969SRob Bradford### Command Line and API Changes
268152b83969SRob Bradford
268252b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
268352b83969SRob Bradford
268452b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
268552b83969SRob Bradford  rather than `sock` in some cases.
268652b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
268752b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
268852b83969SRob Bradford  offered for negotiation.
268952b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
269052b83969SRob Bradford  address for the `tap` device on the host.
269152b83969SRob Bradford
269252b83969SRob Bradford### Contributors
269352b83969SRob Bradford
269452b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
269552b83969SRob Bradford
269652b83969SRob Bradford* Anatol Belski <ab@php.net>
269752b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
269852b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
269952b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
270052b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
270152b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
270252b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
270352b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
270452b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
270552b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
270652b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
270752b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
270852b83969SRob Bradford
270996be8229SRob Bradford# v0.7.0
271096be8229SRob Bradford
271196be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
271296be8229SRob Bradford
271396be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
271496be8229SRob Bradford
271596be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
271696be8229SRob Bradford
271796be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
271896be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
271996be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
27205c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
272196be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
272296be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
272396be8229SRob Bradforddevices to ease their removal.
272496be8229SRob Bradford
272596be8229SRob Bradford### Alternative `libc` Support
272696be8229SRob Bradford
272796be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
272896be8229SRob Bradfordcontains a static binary compiled using that toolchain.
272996be8229SRob Bradford
273096be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
273196be8229SRob Bradford
273296be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
273396be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
273496be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
273596be8229SRob Bradfordis passed when the devices are created.
273696be8229SRob Bradford
273796be8229SRob Bradford### Initial RamFS Support
273896be8229SRob Bradford
273996be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
274096be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
274196be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
274296be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
274396be8229SRob Bradfordminimal image.
274496be8229SRob Bradford
274596be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
274696be8229SRob Bradford
274796be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
274896be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
274996be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
275096be8229SRob Bradfordrequires kernel patches to be able to support it.
275196be8229SRob Bradford
275296be8229SRob Bradford### `Seccomp` Sandboxing
275396be8229SRob Bradford
275496be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
275596be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
275696be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
275796be8229SRob Bradford
275896be8229SRob Bradford### Updated Distribution Support
275996be8229SRob Bradford
276096be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
276196be8229SRob Bradforddistributions and is part of our regular testing programme.
276296be8229SRob Bradford
276396be8229SRob Bradford### Command Line and API Changes
276496be8229SRob Bradford
276596be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
276696be8229SRob Bradford
276796be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
276896be8229SRob Bradford  If no name is specified the VMM chooses one.
276996be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
277096be8229SRob Bradford  memory instead of providing a path.
277196be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
277296be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
277396be8229SRob Bradford  option and replaced it with a single optional field.
277496be8229SRob Bradford* There is enhanced validation of the command line and API provided
277596be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
277696be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
277796be8229SRob Bradford  device.
277896be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
277996be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
278096be8229SRob Bradford  has appropriate new HTTP endpoints too.
278196be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
278296be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
278396be8229SRob Bradford  to provide the equivalent of a read-only file.
278496be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
278596be8229SRob Bradford  with those used by `--disk`.
278696be8229SRob Bradford
278796be8229SRob Bradford### Contributors
278896be8229SRob Bradford
278996be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
279096be8229SRob Bradford
279196be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
279296be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
279396be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
279496be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
279596be8229SRob Bradford* Dean Sheather <dean@coder.com>
279696be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
279796be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
279896be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
279996be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
280096be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
280196be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
280296be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
280396be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
280496be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
280596be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
280696be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
280796be8229SRob Bradford
280803cb26ccSSamuel Ortiz# v0.6.0
280903cb26ccSSamuel Ortiz
281003cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
281103cb26ccSSamuel Ortiz
281203cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
281303cb26ccSSamuel Ortiz
281403cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
281503cb26ccSSamuel Ortiz
281603cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
281703cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
281803cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
281903cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
282003cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
282103cb26ccSSamuel Ortiz
282203cb26ccSSamuel Ortiz### Shared Filesystem Improvements
282303cb26ccSSamuel Ortiz
282403cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
282503cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
282603cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
282703cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
282803cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
282903cb26ccSSamuel Ortiz
283003cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
283103cb26ccSSamuel Ortiz
283203cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
283303cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
283403cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
283503cb26ccSSamuel Ortizinto their own, separate processes.
28365c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
283703cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
283803cb26ccSSamuel Ortiz
283903cb26ccSSamuel Ortiz### Command Line Interface
284003cb26ccSSamuel Ortiz
284103cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
284237a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
284337a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
284437a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
284537a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
284637a2c13aSAlyssa Rossis created with each build and available e.g. at
284703cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
284803cb26ccSSamuel Ortiz
284903cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
285003cb26ccSSamuel Ortizcommands.
285103cb26ccSSamuel Ortiz
285203cb26ccSSamuel Ortiz### PVH Boot
285303cb26ccSSamuel Ortiz
285403cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
285503cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
285603cb26ccSSamuel Ortiz
285703cb26ccSSamuel Ortiz### Contributors
285803cb26ccSSamuel Ortiz
285903cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
286003cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
286103cb26ccSSamuel Ortiz
286203cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
286303cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
286403cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
286503cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
286603cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
286703cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
286803cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
286903cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
287003cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
287103cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
287203cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
287303cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
287403cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
287503cb26ccSSamuel Ortiz
287694f2fc33SRob Bradford# v0.5.1
287794f2fc33SRob Bradford
287894f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
287994f2fc33SRob Bradford
288094f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
288194f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
288294f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
288394f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
288494f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
28858e8a7b6dSSamuel Ortiz
28862f395e60SSamuel Ortiz# v0.5.0
28872f395e60SSamuel Ortiz
28882f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
28892f395e60SSamuel Ortiz
28902f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
28912f395e60SSamuel Ortiz
28922f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
28932f395e60SSamuel Ortiz
28942f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
28952f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
28962f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
28972f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
28982f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
28992f395e60SSamuel Ortiz
29002f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
29012f395e60SSamuel Ortiz
29022f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
29032f395e60SSamuel Ortiz
29042f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
29052f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
29062f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
29072f395e60SSamuel Ortiz
29082f395e60SSamuel Ortiz### New Interrupt Management Framework
29092f395e60SSamuel Ortiz
29102f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
29112f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
29122f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
29132f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
29142f395e60SSamuel Ortizvirtio ones.
29152f395e60SSamuel Ortiz
29162f395e60SSamuel Ortiz### Development Tools
29172f395e60SSamuel Ortiz
29182f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
29192f395e60SSamuel Ortizbuild, development and testing tools.
29202f395e60SSamuel OrtizSomehow similar to the excellent
29212f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
292237a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
29232f395e60SSamuel Ortiz
29242f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
29252f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
29262f395e60SSamuel Ortiz
29272f395e60SSamuel Ortiz### Kata Containers Integration
29282f395e60SSamuel Ortiz
29292f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
29302f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
29312f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
29322f395e60SSamuel Ortizintegrated into the project's CI.
29332f395e60SSamuel Ortiz
29342f395e60SSamuel Ortiz### Contributors
29352f395e60SSamuel Ortiz
29362f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
29372f395e60SSamuel Ortiz
29382f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
29392f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
29402f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
29412f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
29422f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
29432f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
29442f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
29452f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
29462f395e60SSamuel Ortiz
2947cec884e8SSamuel Ortiz# v0.4.0
2948cec884e8SSamuel Ortiz
2949cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2950cec884e8SSamuel Ortiz
2951cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2952cec884e8SSamuel Ortiz
2953cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2954cec884e8SSamuel Ortiz
2955e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2956cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2957cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2958cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
295937a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2960cec884e8SSamuel Ortiz
2961cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2962cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2963cec884e8SSamuel Ortiz
2964cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2965cec884e8SSamuel Ortiz
2966cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2967cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2968cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2969cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2970cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2971cec884e8SSamuel Ortiz
2972cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2973cec884e8SSamuel Ortiz
2974cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2975cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2976cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2977cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2978cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2979cec884e8SSamuel Ortiz
2980cec884e8SSamuel Ortiz### Guest pause and resume
2981cec884e8SSamuel Ortiz
29825c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2983cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2984cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2985cec884e8SSamuel Ortizand resume capabilities.
2986cec884e8SSamuel Ortiz
2987cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2988cec884e8SSamuel Ortiz
2989cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2990cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2991cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2992cec884e8SSamuel Ortizdefault.
2993cec884e8SSamuel Ortiz
2994cec884e8SSamuel Ortiz### PCI BAR reprogramming
2995cec884e8SSamuel Ortiz
2996cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2997cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2998cec884e8SSamuel Ortizreprogramming.
2999cec884e8SSamuel Ortiz
3000cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
3001cec884e8SSamuel Ortiz
3002cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
3003cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
3004cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
3005cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
3006cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3007cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
3008cec884e8SSamuel Ortiztemporarily fork.
3009cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
3010cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
3011cec884e8SSamuel Ortiz
3012cec884e8SSamuel Ortiz### Contributors
3013cec884e8SSamuel Ortiz
3014cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
3015cec884e8SSamuel Ortiz
3016cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
3017cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
3018cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
3019cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
3020cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
3021cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
3022cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
3023cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
3024cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
3025cec884e8SSamuel Ortiz
30268e8a7b6dSSamuel Ortiz# v0.3.0
30278e8a7b6dSSamuel Ortiz
30288ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
30298e8a7b6dSSamuel Ortiz
30308e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
30318e8a7b6dSSamuel Ortiz
30328e8a7b6dSSamuel Ortiz### Block device offloading
30338e8a7b6dSSamuel Ortiz
30348e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
30358e8a7b6dSSamuel Ortizand we added support for
30368e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
30378e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
30388e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
30398e8a7b6dSSamuel Ortizbackend.
30408e8a7b6dSSamuel Ortiz
30418e8a7b6dSSamuel Ortiz### Network device backend
30428e8a7b6dSSamuel Ortiz
30438e8a7b6dSSamuel OrtizThe previous release provided support for
30448e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
30458e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
30468e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
30478e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
30488e8a7b6dSSamuel Ortiz
30498e8a7b6dSSamuel Ortiz### Virtual sockets
30508e8a7b6dSSamuel Ortiz
30518e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
30528e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
30538e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
30548e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
30558e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
30568e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
30578e8a7b6dSSamuel Ortiz
30588e8a7b6dSSamuel Ortiz### HTTP based API
30598e8a7b6dSSamuel Ortiz
30608e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
30618e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
30628e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
30638e8a7b6dSSamuel Ortiznext release cycle.
30648e8a7b6dSSamuel Ortiz
30658e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
30668e8a7b6dSSamuel Ortiz
30678e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
30688e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
30698e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
30708e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
30718e8a7b6dSSamuel Ortiz
30728e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
30738e8a7b6dSSamuel Ortiz
30748e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
307537a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
307637a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
30778e8a7b6dSSamuel Ortiz
30788e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
30798e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
30808e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
30818e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
30828e8a7b6dSSamuel Ortizsetting.
30838e8a7b6dSSamuel Ortiz
30848e8a7b6dSSamuel Ortiz### Ubuntu 19.10
30858e8a7b6dSSamuel Ortiz
30868ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
30878e8a7b6dSSamuel Ortizwe can now support the latest
30888e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
30898e8a7b6dSSamuel Ortiz
30908e8a7b6dSSamuel Ortiz### Large memory guests
30918e8a7b6dSSamuel Ortiz
30928e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
30938e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
30947688e6e2SSamuel Ortiz
3095d784ac29SSamuel Ortiz# v0.2.0
3096d784ac29SSamuel Ortiz
30978ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
3098d784ac29SSamuel Ortiz
3099d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
3100d784ac29SSamuel Ortiz
3101d784ac29SSamuel Ortiz### Network device offloading
3102d784ac29SSamuel Ortiz
3103d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
3104d784ac29SSamuel Ortizprocesses, we added support for
3105d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
3106d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
3107d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
3108d784ac29SSamuel Ortiz
3109d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
3110d784ac29SSamuel Ortiz
3111d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
3112d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
3113d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
3114d784ac29SSamuel Ortizcleanly reboot and shutdown.
3115d784ac29SSamuel Ortiz
3116d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
3117d784ac29SSamuel Ortizenabled by default.
3118d784ac29SSamuel Ortiz
3119d784ac29SSamuel Ortiz### Debug I/O port
3120d784ac29SSamuel Ortiz
3121d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
3122d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
3123d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
3124d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
312537a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
312637a2c13aSAlyssa Rossdetails.
3127d784ac29SSamuel Ortiz
3128d784ac29SSamuel Ortiz### Improved direct device assignment
3129d784ac29SSamuel Ortiz
3130d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
3131d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
3132d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
3133d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
3134d784ac29SSamuel Ortizdirectly assigned devices.
3135d784ac29SSamuel Ortiz
3136d784ac29SSamuel Ortiz### Improved shared filesystem
3137d784ac29SSamuel Ortiz
3138d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
3139d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
3140d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
3141d784ac29SSamuel Ortizmemory footprint.
3142d784ac29SSamuel Ortiz
3143d784ac29SSamuel Ortiz### Ubuntu bionic based CI
3144d784ac29SSamuel Ortiz
31458ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3146d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
3147d784ac29SSamuel Ortizour CI pipeline.
3148d784ac29SSamuel Ortiz
314993b77530SSamuel Ortiz# v0.1.0
315093b77530SSamuel Ortiz
31518ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
315293b77530SSamuel Ortiz
315393b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
315493b77530SSamuel Ortiz
315593b77530SSamuel Ortiz### Shared filesystem
315693b77530SSamuel Ortiz
315793b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
315893b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
315993b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
316093b77530SSamuel Ortiz
316137a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
316237a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
316393b77530SSamuel Ortiz
316493b77530SSamuel Ortiz### Initial direct device assignment support
316593b77530SSamuel Ortiz
316693b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
316793b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
316893b77530SSamuel Ortizphysical devices into its guest.
316993b77530SSamuel Ortiz
317037a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
317137a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
317293b77530SSamuel Ortiz
317393b77530SSamuel Ortiz### Userspace IOAPIC
317493b77530SSamuel Ortiz
317593b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
317693b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
317793b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
317893b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
317993b77530SSamuel Ortiz
318093b77530SSamuel Ortiz### Virtual persistent memory
318193b77530SSamuel Ortiz
318293b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
318393b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
318493b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
318593b77530SSamuel Ortiz
318693b77530SSamuel Ortiz### Linux kernel bzImage
318793b77530SSamuel Ortiz
318893b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
318993b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
319093b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
319193b77530SSamuel Ortizdistribution kernel image.
319293b77530SSamuel Ortiz
319393b77530SSamuel Ortiz### Console over virtio
319493b77530SSamuel Ortiz
319593b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
319693b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
319793b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
319893b77530SSamuel Ortizimplementation.
319993b77530SSamuel Ortiz
320093b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
320193b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
320293b77530SSamuel Ortiz`--serial tty --console off` from the command line.
320393b77530SSamuel Ortiz
320493b77530SSamuel Ortiz### Unit testing
320593b77530SSamuel Ortiz
320693b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
320793b77530SSamuel Ortiz
320893b77530SSamuel Ortiz### Integration tests parallelization
320993b77530SSamuel Ortiz
321093b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
321193b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
3212