xref: /cloud-hypervisor/release-notes.md (revision ea3e2ff625eba2c2576b0b68df4d649657ccf7cd)
1*ea3e2ff6SRob Bradford- [v41.0](#v410)
2*ea3e2ff6SRob Bradford    - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support)
3*ea3e2ff6SRob Bradford    - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support)
4*ea3e2ff6SRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements)
5e9b26397SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
6e9b26397SRob Bradford    - [Contributors](#contributors)
7*ea3e2ff6SRob Bradford- [v40.0](#v400)
8*ea3e2ff6SRob Bradford    - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices)
9*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
10*ea3e2ff6SRob Bradford    - [Contributors](#contributors-1)
114f96fa15SRob Bradford- [v39.0](#v390)
124f96fa15SRob Bradford    - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments)
134f96fa15SRob Bradford    - [Direct Booting with bzImages](#direct-booting-with-bzimages)
144f96fa15SRob Bradford    - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support)
154f96fa15SRob Bradford    - [Guest NMI Injection Support](#guest-nmi-injection-support)
16*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
17*ea3e2ff6SRob Bradford    - [Contributors](#contributors-2)
18ef4fbf08SBo Chen- [v38.0](#v380)
19ef4fbf08SBo Chen    - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices)
20ef4fbf08SBo Chen    - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread)
21ef4fbf08SBo Chen    - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault)
22ef4fbf08SBo Chen    - [New 'debug-console' Device](#new-debug-console-device)
23ef4fbf08SBo Chen    - [Improved VFIO Device Support](#improved-vfio-device-support)
24ef4fbf08SBo Chen    - [Extended CPU Affinity Support](#extended-cpu-affinity-support)
25*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
26*ea3e2ff6SRob Bradford    - [Contributors](#contributors-3)
275e702dcdSBo Chen- [v37.0](#v370)
285e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
29ef4fbf08SBo Chen    - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices)
305e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
315e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
325e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
33*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
34*ea3e2ff6SRob Bradford    - [Contributors](#contributors-4)
35f5899d15SBo Chen- [v36.0](#v360)
36f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
37f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
38f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
39f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
40f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
41f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
42f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
43*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
44*ea3e2ff6SRob Bradford    - [Contributors](#contributors-5)
45339912a5SBo Chen- [v35.0](#v350)
46339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
47339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
48339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
49*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
50*ea3e2ff6SRob Bradford    - [Contributors](#contributors-6)
51487a43cdSRob Bradford- [v34.0](#v340)
52487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
53487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
54487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
55487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
56*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
57*ea3e2ff6SRob Bradford    - [Contributors](#contributors-7)
58487a43cdSRob Bradford- [v33.0](#v330)
59487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
60487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
61*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
62*ea3e2ff6SRob Bradford    - [Contributors](#contributors-8)
6342ca292dSRob Bradford- [v32.0](#v320)
6442ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
6542ca292dSRob Bradford    - [API Changes](#api-changes)
66*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
67*ea3e2ff6SRob Bradford    - [Contributors](#contributors-9)
6842ca292dSRob Bradford- [v31.1](#v311)
69f3522e85SMichael Zhao- [v31.0](#v310)
70f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
71f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
72f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
73f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
74f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
75*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
76*ea3e2ff6SRob Bradford    - [Contributors](#contributors-10)
77ece0e6faSBo Chen- [v30.0](#v300)
78ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
79ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
80ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
81f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
82*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
83*ea3e2ff6SRob Bradford    - [Contributors](#contributors-11)
84ece0e6faSBo Chen- [v28.2](#v282)
8522cf8c97SRob Bradford- [v29.0](#v290)
8622cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
8722cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
8822cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
8922cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
9022cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
9122cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
9222cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
93*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
9422cf8c97SRob Bradford    - [Removals](#removals)
9522cf8c97SRob Bradford    - [Deprecations](#deprecations)
96*ea3e2ff6SRob Bradford    - [Contributors](#contributors-12)
9722cf8c97SRob Bradford- [v28.1](#v281)
9866460765SRob Bradford- [v28.0](#v280)
9966460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
1005e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
10166460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
10266460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
10366460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
104*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-13)
10522cf8c97SRob Bradford    - [Removals](#removals-1)
106*ea3e2ff6SRob Bradford    - [Contributors](#contributors-13)
1072ba6a9bfSRob Bradford- [v27.0](#v270)
1082ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
1092ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
1102ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
1112ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
1122ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
1132ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
1142ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
115*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-14)
116f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
117*ea3e2ff6SRob Bradford    - [Contributors](#contributors-14)
118f3522e85SMichael Zhao- [v26.0](#v260)
119f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
120f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
121*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-15)
12222cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
12366460765SRob Bradford    - [Removals](#removals-2)
124*ea3e2ff6SRob Bradford    - [Contributors](#contributors-15)
12522cf8c97SRob Bradford- [v25.0](#v250)
12622cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
12722cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
128*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-16)
12922cf8c97SRob Bradford    - [Removals](#removals-3)
130*ea3e2ff6SRob Bradford    - [Contributors](#contributors-16)
1310150de55SSebastien Boeuf- [v24.0](#v240)
1320150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1330150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1340150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1350150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
136*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-17)
1370150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
13822cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1390150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
140*ea3e2ff6SRob Bradford    - [Contributors](#contributors-17)
1410150de55SSebastien Boeuf- [v23.1](#v231)
1420c9c56f5SRob Bradford- [v23.0](#v230)
1430c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1440c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1450c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1460c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
147*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-18)
14822cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
149*ea3e2ff6SRob Bradford    - [Contributors](#contributors-18)
1500c9c56f5SRob Bradford- [v22.1](#v221)
1516aa10938SRob Bradford- [v22.0](#v220)
1526aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1536aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1546aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1556aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1566aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1576aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1580c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1596aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
160*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-19)
161*ea3e2ff6SRob Bradford    - [Contributors](#contributors-19)
16295ca7997SRob Bradford- [v21.0](#v210)
16395ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
16495ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
165*ea3e2ff6SRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-20)
166*ea3e2ff6SRob Bradford    - [Contributors](#contributors-20)
16795ca7997SRob Bradford- [v20.2](#v202)
16895ca7997SRob Bradford- [v20.1](#v201)
1697fc0776aSSebastien Boeuf- [v20.0](#v200)
1707fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1717fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1727fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1737fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1747fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
175*ea3e2ff6SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-21)
176*ea3e2ff6SRob Bradford    - [Contributors](#contributors-21)
177d00eb4aaSRob Bradford- [v19.0](#v190)
178d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
179d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
180d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
181d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
182d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
183d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
184*ea3e2ff6SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-22)
185*ea3e2ff6SRob Bradford    - [Contributors](#contributors-22)
1862c4f8d22SRob Bradford- [v18.0](#v180)
1872c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1882c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1892c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1902c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1912c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1922c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1932c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1942c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
195*ea3e2ff6SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-23)
196*ea3e2ff6SRob Bradford    - [Contributors](#contributors-23)
197e6db5999SRob Bradford- [v17.0](#v170)
198e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
199e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
200e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
201e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
202e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
203*ea3e2ff6SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-24)
204*ea3e2ff6SRob Bradford    - [Contributors](#contributors-24)
2055ed8e01fSRob Bradford- [v16.0](#v160)
2065ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
2075ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
2085ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
209*ea3e2ff6SRob Bradford    - [Notable bug fixes](#notable-bug-fixes-25)
2105ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
211*ea3e2ff6SRob Bradford    - [Contributors](#contributors-25)
21230a01277SRob Bradford- [v15.0](#v150)
21330a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
21430a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
21530a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
216f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
21730a01277SRob Bradford    - [Bug fixes](#bug-fixes)
21822cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
219*ea3e2ff6SRob Bradford    - [Contributors](#contributors-26)
22030a01277SRob Bradford- [v0.14.1](#v0141)
22140c63dcfSRob Bradford- [v0.14.0](#v0140)
22240c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
22340c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
22440c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
22540c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
22640c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
22740c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
22822cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
229*ea3e2ff6SRob Bradford    - [Contributors](#contributors-27)
230f58b6f84SRob Bradford- [v0.13.0](#v0130)
231f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
23240c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
233f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
234f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
235f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
236f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
237*ea3e2ff6SRob Bradford    - [Contributors](#contributors-28)
238d42b5084SRob Bradford- [v0.12.0](#v0120)
239d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
240d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
241d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
242d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
243*ea3e2ff6SRob Bradford    - [Contributors](#contributors-29)
2447dcd3affSRob Bradford- [v0.11.0](#v0110)
2457dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2467dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2477dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
248d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2497dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2507dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2517dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2527dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
253f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2547dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
255*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-26)
256*ea3e2ff6SRob Bradford    - [Contributors](#contributors-30)
257198bd551SRob Bradford- [v0.10.0](#v0100)
258198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
259198bd551SRob Bradford    - [Memory Zones](#memory-zones)
260198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
261198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
262*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-27)
263*ea3e2ff6SRob Bradford    - [Contributors](#contributors-31)
264d714cf81SRob Bradford- [v0.9.0](#v090)
265d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
266d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
267d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
268d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
269d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
270d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
271d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
272d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
273d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
274d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
275198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
276*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-28)
277*ea3e2ff6SRob Bradford    - [Contributors](#contributors-32)
278d714cf81SRob Bradford- [v0.8.0](#v080)
279d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
280d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
281d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
282d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
283d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
284*ea3e2ff6SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-29)
285d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
286*ea3e2ff6SRob Bradford    - [Contributors](#contributors-33)
28796be8229SRob Bradford- [v0.7.0](#v070)
28896be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
28996be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
29096be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
29196be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
29296be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
29396be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
29496be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
29552b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
296*ea3e2ff6SRob Bradford    - [Contributors](#contributors-34)
29703cb26ccSSamuel Ortiz- [v0.6.0](#v060)
29803cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
29903cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
30003cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
30103cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
30203cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
303*ea3e2ff6SRob Bradford    - [Contributors](#contributors-35)
30494f2fc33SRob Bradford- [v0.5.1](#v051)
3052f395e60SSamuel Ortiz- [v0.5.0](#v050)
30694f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
30794f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
30894f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
30994f2fc33SRob Bradford    - [Development Tools](#development-tools)
31094f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
311*ea3e2ff6SRob Bradford    - [Contributors](#contributors-36)
312cec884e8SSamuel Ortiz- [v0.4.0](#v040)
31394f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
31494f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
31594f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
31694f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
31794f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
31894f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
31994f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
320*ea3e2ff6SRob Bradford    - [Contributors](#contributors-37)
3218e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
32294f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
32394f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
32494f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
32594f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
32694f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
32794f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
32894f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
32994f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3307688e6e2SSamuel Ortiz- [v0.2.0](#v020)
33194f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
33294f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
33394f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
33494f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
33594f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
33694f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3377688e6e2SSamuel Ortiz- [v0.1.0](#v010)
33894f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
33994f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
34094f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
34194f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
34294f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
34394f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
34494f2fc33SRob Bradford    - [Unit testing](#unit-testing)
34594f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
34694f2fc33SRob Bradford
347*ea3e2ff6SRob Bradford# v41.0
348*ea3e2ff6SRob Bradford
349*ea3e2ff6SRob BradfordThis release has been tracked in our [roadmap
350*ea3e2ff6SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
351*ea3e2ff6SRob Bradfordv41.0. The following user visible changes have been made:
352*ea3e2ff6SRob Bradford
353*ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support
354*ea3e2ff6SRob Bradford
355*ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires
356*ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its
357*ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features.
358*ea3e2ff6SRob Bradford(#6318, #6467)
359*ea3e2ff6SRob Bradford
360*ea3e2ff6SRob Bradford### Sandboxing With Landlock Support
361*ea3e2ff6SRob Bradford
362*ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API
363*ea3e2ff6SRob Bradfordhas been added  - this can be used to restrict the files (and the read/write
364*ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of
365*ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be
366*ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170)
367*ea3e2ff6SRob Bradford
368*ea3e2ff6SRob Bradford### Notable Performance Improvements
369*ea3e2ff6SRob Bradford
370*ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec`
371*ea3e2ff6SRob Bradford  structures (#6636)
372*ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to
373*ea3e2ff6SRob Bradford  `virtio-block` giving a 60% improvement in single queue block throughput and
374*ea3e2ff6SRob Bradford  IOPs performance (#6580)
375*ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586)
376*ea3e2ff6SRob Bradford
377*ea3e2ff6SRob Bradford### Notable Bug Fixes
378*ea3e2ff6SRob Bradford
379*ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657)
380*ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
381*ea3e2ff6SRob Bradford  access (#6647)
382*ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now
383*ea3e2ff6SRob Bradford  included in the virtio-device seccomp filters for tests that use this (#6648)
384*ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621)
385*ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
386*ea3e2ff6SRob Bradford
387*ea3e2ff6SRob Bradford### Contributors
388*ea3e2ff6SRob Bradford
389*ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release:
390*ea3e2ff6SRob Bradford
391*ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is>
392*ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com>
393*ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com>
394*ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
395*ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
396*ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com>
397*ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
398*ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
399*ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
400*ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com>
401*ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com>
402*ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com>
403*ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com>
404*ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
405*ea3e2ff6SRob Bradford
406e9b26397SRob Bradford# v40.0
407e9b26397SRob Bradford
408e9b26397SRob BradfordThis release has been tracked in our [roadmap
409e9b26397SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
410e9b26397SRob Bradfordv40.0. The following user visible changes have been made:
411e9b26397SRob Bradford
412e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices
413e9b26397SRob Bradford
414e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using
415e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices.
416e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or
417e9b26397SRob Bradfordother file descriptor backed network devices. (#6286)
418e9b26397SRob Bradford
419e9b26397SRob Bradford### Notable Bug Fixes
420e9b26397SRob Bradford
421e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata
422e9b26397SRob Bradford  (#6495)
423e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456)
424e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial`
425e9b26397SRob Bradford  (#6486)
426e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has
427e9b26397SRob Bradford  been introduced (#6482)
428e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding
429e9b26397SRob Bradford  `cpuid` instructions and by seeding the in kernel file descriptor table
430e9b26397SRob Bradford  (#6498, #6478)
431e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523)
432e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets
433e9b26397SRob Bradford  (#6504)
434e9b26397SRob Bradford
435e9b26397SRob Bradford### Contributors
436e9b26397SRob Bradford
437e9b26397SRob BradfordMany thanks to everyone who has contributed to our release:
438e9b26397SRob Bradford
439e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
440e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com>
441e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
442e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com>
443e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com>
444e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
445e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
446e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
447e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com>
448e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
449e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com>
450e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai>
451e9b26397SRob Bradford* Songqian Li <sionli@tencent.com>
452e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com>
453e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com>
454e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
455e9b26397SRob Bradford*
456e9b26397SRob Bradford
4574f96fa15SRob Bradford# v39.0
4584f96fa15SRob Bradford
4594f96fa15SRob BradfordThis release has been tracked in our [roadmap
4604f96fa15SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
4614f96fa15SRob Bradfordv39.0. The following user visible changes have been made:
4624f96fa15SRob Bradford
4634f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments
4644f96fa15SRob Bradford
4654f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that
4664f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
4674f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may
4684f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With
4694f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387)
4704f96fa15SRob Bradford
4714f96fa15SRob Bradford### Direct Booting with bzImages
4724f96fa15SRob Bradford
4734f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200)
4744f96fa15SRob Bradford
4754f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support
4764f96fa15SRob Bradford
4774f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the
4784f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235)
4794f96fa15SRob Bradford
4804f96fa15SRob Bradford### Guest NMI Injection Support
4814f96fa15SRob Bradford
4824f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the
4834f96fa15SRob Bradfordguest. (#6047)
4844f96fa15SRob Bradford
4854f96fa15SRob Bradford### Notable Bug Fixes
4864f96fa15SRob Bradford
4874f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
4884f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208)
4894f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247)
4904f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268)
4914f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock`
4924f96fa15SRob Bradford  (#6306)
4934f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359)
4944f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372)
4954f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
4964f96fa15SRob Bradford  #6319)
4974f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337,
4984f96fa15SRob Bradford  #6338)
4994f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across
5004f96fa15SRob Bradford  snapshot/restore (#6332, #6286)
5014f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274)
5024f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293)
5034f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230)
5044f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration
5054f96fa15SRob Bradford  (#6326, #6265)
5064f96fa15SRob Bradford
5074f96fa15SRob Bradford### Contributors
5084f96fa15SRob Bradford
5094f96fa15SRob BradfordMany thanks to everyone who has contributed to our release:
5104f96fa15SRob Bradford
5114f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
5124f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com>
5134f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com>
5144f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke>
5154f96fa15SRob Bradford* Chris Webb <chris@arachsys.com>
5164f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
5174f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com>
5184f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com>
5194f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
5204f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
5214f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
5224f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
5234f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de>
5244f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com>
5254f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com>
5264f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com>
5274f96fa15SRob Bradford
528ef4fbf08SBo Chen# v38.0
529ef4fbf08SBo Chen
530ef4fbf08SBo ChenThis release has been tracked in our [roadmap
531ef4fbf08SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
532ef4fbf08SBo Chenv38.0. The following user visible changes have been made:
533ef4fbf08SBo Chen
534ef4fbf08SBo Chen### Group Rate Limiter on Block Devices
535ef4fbf08SBo Chen
536ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new
537ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O
538ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md)
539ef4fbf08SBo Chen
540ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread
541ef4fbf08SBo Chen
542ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices
543ef4fbf08SBo Chento specific host cpus.
544ef4fbf08SBo Chen
545ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault
546ef4fbf08SBo Chen
547ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel
548ef4fbf08SBo Chenmemory prefault.
549ef4fbf08SBo Chen
550ef4fbf08SBo Chen### New 'debug-console' Device
551ef4fbf08SBo Chen
552ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug
553ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug
554ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md).
555ef4fbf08SBo Chen
556ef4fbf08SBo Chen### Improved VFIO Device Support
557ef4fbf08SBo Chen
558ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO
559ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same
560ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving
561ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU
562ef4fbf08SBo Chenand an IB device).
563ef4fbf08SBo Chen
564ef4fbf08SBo Chen### Extended CPU Affinity Support
565ef4fbf08SBo Chen
566ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger
567ef4fbf08SBo Chenthan 255.
568ef4fbf08SBo Chen
569ef4fbf08SBo Chen### Notable Bug Fixes
570ef4fbf08SBo Chen
571ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software
572ef4fbf08SBo Chensuch as hwloc in the guest (#6146)
573ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141)
574ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062)
575ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095)
576ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106)
577ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196)
578ef4fbf08SBo Chen
579ef4fbf08SBo Chen### Contributors
580ef4fbf08SBo Chen
581ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release:
582ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is>
583ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com>
584ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com>
585ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com>
586ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com>
587ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com>
588ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
589ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
590ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com>
591ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
592ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com>
593ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
594ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com>
595ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com>
596ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com>
597ef4fbf08SBo Chen
5985e702dcdSBo Chen# v37.0
5995e702dcdSBo Chen
6005e702dcdSBo ChenThis release has been tracked in our [roadmap
6015e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
6025e702dcdSBo Chenv37.0. The following user visible changes have been made:
6035e702dcdSBo Chen
6045e702dcdSBo Chen### Long Term Support (LTS) Release
6055e702dcdSBo Chen
6065e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
6075e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
6085e702dcdSBo Chensupported between the point releases of the LTS.
6095e702dcdSBo Chen
6105e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
6115e702dcdSBo Chen
6125e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
6135e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
6145e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
6155e702dcdSBo Chen
6165e702dcdSBo Chen### Configurable Named TAP Devices
6175e702dcdSBo Chen
6185e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
6195e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
6205e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
6215e702dcdSBo Chen
6225e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
6235e702dcdSBo Chen
6245e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
6255e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
6265e702dcdSBo Chenlegacy serial device without losing performance benefits of using
6275e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
6285e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
6295e702dcdSBo Chen
6305e702dcdSBo Chen### Faster VM Restoration from Snapshots
6315e702dcdSBo Chen
6325e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
6335e702dcdSBo Chenimplementation of deserializing JSON files.
6345e702dcdSBo Chen
6355e702dcdSBo Chen### Notable Bug Fixes
6365e702dcdSBo Chen
6375e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
6385e702dcdSBo Chen  disabled (#5930)
6395e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
6405e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
6415e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
6425e702dcdSBo Chen
6435e702dcdSBo Chen### Contributors
6445e702dcdSBo Chen
6455e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
6465e702dcdSBo Chen
6475e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
6485e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
6495e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
6505e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
6515e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
6525e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
6535e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
6545e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
6555e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
6565e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
6575e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
6585e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
6595e702dcdSBo Chen
660f5899d15SBo Chen# v36.0
661f5899d15SBo Chen
662f5899d15SBo ChenThis release has been tracked in our [roadmap
663f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
664f5899d15SBo Chenv36.0. The following user visible changes have been made:
665f5899d15SBo Chen
666f5899d15SBo Chen### Command Line Changes
667f5899d15SBo Chen
668f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
669f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
670f5899d15SBo Chenchanges:
671f5899d15SBo Chen
672f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
673f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
674f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
675f5899d15SBo Chen
676f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
677f5899d15SBo Chen
678f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
679f5899d15SBo Chen
680f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
681f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
682f5899d15SBo Chen(`--version -v`).
683f5899d15SBo Chen
684f5899d15SBo Chen### NUMA Support for PCI segments
685f5899d15SBo Chen
686f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
687f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
688f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
689f5899d15SBo Chen
690f5899d15SBo Chen### CPU Topology Support on AMD Platforms
691f5899d15SBo Chen
692f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
693f5899d15SBo Chen
694f5899d15SBo Chen### Unix Socket Backend for Serial Port
695f5899d15SBo Chen
696f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
697f5899d15SBo Chenusers to access the serial port using a Unix socket.
698f5899d15SBo Chen
699f5899d15SBo Chen### AIO Backend for Block Devices
700f5899d15SBo Chen
701f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
702f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
703f5899d15SBo Chenhost Operating System.
704f5899d15SBo Chen
705f5899d15SBo Chen### Documentation Improvements
706f5899d15SBo Chen
707f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
708f5899d15SBo Chen* Various typo fixes
709f5899d15SBo Chen
710f5899d15SBo Chen### Notable Bug Fixes
711f5899d15SBo Chen
712f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
713f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
714f5899d15SBo Chen  enabled (#5834)
715f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
716f5899d15SBo Chen
717f5899d15SBo Chen### Contributors
718f5899d15SBo Chen
719f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
720f5899d15SBo Chen
721f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
722f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
723f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
724f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
725f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
726f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
727f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
728f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
729f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
730f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
731f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
732f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
733f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
734f5899d15SBo Chen
735339912a5SBo Chen# v35.0
736339912a5SBo Chen
737339912a5SBo ChenThis release has been tracked in our [roadmap
738339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
739339912a5SBo Chenv35.0. The following user visible changes have been made:
740339912a5SBo Chen
741339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
742339912a5SBo Chen
743339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
744339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
745339912a5SBo Chennow support both situations.
746339912a5SBo Chen
747339912a5SBo Chen### User Specified Serial Number for `virtio-block`
748339912a5SBo Chen
749339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
750339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
751339912a5SBo Chen
752339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
753339912a5SBo Chen
754339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
755339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
756339912a5SBo Chen
757339912a5SBo Chen### Notable Bug Fixes
758339912a5SBo Chen
759339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
760339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
761339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
762339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
763339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
764339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
765339912a5SBo Chen  (#5712, #5750, #5762, #5763)
766339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
767339912a5SBo Chen
768339912a5SBo Chen### Contributors
769339912a5SBo Chen
770339912a5SBo ChenMany thanks to everyone who has contributed to our release:
771339912a5SBo Chen
772339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
773339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
774339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
775339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
776339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
777339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
778339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
779339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
780339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
781339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
782339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
783339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
784339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
785339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
786339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
787339912a5SBo Chen
788487a43cdSRob Bradford# v34.0
789487a43cdSRob Bradford
790487a43cdSRob BradfordThis release has been tracked in our [roadmap
791487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
792487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
793487a43cdSRob Bradford
794487a43cdSRob Bradford### Paravirtualised Panic Device Support
795487a43cdSRob Bradford
796487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
797487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
798487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
799487a43cdSRob Bradford
800487a43cdSRob Bradford### Improvements to VM Core Dump
801487a43cdSRob Bradford
802487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
803487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
804487a43cdSRob Bradford
805487a43cdSRob Bradford### QCOW2 Support for Backing Files
806487a43cdSRob Bradford
807487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
808487a43cdSRob Bradfordbacking files. (#5573)
809487a43cdSRob Bradford
810487a43cdSRob Bradford### Minimum Host Kernel Bump
811487a43cdSRob Bradford
812487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
813487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
814487a43cdSRob Bradford
815487a43cdSRob Bradford### Notable Bug Fixes
816487a43cdSRob Bradford
817487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
818487a43cdSRob Bradford  carries out this job with KVM) (#5561).
819487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
820487a43cdSRob Bradford  than MSI-X (#5658).
821487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
822487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
823487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
824487a43cdSRob Bradford  when all vCPUs are paused (#5611).
825487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
826487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
827487a43cdSRob Bradford
828487a43cdSRob Bradford### Contributors
829487a43cdSRob Bradford
830487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
831487a43cdSRob Bradford
832487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
833487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
834487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
835487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
836487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
837487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
838487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
839487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
840487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
841487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
842487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
843487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
844487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
845487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
846487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
847487a43cdSRob Bradford
8486e0e6323SBo Chen# v33.0
8496e0e6323SBo Chen
8506e0e6323SBo ChenThis release has been tracked in our [roadmap
8516e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
8526e0e6323SBo Chenv33.0. The following user visible changes have been made:
8536e0e6323SBo Chen
8546e0e6323SBo Chen### D-Bus based API
8556e0e6323SBo Chen
8566e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
8576e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
8586e0e6323SBo Chenfound in the [API documentation](docs/api.md).
8596e0e6323SBo Chen
8606e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
8616e0e6323SBo Chen
8626e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
8636e0e6323SBo Chenguest on AArch64.
8646e0e6323SBo Chen
8656e0e6323SBo Chen### Notable Bug Fixes
8666e0e6323SBo Chen
8676e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
8686e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
8696e0e6323SBo Chen* Fix TDX initialization (#5454)
8706e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
8716e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
8726e0e6323SBo Chen  (#5506, #5524)
8736e0e6323SBo Chen* Populate APIC ID properly (#5512)
8746e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
8756e0e6323SBo Chen
8766e0e6323SBo Chen### Contributors
8776e0e6323SBo Chen
8786e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
8796e0e6323SBo Chen
8806e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
8816e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
8826e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
8836e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
8846e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
8856e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
8866e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
8876e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
8886e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
8896e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
8906e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
8916e0e6323SBo Chen
89242ca292dSRob Bradford# v32.0
89342ca292dSRob Bradford
89442ca292dSRob BradfordThis release has been tracked in our [roadmap
89542ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
89642ca292dSRob Bradfordv32.0. The following user visible changes have been made:
89742ca292dSRob Bradford
89842ca292dSRob Bradford### Increased PCI Segment Limit
89942ca292dSRob Bradford
90042ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
90142ca292dSRob Bradford
90242ca292dSRob Bradford### API Changes
90342ca292dSRob Bradford
90442ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
90542ca292dSRob Bradford  (#5348)
90642ca292dSRob Bradford
90742ca292dSRob Bradford### Notable Bug Fixes
90842ca292dSRob Bradford
90942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
91042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
91142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
91242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
91342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
91442ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
91542ca292dSRob Bradford* Fixes for TTY reset (#5414)
91642ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
91742ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
91842ca292dSRob Bradford
91942ca292dSRob Bradford### Contributors
92042ca292dSRob Bradford
92142ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
92242ca292dSRob Bradford
92342ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
92442ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
92542ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
92642ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
92742ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
92842ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
92942ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
93042ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
93142ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
93242ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
93342ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
93442ca292dSRob Bradford
93542ca292dSRob Bradford# v31.1
93642ca292dSRob Bradford
93742ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
93842ca292dSRob Bradford
93942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
94042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
94142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
94242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
94342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
94442ca292dSRob Bradford
945f3522e85SMichael Zhao# v31.0
946f3522e85SMichael Zhao
947f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
948f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
949f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
950f3522e85SMichael Zhao
951f3522e85SMichael Zhao### Update to Latest `acpi_tables`
952f3522e85SMichael Zhao
953f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
954f3522e85SMichael ZhaoThere has been significant API changes in the crate.
955f3522e85SMichael Zhao
956f3522e85SMichael Zhao### Update Reference Kernel to 6.2
957f3522e85SMichael Zhao
958f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
959f3522e85SMichael Zhao
960f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
961f3522e85SMichael Zhao
962f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
963f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
964f3522e85SMichael Zhao
965f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
966f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
967f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
968f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
969f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
970f3522e85SMichael Zhao
971f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
972f3522e85SMichael Zhao
973f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
974f3522e85SMichael Zhao
975f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
976f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
977f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
978f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
979f3522e85SMichael Zhao
980f3522e85SMichael Zhao### Documentation Improvements
981f3522e85SMichael Zhao
982f3522e85SMichael Zhao* Various improvements in API document
983f3522e85SMichael Zhao* Improvements in Doc comments
984f3522e85SMichael Zhao* Updated Slack channel information in README
985f3522e85SMichael Zhao
986f3522e85SMichael Zhao### Notable Bug Fixes
987f3522e85SMichael Zhao
988f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
989f3522e85SMichael Zhao  client.
990f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
991f3522e85SMichael Zhao  endpoint.
992f3522e85SMichael Zhao
993f3522e85SMichael Zhao### Contributors
994f3522e85SMichael Zhao
995f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
996f3522e85SMichael Zhao
997f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
998f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
999f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
1000f3522e85SMichael Zhao* Dom <peng6662001@163.com>
1001f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
1002f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
1003f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
1004f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1005f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
1006f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
1007f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
1008f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
1009f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
1010f3522e85SMichael Zhao
1011ece0e6faSBo Chen# v30.0
1012ece0e6faSBo Chen
1013ece0e6faSBo ChenThis release has been tracked in our [roadmap
1014ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
1015ece0e6faSBo Chenv30.0. The following user visible changes have been made:
1016ece0e6faSBo Chen
1017ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
1018ece0e6faSBo Chen
1019ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
1020ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
1021ece0e6faSBo Chenwere several syntax changes:
1022ece0e6faSBo Chen
1023ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
1024ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
1025ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
1026ece0e6faSBo Chen
1027ece0e6faSBo Chen### Basic vfio-user Server Support
1028ece0e6faSBo Chen
1029ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
1030ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
1031ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
1032ece0e6faSBo Chen`rust-vmm` organization.
1033ece0e6faSBo Chen
1034ece0e6faSBo Chen### Heap Profiling Support
1035ece0e6faSBo Chen
1036ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
1037ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
1038ece0e6faSBo Chen
1039ece0e6faSBo Chen### Documentation Improvements
1040ece0e6faSBo Chen
1041ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
1042ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
1043ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
1044ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
1045ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
1046ece0e6faSBo Chenexisting 'profiling' documentation.
1047ece0e6faSBo Chen
1048ece0e6faSBo Chen### Notable Bug Fixes
1049ece0e6faSBo Chen
1050ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
1051ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
1052ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
1053ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
1054ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
1055ece0e6faSBo Chen
1056ece0e6faSBo Chen### Contributors
1057ece0e6faSBo Chen
1058ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
1059ece0e6faSBo Chen
1060ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
1061ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
1062ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
1063ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
1064ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
1065ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
1066ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
1067ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1068ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
1069ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1070ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
1071ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
1072ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
1073ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
1074ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
1075ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
1076ece0e6faSBo Chen
1077ece0e6faSBo Chen# v28.2
1078ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
1079ece0e6faSBo Chen
1080ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
1081ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
1082ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
1083ece0e6faSBo Chen
108422cf8c97SRob Bradford# v29.0
108522cf8c97SRob Bradford
108622cf8c97SRob BradfordThis release has been tracked in our [roadmap
108722cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
108822cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
108922cf8c97SRob Bradford
109022cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
109122cf8c97SRob Bradford
109222cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
109322cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
109422cf8c97SRob Bradford
109522cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
109622cf8c97SRob Bradford
109722cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
109822cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
109922cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
110022cf8c97SRob Bradfordsupported but has worked for some versions.)
110122cf8c97SRob Bradford
110222cf8c97SRob Bradford### Heap Allocation Improvements
110322cf8c97SRob Bradford
110422cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
110522cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
110622cf8c97SRob Bradford
110722cf8c97SRob Bradford### `ch-remote` Improvements
110822cf8c97SRob Bradford
110922cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
111022cf8c97SRob Bradford`ch-remote`.
111122cf8c97SRob Bradford
111222cf8c97SRob Bradford### `AArch64` Documentation Integration
111322cf8c97SRob Bradford
111422cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
111522cf8c97SRob BradfordREADME.
111622cf8c97SRob Bradford
111722cf8c97SRob Bradford### `virtio-block` Counters Enhancement
111822cf8c97SRob Bradford
111922cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
112022cf8c97SRob Bradfordlatency counters.
112122cf8c97SRob Bradford
112222cf8c97SRob Bradford### TCP Offload Control
112322cf8c97SRob Bradford
112422cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
112522cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
112622cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
112722cf8c97SRob Bradford
112822cf8c97SRob Bradford### Notable Bug Fixes
112922cf8c97SRob Bradford
113022cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
113122cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
113222cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
113322cf8c97SRob Bradford  (#4924, #4949)
113422cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
113522cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
113622cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
113722cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
113822cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
113922cf8c97SRob Bradford
114022cf8c97SRob Bradford### Removals
114122cf8c97SRob Bradford
114222cf8c97SRob BradfordNo functionality has been removed in this release.
114322cf8c97SRob Bradford
114422cf8c97SRob Bradford### Deprecations
114522cf8c97SRob Bradford
114622cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
114722cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
114822cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
114922cf8c97SRob Bradford  (#5085)
115022cf8c97SRob Bradford
115122cf8c97SRob Bradford### Contributors
115222cf8c97SRob Bradford
115322cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
115422cf8c97SRob Bradford
115522cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
115622cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
115722cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
115822cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
115922cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
116022cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
116122cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
116222cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
116322cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
116422cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
116522cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
116622cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
116722cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
116822cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
116922cf8c97SRob Bradford
117022cf8c97SRob Bradford
117122cf8c97SRob Bradford# v28.1
117222cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
117322cf8c97SRob Bradford
117422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
117522cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
117622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
117722cf8c97SRob Bradford  (#4924, #4949)
117822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
117922cf8c97SRob Bradford* Improve README and documentation
118022cf8c97SRob Bradford
118166460765SRob Bradford# v28.0
118266460765SRob Bradford
118366460765SRob BradfordThis release has been tracked in our new [roadmap
118466460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
118566460765SRob Bradfordv28.0.
118666460765SRob Bradford
118766460765SRob Bradford### Community Engagement (Reminder)
118866460765SRob Bradford
118966460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
119066460765SRob Bradforddiscussions.  Please consider
119166460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
119266460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
119366460765SRob BradfordHypervisor development.
119466460765SRob Bradford
119566460765SRob Bradford### Long Term Support (LTS) Release
119666460765SRob Bradford
119766460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
119866460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
119966460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
120066460765SRob Bradfordreleases of the LTS.
120166460765SRob Bradford
120266460765SRob Bradford### Virtualised TPM Support
120366460765SRob Bradford
120442e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM
120566460765SRob Bradforddocumentation](docs/tpm.md).
120666460765SRob Bradford
120766460765SRob Bradford### Transparent Huge Page Support
120866460765SRob Bradford
120966460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
121066460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
121166460765SRob Bradfordthen this will be used resulting in improved boot performance.
121266460765SRob Bradford
121366460765SRob Bradford### README Quick Start Improved
121466460765SRob Bradford
121566460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
121666460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
121766460765SRob Bradford
121866460765SRob Bradford### Notable Bug Fixes
121966460765SRob Bradford
122066460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
122166460765SRob Bradford  memory consumption (#4835)
122266460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
122366460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
122466460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
122566460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
122666460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
122766460765SRob Bradford  newer Linux kernels (#4744)
122866460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
122966460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
123066460765SRob Bradford
123166460765SRob Bradford### Removals
123266460765SRob Bradford
123366460765SRob BradfordThe following functionality has been removed:
123466460765SRob Bradford
123566460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
123666460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
123766460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
123866460765SRob Bradford
123966460765SRob Bradford### Contributors
124066460765SRob Bradford
124166460765SRob BradfordMany thanks to everyone who has contributed to our release:
124266460765SRob Bradford
124366460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
124466460765SRob Bradford* Bo Chen <chen.bo@intel.com>
124566460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
124666460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
124766460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
124866460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
124966460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
125066460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
125166460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
125266460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
125366460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
125466460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
125566460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
125666460765SRob Bradford
12572ba6a9bfSRob Bradford# v27.0
12582ba6a9bfSRob Bradford
12592ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
12602ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
12612ba6a9bfSRob Bradfordv27.0.
12622ba6a9bfSRob Bradford
12632ba6a9bfSRob Bradford### Community Engagement
12642ba6a9bfSRob Bradford
12652ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
12662ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
12672ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
12682ba6a9bfSRob Bradford
12692ba6a9bfSRob Bradford### Prebuilt Packages
12702ba6a9bfSRob Bradford
12712ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
12722ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
12732ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
12742ba6a9bfSRob Bradfordfirmware options available.
12752ba6a9bfSRob Bradford
12762ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
12772ba6a9bfSRob Bradford
12782ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
12792ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
12802ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
12812ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
12822ba6a9bfSRob Bradford(#4658, #4676.)
12832ba6a9bfSRob Bradford
12842ba6a9bfSRob Bradford### Boot Tracing
12852ba6a9bfSRob Bradford
12862ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
12872ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
12882ba6a9bfSRob Bradford
12892ba6a9bfSRob Bradford### Simplified Build Feature Flags
12902ba6a9bfSRob Bradford
12912ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
12922ba6a9bfSRob Bradford
12932ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
12942ba6a9bfSRob Bradford  (with `kvm` enabled by default),
12952ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
12962ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
12972ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
12982ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
12992ba6a9bfSRob Bradford  feature) and dumping guest memory.
13002ba6a9bfSRob Bradford
13012ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
13022ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
13032ba6a9bfSRob Bradford
13042ba6a9bfSRob Bradford### Asynchronous Kernel Loading
13052ba6a9bfSRob Bradford
13062ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
13072ba6a9bfSRob Bradfordx86-64. (#4538)
13082ba6a9bfSRob Bradford
13092ba6a9bfSRob Bradford### GDB Support for AArch64
13102ba6a9bfSRob Bradford
13112ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
13122ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
13132ba6a9bfSRob Bradford
13142ba6a9bfSRob Bradford### Notable Bug Fixes
13152ba6a9bfSRob Bradford
13162ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
13172ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
13182ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
13192ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
13202ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
13212ba6a9bfSRob Bradford
13222ba6a9bfSRob Bradford### Deprecations
13232ba6a9bfSRob Bradford
13242ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
13252ba6a9bfSRob Bradfordplan to use alternatives.
13262ba6a9bfSRob Bradford
13272ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
13282ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
13292ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
13302ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
13312ba6a9bfSRob Bradford
13322ba6a9bfSRob Bradford### Contributors
13332ba6a9bfSRob Bradford
13342ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
13352ba6a9bfSRob Bradford
13362ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
13372ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
13382ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
13392ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13402ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
13412ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
13422ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
13432ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
13442ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13452ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
13462ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
13472ba6a9bfSRob Bradford
1348ed9e54d6SRob Bradford# v26.0
1349ed9e54d6SRob Bradford
1350ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
1351ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
1352ed9e54d6SRob Bradford
1353ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1354ed9e54d6SRob Bradford
1355ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1356ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1357ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1358ed9e54d6SRob Bradford
1359ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1360ed9e54d6SRob Bradford
1361ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1362ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1363ed9e54d6SRob Bradford
1364ed9e54d6SRob Bradford### Notable Bug Fixes
1365ed9e54d6SRob Bradford
1366ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
13677bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1368ed9e54d6SRob Bradford  out (#4456)
1369ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1370ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1371ed9e54d6SRob Bradford  (#4269, #4293)
1372ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1373ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1374ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1375ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1376ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1377ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1378ed9e54d6SRob Bradford
1379ed9e54d6SRob Bradford### Deprecations
1380ed9e54d6SRob Bradford
1381ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1382ed9e54d6SRob Bradfordplan to use alternatives.
1383ed9e54d6SRob Bradford
1384ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1385ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1386ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1387ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1388ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1389ed9e54d6SRob Bradford
1390ed9e54d6SRob Bradford### Removals
1391ed9e54d6SRob Bradford
1392ed9e54d6SRob BradfordThe following functionality has been removed:
1393ed9e54d6SRob Bradford
1394ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
139542e9632cSJosh Soref  equivalent. This was residual from the removal of the `vhost-user-block`
1396ed9e54d6SRob Bradford  spawning feature (#4402.)
1397ed9e54d6SRob Bradford
1398ed9e54d6SRob Bradford### Contributors
1399ed9e54d6SRob Bradford
1400ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1401ed9e54d6SRob Bradford
1402ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1403ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1404ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1405ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1406ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1407ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1408ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1409ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1410ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1411ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1412ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1413ed9e54d6SRob Bradford
1414b132cd21SRob Bradford# v25.0
1415b132cd21SRob Bradford
1416b132cd21SRob BradfordThis release has been tracked through the [v25.0
1417b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
1418b132cd21SRob Bradford
1419b132cd21SRob Bradford### `ch-remote` Improvements
1420b132cd21SRob Bradford
1421b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1422b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1423b132cd21SRob Bradford
1424b132cd21SRob Bradford### VM "Coredump" Support
1425b132cd21SRob Bradford
1426b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1427b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1428b132cd21SRob Bradford
1429b132cd21SRob Bradford### Notable Bug Fixes
1430b132cd21SRob Bradford
1431b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1432b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1433b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1434b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1435b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1436b132cd21SRob Bradford  5.16 (#4156)
1437b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1438b132cd21SRob Bradford  Linux guest
1439b132cd21SRob Bradford
1440b132cd21SRob Bradford### Removals
1441b132cd21SRob Bradford
1442b132cd21SRob BradfordThe following functionality has been removed:
1443b132cd21SRob Bradford
1444b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1445b132cd21SRob Bradford  (#3968)
1446b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1447b132cd21SRob Bradford
1448b132cd21SRob Bradford### Contributors
1449b132cd21SRob Bradford
1450b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1451b132cd21SRob Bradford
1452b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1453b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1454b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1455b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1456b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1457b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1458b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1459b132cd21SRob Bradford
14600150de55SSebastien Boeuf# v24.0
14610150de55SSebastien Boeuf
14620150de55SSebastien BoeufThis release has been tracked through the [v24.0
14630150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
14640150de55SSebastien Boeuf
14650150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
14660150de55SSebastien Boeuf
14670150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
14680150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
14690150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
14700150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
14710150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
14720150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
14730150de55SSebastien Boeuf
14740150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
14750150de55SSebastien Boeuf
14760150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
14770150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
14780150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
14790150de55SSebastien Boeuf
14800150de55SSebastien Boeuf### Sparse Mmap support
14810150de55SSebastien Boeuf
14820150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
14830150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
14840150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
14850150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
14860150de55SSebastien Boeufimpacts the performance related to this device.
14870150de55SSebastien Boeuf
14880150de55SSebastien Boeuf### Expose Platform Serial Number
14890150de55SSebastien Boeuf
14900150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
14910150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
14920150de55SSebastien Boeufguest through the SMBIOS.
14930150de55SSebastien Boeuf
14940150de55SSebastien Boeuf### Notable Bug Fixes
14950150de55SSebastien Boeuf
14960150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
14970150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
14980150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
14990150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
15000150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
15010150de55SSebastien Boeuf
15020150de55SSebastien Boeuf### Notable Improvements
15030150de55SSebastien Boeuf
15040150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
15050150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
15060150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
15070150de55SSebastien Boeuf
15080150de55SSebastien Boeuf### Deprecations
15090150de55SSebastien Boeuf
15100150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
15110150de55SSebastien Boeufplan to use alternatives
15120150de55SSebastien Boeuf
15130150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
15140150de55SSebastien Boeuf  (#3968)
15150150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
15160150de55SSebastien Boeuf
15170150de55SSebastien Boeuf### New on the Website
15180150de55SSebastien Boeuf
15190150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
15200150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
15210150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
15220150de55SSebastien Boeuf
15230150de55SSebastien Boeuf### Contributors
15240150de55SSebastien Boeuf
15250150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
15260150de55SSebastien Boeuf
15270150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
15280150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
15290150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
15300150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
15310150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
15320150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
15330150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
15340150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
15350150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
15360150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
15370150de55SSebastien Boeuf
15380150de55SSebastien Boeuf# v23.1
15390150de55SSebastien Boeuf
15400150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
15410150de55SSebastien Boeuf
15420150de55SSebastien Boeuf* Add some missing seccomp rules
15430150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
15440150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
15450150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
15460150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
15470150de55SSebastien Boeuf
15480c9c56f5SRob Bradford# v23.0
15490c9c56f5SRob Bradford
15500c9c56f5SRob BradfordThis release has been tracked through the [v23.0
15510c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
15520c9c56f5SRob Bradford
15530c9c56f5SRob Bradford### vDPA Support
15540c9c56f5SRob Bradford
15550c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
15560c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
15570c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
15580c9c56f5SRob Bradford
15590c9c56f5SRob Bradford### Updated OS Support list
15600c9c56f5SRob Bradford
15610c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
15620c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
15630c9c56f5SRob Bradford
15640c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
15650c9c56f5SRob Bradford
15660c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
15670c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
15680c9c56f5SRob Bradfordallocated RAM. (#3938)
15690c9c56f5SRob Bradford
15700c9c56f5SRob Bradford### `AMX` Support
15710c9c56f5SRob Bradford
15720c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
15730c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
15740c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
15750c9c56f5SRob Bradford
15760c9c56f5SRob Bradford### Notable Bug Fixes
15770c9c56f5SRob Bradford
15780c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
15790c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
15800c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
15810c9c56f5SRob Bradford  `virtio-mem` (#3883)
15820c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
15830c9c56f5SRob Bradford  vIOMMU (#3870)
15840c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
15850c9c56f5SRob Bradford  (#3848)
15860c9c56f5SRob Bradford
15870c9c56f5SRob Bradford### Deprecations
15880c9c56f5SRob Bradford
15890c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
15900c9c56f5SRob Bradfordplan to use alternatives
15910c9c56f5SRob Bradford
15920c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
15930c9c56f5SRob Bradford  (#3968)
15940c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
15950c9c56f5SRob Bradford
15960c9c56f5SRob Bradford### Contributors
15970c9c56f5SRob Bradford
15980c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
15990c9c56f5SRob Bradford
16000c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
16010c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
16020c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
16030c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16040c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
16050c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
16060c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
16070c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16080c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
16090c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
16100c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
16110c9c56f5SRob Bradford
16120c9c56f5SRob Bradford# v22.1
16130c9c56f5SRob Bradford
16140c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
16150c9c56f5SRob Bradford
16160c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
16170c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
16180c9c56f5SRob Bradford
16196aa10938SRob Bradford# v22.0
16206aa10938SRob Bradford
16210c9c56f5SRob BradfordThis release has been tracked through the [v22.0
16220c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
16236aa10938SRob Bradford
16246aa10938SRob Bradford### GDB Debug Stub Support
16256aa10938SRob Bradford
16266aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
16276aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
16286aa10938SRob Bradfordthe [gdb
16296aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
16306aa10938SRob Bradford
16316aa10938SRob Bradford### `virtio-iommu` Backed Segments
16326aa10938SRob Bradford
16336aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
16346aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
16356aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
16366aa10938SRob Bradford
16376aa10938SRob Bradford### Before Boot Configuration Changes
16386aa10938SRob Bradford
16396aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
16406aa10938SRob Bradfordresize) before the VM is booted.
16416aa10938SRob Bradford
16426aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
16436aa10938SRob Bradford
16446aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
16456aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
16466aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
16476aa10938SRob Bradfordmemory density.
16486aa10938SRob Bradford
16496aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
16506aa10938SRob Bradford
16516aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
16526aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
16536aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
16546aa10938SRob Bradfordhas been updated for this usage.
16556aa10938SRob Bradford
16566aa10938SRob Bradford### PMU Support for AArch64
16576aa10938SRob Bradford
16586aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
16596aa10938SRob Bradfordexposed automatically if available from the host.
16606aa10938SRob Bradford
16610c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
16626aa10938SRob Bradford
16636aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
16646aa10938SRob BradfordInternational" license which is aligned with the project charter under the
16656aa10938SRob BradfordLinux Foundation.
16666aa10938SRob Bradford
16676aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
16686aa10938SRob Bradford
16696aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
16706aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
16716aa10938SRob Bradfordversion.
16726aa10938SRob Bradford
16736aa10938SRob Bradford### Notable Bug Fixes
16746aa10938SRob Bradford
16756aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
16766aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
16776aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
16786aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
16796aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
16806aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
16816aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
16826aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
16836aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
16846aa10938SRob Bradford
16856aa10938SRob Bradford### Contributors
16866aa10938SRob Bradford
16876aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
16886aa10938SRob Bradford
16896aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
16906aa10938SRob Bradford* Barret Rhoden <brho@google.com>
16916aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
16926aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
16936aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
16946aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
16956aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16966aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
16976aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
16986aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
16996aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17006aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
17016aa10938SRob Bradford
170295ca7997SRob Bradford# v21.0
170395ca7997SRob Bradford
170495ca7997SRob BradfordThis release has been tracked through the [v21.0
170595ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
170695ca7997SRob Bradford
170795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
170895ca7997SRob Bradford
17096aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
17106aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
17116aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
17126aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
17136aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
171495ca7997SRob Bradford
171595ca7997SRob Bradford### Recommended Kernel is Now 5.15
171695ca7997SRob Bradford
17176aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
17186aa10938SRob Bradfordis now 5.15. (#3530)
171995ca7997SRob Bradford
172095ca7997SRob Bradford### Notable Bug fixes
172195ca7997SRob Bradford
17227bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
172395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
172495ca7997SRob Bradford* Support live migration within firmware (#3586)
17257bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
172695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
172795ca7997SRob Bradford
172895ca7997SRob Bradford### Contributors
172995ca7997SRob Bradford
173095ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
173195ca7997SRob Bradford
173295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
173395ca7997SRob Bradford* Barret Rhoden <brho@google.com>
173495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
173595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
173695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
173795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
173895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
173995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
174095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
174195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
174295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
174395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
174495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
174595ca7997SRob Bradford
174695ca7997SRob Bradford# v20.2
174795ca7997SRob Bradford
174895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
174995ca7997SRob Bradford
175095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
175195ca7997SRob Bradford  when this fails due to older kernel (#3456)
175295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
175395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
175495ca7997SRob Bradford  (#3496)
175595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
175695ca7997SRob Bradford
175795ca7997SRob Bradford# v20.1
175895ca7997SRob Bradford
175995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
176095ca7997SRob Bradford
176195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
176295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
176395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
176495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
176595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
176695ca7997SRob Bradford
17677fc0776aSSebastien Boeuf# v20.0
17687fc0776aSSebastien Boeuf
17697fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
17707fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
17717fc0776aSSebastien Boeuf
17727fc0776aSSebastien Boeuf### Multiple PCI segments support
17737fc0776aSSebastien Boeuf
17747fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
17757fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
17767fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
17777fc0776aSSebastien Boeuf
17787fc0776aSSebastien Boeuf### CPU pinning
17797fc0776aSSebastien Boeuf
17807fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
17817fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
17827fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
17837fc0776aSSebastien Boeuf
17847fc0776aSSebastien Boeuf### Improved VFIO support
17857fc0776aSSebastien Boeuf
17867fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
17877fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
17887fc0776aSSebastien Boeufthe passthrough device.
17897fc0776aSSebastien Boeuf
17907fc0776aSSebastien Boeuf### Safer code
17917fc0776aSSebastien Boeuf
17927fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
17937fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
17947fc0776aSSebastien Boeufunsafe sections are safe to use.
17957fc0776aSSebastien Boeuf
17967fc0776aSSebastien Boeuf### Extended documentation
17977fc0776aSSebastien Boeuf
17987fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
17997fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
18007fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
18017fc0776aSSebastien Boeuf
18027fc0776aSSebastien Boeuf### Notable bug fixes
18037fc0776aSSebastien Boeuf
18047fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
18057fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
18067fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
18077fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
18087fc0776aSSebastien Boeuf
18097fc0776aSSebastien Boeuf### Contributors
18107fc0776aSSebastien Boeuf
18117fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
18127fc0776aSSebastien Boeuf
18137fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
18147fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
18157fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
18167fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
18177fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
18187fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
18197fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
18207fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
18217fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
18227fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
18237fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
18247fc0776aSSebastien Boeuf
1825d00eb4aaSRob Bradford# v19.0
1826d00eb4aaSRob Bradford
1827d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1828d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1829d00eb4aaSRob Bradford
1830d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1831d00eb4aaSRob Bradford
1832d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1833d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1834d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1835d00eb4aaSRob Bradford
1836d00eb4aaSRob Bradford### PCI boot time optimisations
1837d00eb4aaSRob Bradford
1838d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1839d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1840d00eb4aaSRob Bradford
1841d00eb4aaSRob Bradford### Improved TDX support
1842d00eb4aaSRob Bradford
1843d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1844d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1845d00eb4aaSRob Bradford
1846d00eb4aaSRob Bradford### Live migration enhancements
1847d00eb4aaSRob Bradford
1848d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1849d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1850d00eb4aaSRob Bradfordmigration.
1851d00eb4aaSRob Bradford
1852d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1853d00eb4aaSRob Bradford
1854d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1855d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1856d00eb4aaSRob Bradford
1857d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1858d00eb4aaSRob Bradford
1859d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1860d00eb4aaSRob Bradford
1861d00eb4aaSRob Bradford### Notable bug fixes
1862d00eb4aaSRob Bradford
1863d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1864d00eb4aaSRob Bradford  snapshot/restore (#3165)
1865d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1866d00eb4aaSRob Bradford  (#3078 #3113)
1867d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1868d00eb4aaSRob Bradford  the underlying crate (#3157)
1869d00eb4aaSRob Bradford
1870d00eb4aaSRob Bradford### Contributors
1871d00eb4aaSRob Bradford
1872d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1873d00eb4aaSRob Bradford
1874d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1875d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1876d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1877d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1878d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1879d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1880d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1881d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1882d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1883d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1884d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1885d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1886d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1887d00eb4aaSRob Bradford
18882c4f8d22SRob Bradford# v18.0
18892c4f8d22SRob Bradford
18902c4f8d22SRob BradfordThis release has been tracked through the [v18.0
18912c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
18922c4f8d22SRob Bradford
18932c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
18942c4f8d22SRob Bradford
18952c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
18962c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
18972c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
18982c4f8d22SRob Bradford
18992c4f8d22SRob Bradford### Migration support for `vhost-user` devices
19002c4f8d22SRob Bradford
19012c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
19022c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
19032c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
19042c4f8d22SRob Bradford
19052c4f8d22SRob Bradford### VHDX disk image support
19062c4f8d22SRob Bradford
19072c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
19082c4f8d22SRob Bradford
19092c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
19102c4f8d22SRob Bradford
19112c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
19122c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
19132c4f8d22SRob Bradford
19142c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
19152c4f8d22SRob Bradford
19162c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
19172c4f8d22SRob Bradford
19182c4f8d22SRob Bradford### Live migration on MSHV hypervisor
19192c4f8d22SRob Bradford
19202c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
19212c4f8d22SRob Bradfordefficient tracking of dirty pages.
19222c4f8d22SRob Bradford
19232c4f8d22SRob Bradford### AArch64 CPU topology support
19242c4f8d22SRob Bradford
19252c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
19262c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
19272c4f8d22SRob Bradfordtree.
19282c4f8d22SRob Bradford
19292c4f8d22SRob Bradford### Power button support on AArch64
19302c4f8d22SRob Bradford
19312c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
19322c4f8d22SRob Bradfordis now supported when running on AArch64.
19332c4f8d22SRob Bradford
19342c4f8d22SRob Bradford### Notable bug fixes
19352c4f8d22SRob Bradford
19362c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
19372c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
19382c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
19392c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
19402c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
19412c4f8d22SRob Bradford
19422c4f8d22SRob Bradford### Contributors
19432c4f8d22SRob Bradford
19442c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
19452c4f8d22SRob Bradford
19462c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
19472c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
19482c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
19492c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
19502c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
19512c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
19522c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
19532c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
19542c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
19552c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
19562c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
19572c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
19582c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
19592c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1960e6db5999SRob Bradford
1961e6db5999SRob Bradford# v17.0
1962e6db5999SRob Bradford
1963e6db5999SRob BradfordThis release has been tracked through the [v17.0
1964e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1965e6db5999SRob Bradford
1966e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1967e6db5999SRob Bradford
1968e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1969e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1970e6db5999SRob Bradford
1971e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1972e6db5999SRob Bradford
1973e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1974e6db5999SRob Bradfordhypervisor backend.
1975e6db5999SRob Bradford
1976e6db5999SRob Bradford### Hotplug of `macvtap` devices
1977e6db5999SRob Bradford
1978e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1979e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1980e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1981e6db5999SRob Bradford
1982e6db5999SRob Bradford### Improved SGX support
1983e6db5999SRob Bradford
1984e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1985e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1986e6db5999SRob Bradford
1987e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1988e6db5999SRob Bradford
1989e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1990e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1991e6db5999SRob Bradford
1992e6db5999SRob Bradford### Notable bug fixes
1993e6db5999SRob Bradford
1994e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1995e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1996e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1997e6db5999SRob Bradford(#2833).
1998e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1999e6db5999SRob Bradford
2000e6db5999SRob Bradford### Contributors
2001e6db5999SRob Bradford
2002e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
2003e6db5999SRob Bradford
2004e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2005e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
2006e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
2007e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
2008e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2009e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
2010e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2011e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
2012e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2013e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
2014e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2015e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2016e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
2017e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
2018e6db5999SRob Bradford
20195ed8e01fSRob Bradford# v16.0
20205ed8e01fSRob Bradford
20215ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
20225ed8e01fSRob Bradford
20235ed8e01fSRob Bradford### Improved live migration support
20245ed8e01fSRob Bradford
20255ed8e01fSRob 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.
20265ed8e01fSRob Bradford
20275ed8e01fSRob Bradford### Improved `vhost-user` support
20285ed8e01fSRob Bradford
20295ed8e01fSRob 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.
20305ed8e01fSRob Bradford
20315ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
20325ed8e01fSRob Bradford
20335ed8e01fSRob 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.
20345ed8e01fSRob Bradford
20355ed8e01fSRob Bradford### Notable bug fixes
20365ed8e01fSRob Bradford
20375ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
20385ed8e01fSRob 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).
20395ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
20405ed8e01fSRob Bradford
20415ed8e01fSRob Bradford### Removed functionality
20425ed8e01fSRob Bradford
20435ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
20445ed8e01fSRob Bradford
20455ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
20465ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
20475ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
20485ed8e01fSRob Bradford
20495ed8e01fSRob Bradford### Contributors
20505ed8e01fSRob Bradford
20515ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
20525ed8e01fSRob Bradford
20535ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
20545ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
20555ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
20565ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
20575ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
20585ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
20595ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
20605ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
20615ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
20625ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
20635ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
20645ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
20655ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
20665ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
20675ed8e01fSRob Bradford
206830a01277SRob Bradford# v15.0
206930a01277SRob Bradford
207030a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
207130a01277SRob Bradford
207230a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
207330a01277SRob Bradford
207430a01277SRob Bradford### Version numbering and stability guarantees
207530a01277SRob Bradford
207630a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
207730a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
207830a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
207930a01277SRob Bradford
208030a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
208130a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
208230a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
208330a01277SRob Bradford  will be documented in the release notes.
208430a01277SRob Bradford* Point releases will be made between individual releases where there are
208530a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
208630a01277SRob Bradford
208730a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
208830a01277SRob Bradford
208930a01277SRob Bradford* Snapshot/restore is not supported across different versions
209030a01277SRob Bradford* Live migration is not supported across different versions
209130a01277SRob Bradford* The following features are considered experimental and may change
209230a01277SRob Bradford  substantially between releases: TDX, SGX.
209330a01277SRob Bradford
209430a01277SRob Bradford### Network device rate limiting
209530a01277SRob Bradford
209630a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
209730a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
209830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
209930a01277SRob Bradford
210030a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
210130a01277SRob Bradford
210230a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
210330a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
210430a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
210530a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
210630a01277SRob Bradford
210730a01277SRob Bradford### `--api-socket` supports file descriptor parameter
210830a01277SRob Bradford
210930a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
211030a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
211130a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
211230a01277SRob Bradford
211330a01277SRob Bradford### Bug fixes
211430a01277SRob Bradford
211530a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
211630a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
211730a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
211830a01277SRob Bradford  reprogram them (#1797,#1798)
211930a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
212030a01277SRob Bradford  exhaustion on the host) (#2517)
212130a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
212230a01277SRob Bradford  prevents snapshot & restore working (#2535)
212330a01277SRob Bradford
212430a01277SRob Bradford### Deprecations
212530a01277SRob Bradford
212630a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
212730a01277SRob Bradford
212830a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
212930a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
213030a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
213130a01277SRob Bradford
213230a01277SRob Bradford### Contributors
213330a01277SRob Bradford
213430a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
213530a01277SRob Bradford
213630a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
213730a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
213830a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
213930a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
214030a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
214130a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
214230a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
214330a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
214430a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
214530a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
214630a01277SRob Bradford* William Douglas <william.douglas@intel.com>
214730a01277SRob Bradford
214830a01277SRob Bradford# v0.14.1
214930a01277SRob Bradford
215030a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
215130a01277SRob Bradfordin this release:
215230a01277SRob Bradford
215330a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
215430a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
215530a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
215630a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
215730a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
215830a01277SRob Bradford
215940c63dcfSRob Bradford# v0.14.0
216040c63dcfSRob Bradford
216140c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
216240c63dcfSRob Bradford
216340c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
216440c63dcfSRob Bradford
216540c63dcfSRob Bradford### Structured event monitoring
216640c63dcfSRob Bradford
216740c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
216840c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
216940c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
217040c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
217140c63dcfSRob BradfordHypervisor API surface.
217240c63dcfSRob Bradford
217340c63dcfSRob Bradford### MSHV improvements
217440c63dcfSRob Bradford
217540c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
217640c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
217740c63dcfSRob Bradfordthe MSHV support.
217840c63dcfSRob Bradford
217940c63dcfSRob Bradford### Improved aarch64 platform
218040c63dcfSRob Bradford
218140c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
218240c63dcfSRob BradfordVM including an enhanced serial UART.
218340c63dcfSRob Bradford
218440c63dcfSRob Bradford### Updated hotplug documentation
218540c63dcfSRob Bradford
218640c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
218740c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
218840c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
218940c63dcfSRob Bradford
219040c63dcfSRob Bradford### PTY control for serial and `virtio-console`
219140c63dcfSRob Bradford
219240c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
219340c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
219440c63dcfSRob BradfordPTY subsystem.
219540c63dcfSRob Bradford
219640c63dcfSRob Bradford### Block device rate limiting
219740c63dcfSRob Bradford
219840c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
219940c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
220030a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
220140c63dcfSRob Bradford
220240c63dcfSRob Bradford
220340c63dcfSRob Bradford### Deprecations
220440c63dcfSRob Bradford
220540c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
220640c63dcfSRob Bradford
220740c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
220840c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
220940c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
221040c63dcfSRob Bradford
221140c63dcfSRob Bradford
221240c63dcfSRob Bradford### Contributors
221340c63dcfSRob Bradford
221440c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
221540c63dcfSRob Bradfordsome new faces.
221640c63dcfSRob Bradford
221742e9632cSJosh Soref* Bo Chen <chen.bo@intel.com>
221842e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com>
221942e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com>
222042e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
222142e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com>
222242e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com>
222342e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com>
222442e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com>
222542e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com>
222642e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com>
222742e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com>
222842e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com>
222942e9632cSJosh Soref* Zide Chen <zide.chen@intel.com>
223040c63dcfSRob Bradford
2231f58b6f84SRob Bradford# v0.13.0
2232f58b6f84SRob Bradford
2233f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
2234f58b6f84SRob Bradford
2235f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
2236f58b6f84SRob Bradford
2237f58b6f84SRob Bradford### Wider VFIO device support
2238f58b6f84SRob Bradford
2239f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
2240f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
2241f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
2242f58b6f84SRob Bradforddrivers.
2243f58b6f84SRob Bradford
224440c63dcfSRob Bradford### Improved huge page support
2245f58b6f84SRob Bradford
2246f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
2247f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
2248f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
2249f58b6f84SRob Bradforddesired size in their pool.
2250f58b6f84SRob Bradford
2251f58b6f84SRob Bradford### MACvTAP support
2252f58b6f84SRob Bradford
2253f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
2254f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
2255f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
2256f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
2257f58b6f84SRob Bradford
2258f58b6f84SRob Bradford### VHD disk image support
2259f58b6f84SRob Bradford
2260f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
2261f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
2262f58b6f84SRob Bradford
2263f58b6f84SRob Bradford### Improved Virtio device threading
2264f58b6f84SRob Bradford
2265f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
2266f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
2267f58b6f84SRob Bradfordpredictable name derived from the device id.
2268f58b6f84SRob Bradford
2269f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
2270f58b6f84SRob Bradford
2271f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
2272f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
2273f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
2274f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
2275f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
2276f58b6f84SRob Bradford
2277f58b6f84SRob Bradford### Contributors
2278f58b6f84SRob Bradford
2279f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2280f58b6f84SRob Bradfordsome new faces.
2281f58b6f84SRob Bradford
2282f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2283f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2284f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2285f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2286f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2287f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2288f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2289f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2290f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2291f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2292f58b6f84SRob Bradford
2293d42b5084SRob Bradford# v0.12.0
2294d42b5084SRob Bradford
2295d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
2296d42b5084SRob Bradford
2297d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2298d42b5084SRob Bradford
2299d42b5084SRob Bradford### ARM64 enhancements
2300d42b5084SRob Bradford
2301d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2302d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2303d42b5084SRob Bradford
2304d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2305d42b5084SRob Bradford
2306d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2307d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2308d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2309d42b5084SRob Bradfordremoved.
2310d42b5084SRob Bradford
2311d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2312d42b5084SRob Bradford
2313d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
231442e9632cSJosh Sorefinstead hosted in [its own
2315d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2316d42b5084SRob Bradford
2317d42b5084SRob Bradford### Enhanced "info" API
2318d42b5084SRob Bradford
2319d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2320d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2321d42b5084SRob Bradford
2322d42b5084SRob Bradford### Contributors
2323d42b5084SRob Bradford
2324d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2325d42b5084SRob Bradford
2326d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2327d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2328d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2329d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2330d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2331d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2332d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2333d42b5084SRob Bradford
23347dcd3affSRob Bradford# v0.11.0
23357dcd3affSRob Bradford
23367dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
23377dcd3affSRob Bradford
23387dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
23397dcd3affSRob Bradford
23407dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
23417dcd3affSRob Bradford
23427dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
23437dcd3affSRob Bradfordbe used for a significantly higher performance block device.
23447dcd3affSRob Bradford
23457dcd3affSRob Bradford### Windows Guest Support
23467dcd3affSRob Bradford
23477dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
23487dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
23497dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
23507dcd3affSRob Bradforddocumentation](docs/windows.md).
23517dcd3affSRob Bradford
23527dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
23537dcd3affSRob Bradford
23547dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
23557dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
23567dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
23577dcd3affSRob Bradford
2358d00eb4aaSRob Bradford### `virtio-mmio` Removal
23597dcd3affSRob Bradford
23607dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
23617dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
23627dcd3affSRob Bradfordreduce the testing burden of the project.
23637dcd3affSRob Bradford
23647dcd3affSRob Bradford### Snapshot/Restore support for ARM64
23657dcd3affSRob Bradford
23667dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
23677dcd3affSRob Bradfordimplemented.
23687dcd3affSRob Bradford
23697dcd3affSRob Bradford### Improved Linux Boot Time
23707dcd3affSRob Bradford
23717dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
23727dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
23737dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
23747dcd3affSRob Bradford
23757dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
23767dcd3affSRob Bradford
23777dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
23787dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
23797dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
23807dcd3affSRob Bradfordresources.
23817dcd3affSRob Bradford
23827dcd3affSRob Bradford### Default Log Level Changed
23837dcd3affSRob Bradford
23847dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
23857dcd3affSRob Bradfordeasier to see potential issues. New [logging
23867dcd3affSRob Bradforddocumentation](docs/logging) was also added.
23877dcd3affSRob Bradford
23887dcd3affSRob Bradford### New `--balloon` Parameter Added
23897dcd3affSRob Bradford
23907dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
23917dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
23927dcd3affSRob Bradfordcontrols without overloading `--memory`.
23937dcd3affSRob Bradford
23947dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
23957dcd3affSRob Bradford
23967dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
23977dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
23987dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
23997dcd3affSRob Bradford
24007dcd3affSRob Bradford### Notable Bug Fixes
24017dcd3affSRob Bradford
24027dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
24037dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
24047dcd3affSRob Bradford* CPU identification string is now exposed to the guest
24057dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
24067dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
24077dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
24087dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
24097dcd3affSRob Bradford  can be used (#1803)
24107dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
24117dcd3affSRob Bradford  correctly
24127dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
24137dcd3affSRob Bradford  correctly
24147dcd3affSRob Bradford
24157dcd3affSRob Bradford### Contributors
24167dcd3affSRob Bradford
24177dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
24187dcd3affSRob Bradford
24197dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
24207dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
24217dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
24227dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
24237dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
24247dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
24257dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
24267dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
24277dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
24287dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
24297dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
24307dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
24317dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
24327dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
24337dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
24347dcd3affSRob Bradford
24357dcd3affSRob Bradford
2436198bd551SRob Bradford# v0.10.0
2437198bd551SRob Bradford
2438198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2439198bd551SRob Bradford
2440198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2441198bd551SRob Bradford
2442198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2443198bd551SRob Bradford
2444198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2445198bd551SRob Bradford
2446198bd551SRob Bradford### Memory Zones
2447198bd551SRob Bradford
244842e9632cSJosh 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).
2449198bd551SRob Bradford
2450198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2451198bd551SRob Bradford
2452198bd551SRob 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`.
2453198bd551SRob Bradford
2454198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2455198bd551SRob Bradford
2456198bd551SRob 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.
2457198bd551SRob Bradford
2458198bd551SRob Bradford### Notable Bug Fixes
2459198bd551SRob Bradford
2460198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2461198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2462198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2463198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2464198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2465198bd551SRob Bradford
2466198bd551SRob Bradford### Contributors
2467198bd551SRob Bradford
2468198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2469198bd551SRob Bradford
2470198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2471198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2472198bd551SRob Bradford* Anatol Belski <ab@php.net>
2473198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2474198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2475198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2476198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2477198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2478198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2479198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2480198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2481198bd551SRob Bradford
2482d714cf81SRob Bradford# v0.9.0
2483d714cf81SRob Bradford
2484d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2485d714cf81SRob Bradford
2486d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2487d714cf81SRob Bradford
2488d714cf81SRob Bradford### `io_uring` Based Block Device Support
2489d714cf81SRob Bradford
2490d714cf81SRob 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.
2491d714cf81SRob Bradford
2492d714cf81SRob Bradford### Block and Network Device Statistics
2493d714cf81SRob Bradford
2494d714cf81SRob 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.
2495d714cf81SRob Bradford
2496d714cf81SRob Bradford### HTTP API Responses
2497d714cf81SRob Bradford
2498d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2499d714cf81SRob Bradford
2500d714cf81SRob Bradford### CPU Topology
2501d714cf81SRob Bradford
2502d714cf81SRob 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.
2503d714cf81SRob Bradford
2504d714cf81SRob Bradford### Release Build Optimization
2505d714cf81SRob Bradford
2506d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2507d714cf81SRob Bradford
2508d714cf81SRob Bradford### Hypervisor Abstraction
2509d714cf81SRob Bradford
2510d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2511d714cf81SRob Bradford
2512d714cf81SRob Bradford### Snapshot/Restore Improvements
2513d714cf81SRob Bradford
2514d714cf81SRob 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.
2515d714cf81SRob Bradford
2516d714cf81SRob Bradford### Virtio Memory Ballooning Support
2517d714cf81SRob Bradford
2518d714cf81SRob 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.
2519d714cf81SRob Bradford
2520d714cf81SRob Bradford### Enhancements to ARM64 Support
2521d714cf81SRob Bradford
2522d714cf81SRob 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.
2523d714cf81SRob Bradford
2524d714cf81SRob Bradford### Intel SGX Support
2525d714cf81SRob Bradford
2526d714cf81SRob 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).
2527d714cf81SRob Bradford
2528d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2529d714cf81SRob Bradford
2530d714cf81SRob 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.
2531d714cf81SRob Bradford
2532d714cf81SRob Bradford### Notable Bug Fixes
2533d714cf81SRob Bradford
2534d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2535d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2536d714cf81SRob 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).
2537d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2538d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2539d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2540d714cf81SRob Bradford
2541d714cf81SRob Bradford### Contributors
2542d714cf81SRob Bradford
2543d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2544d714cf81SRob Bradford
2545d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2546d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2547d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2548d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2549d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2550d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2551d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2552d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2553d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2554d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2555d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2556d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2557d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2558d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2559d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2560d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2561d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2562d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2563d714cf81SRob Bradford
2564d714cf81SRob Bradford
256552b83969SRob Bradford# v0.8.0
256652b83969SRob Bradford
256752b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
256852b83969SRob Bradford
256952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
257052b83969SRob Bradford
257152b83969SRob Bradford### Experimental Snapshot and Restore Support
257252b83969SRob Bradford
257352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
257452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
257552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
257652b83969SRob Bradfordoriginal VM at the point it was paused.
257752b83969SRob Bradford
257852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
257952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
258052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
258152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
258252b83969SRob Bradford(#1176).
258352b83969SRob Bradford
258452b83969SRob Bradford### Experimental ARM64 Support
258552b83969SRob Bradford
258652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
258752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
258852b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
258952b83969SRob Bradford
259052b83969SRob Bradford### Support for Using 5-level Paging in Guests
259152b83969SRob Bradford
259252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
259352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
259452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
259552b83969SRob Bradfordwork due to current limitations in the PVH boot process.
259652b83969SRob Bradford
259752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
259852b83969SRob Bradford
259952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
260052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
260152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
260252b83969SRob Bradfordthe guest must service.
260352b83969SRob Bradford
260452b83969SRob Bradford### `vhost_user_fs` Improvements
260552b83969SRob Bradford
260652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
260752b83969SRob Bradford
260852b83969SRob Bradford
260952b83969SRob Bradford### Notable Bug Fixes
261052b83969SRob Bradford
261152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
261252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
261352b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
261452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
261552b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
261652b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
261752b83969SRob Bradford  #1216).
261852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
261952b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
262052b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
262152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
262252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
262352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
262452b83969SRob Bradford  (#751).
262552b83969SRob Bradford
262652b83969SRob Bradford### Command Line and API Changes
262752b83969SRob Bradford
262852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
262952b83969SRob Bradford
263052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
263152b83969SRob Bradford  rather than `sock` in some cases.
263252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
263352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
263452b83969SRob Bradford  offered for negotiation.
263552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
263652b83969SRob Bradford  address for the `tap` device on the host.
263752b83969SRob Bradford
263852b83969SRob Bradford### Contributors
263952b83969SRob Bradford
264052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
264152b83969SRob Bradford
264252b83969SRob Bradford* Anatol Belski <ab@php.net>
264352b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
264452b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
264552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
264652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
264752b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
264852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
264952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
265052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
265152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
265252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
265352b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
265452b83969SRob Bradford
265596be8229SRob Bradford# v0.7.0
265696be8229SRob Bradford
265796be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
265896be8229SRob Bradford
265996be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
266096be8229SRob Bradford
266196be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
266296be8229SRob Bradford
266396be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
266496be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
266596be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
26665c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
266796be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
266896be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
266996be8229SRob Bradforddevices to ease their removal.
267096be8229SRob Bradford
267196be8229SRob Bradford### Alternative `libc` Support
267296be8229SRob Bradford
267396be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
267496be8229SRob Bradfordcontains a static binary compiled using that toolchain.
267596be8229SRob Bradford
267696be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
267796be8229SRob Bradford
267896be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
267996be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
268096be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
268196be8229SRob Bradfordis passed when the devices are created.
268296be8229SRob Bradford
268396be8229SRob Bradford### Initial RamFS Support
268496be8229SRob Bradford
268596be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
268696be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
268796be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
268896be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
268996be8229SRob Bradfordminimal image.
269096be8229SRob Bradford
269196be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
269296be8229SRob Bradford
269396be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
269496be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
269596be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
269696be8229SRob Bradfordrequires kernel patches to be able to support it.
269796be8229SRob Bradford
269896be8229SRob Bradford### `Seccomp` Sandboxing
269996be8229SRob Bradford
270096be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
270196be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
270296be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
270396be8229SRob Bradford
270496be8229SRob Bradford### Updated Distribution Support
270596be8229SRob Bradford
270696be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
270796be8229SRob Bradforddistributions and is part of our regular testing programme.
270896be8229SRob Bradford
270996be8229SRob Bradford### Command Line and API Changes
271096be8229SRob Bradford
271196be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
271296be8229SRob Bradford
271396be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
271496be8229SRob Bradford  If no name is specified the VMM chooses one.
271596be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
271696be8229SRob Bradford  memory instead of providing a path.
271796be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
271896be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
271996be8229SRob Bradford  option and replaced it with a single optional field.
272096be8229SRob Bradford* There is enhanced validation of the command line and API provided
272196be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
272296be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
272396be8229SRob Bradford  device.
272496be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
272596be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
272696be8229SRob Bradford  has appropriate new HTTP endpoints too.
272796be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
272896be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
272996be8229SRob Bradford  to provide the equivalent of a read-only file.
273096be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
273196be8229SRob Bradford  with those used by `--disk`.
273296be8229SRob Bradford
273396be8229SRob Bradford### Contributors
273496be8229SRob Bradford
273596be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
273696be8229SRob Bradford
273796be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
273896be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
273996be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
274096be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
274196be8229SRob Bradford* Dean Sheather <dean@coder.com>
274296be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
274396be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
274496be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
274596be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
274696be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
274796be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
274896be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
274996be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
275096be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
275196be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
275296be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
275396be8229SRob Bradford
275403cb26ccSSamuel Ortiz# v0.6.0
275503cb26ccSSamuel Ortiz
275603cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
275703cb26ccSSamuel Ortiz
275803cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
275903cb26ccSSamuel Ortiz
276003cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
276103cb26ccSSamuel Ortiz
276203cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
276303cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
276403cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
276503cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
276603cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
276703cb26ccSSamuel Ortiz
276803cb26ccSSamuel Ortiz### Shared Filesystem Improvements
276903cb26ccSSamuel Ortiz
277003cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
277103cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
277203cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
277303cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
277403cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
277503cb26ccSSamuel Ortiz
277603cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
277703cb26ccSSamuel Ortiz
277803cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
277903cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
278003cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
278103cb26ccSSamuel Ortizinto their own, separate processes.
27825c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
278303cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
278403cb26ccSSamuel Ortiz
278503cb26ccSSamuel Ortiz### Command Line Interface
278603cb26ccSSamuel Ortiz
278703cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
278837a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
278937a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
279037a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
279137a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
279237a2c13aSAlyssa Rossis created with each build and available e.g. at
279303cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
279403cb26ccSSamuel Ortiz
279503cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
279603cb26ccSSamuel Ortizcommands.
279703cb26ccSSamuel Ortiz
279803cb26ccSSamuel Ortiz### PVH Boot
279903cb26ccSSamuel Ortiz
280003cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
280103cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
280203cb26ccSSamuel Ortiz
280303cb26ccSSamuel Ortiz### Contributors
280403cb26ccSSamuel Ortiz
280503cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
280603cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
280703cb26ccSSamuel Ortiz
280803cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
280903cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
281003cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
281103cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
281203cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
281303cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
281403cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
281503cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
281603cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
281703cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
281803cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
281903cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
282003cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
282103cb26ccSSamuel Ortiz
282294f2fc33SRob Bradford# v0.5.1
282394f2fc33SRob Bradford
282494f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
282594f2fc33SRob Bradford
282694f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
282794f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
282894f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
282994f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
283094f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
28318e8a7b6dSSamuel Ortiz
28322f395e60SSamuel Ortiz# v0.5.0
28332f395e60SSamuel Ortiz
28342f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
28352f395e60SSamuel Ortiz
28362f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
28372f395e60SSamuel Ortiz
28382f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
28392f395e60SSamuel Ortiz
28402f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
28412f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
28422f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
28432f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
28442f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
28452f395e60SSamuel Ortiz
28462f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
28472f395e60SSamuel Ortiz
28482f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
28492f395e60SSamuel Ortiz
28502f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
28512f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
28522f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
28532f395e60SSamuel Ortiz
28542f395e60SSamuel Ortiz### New Interrupt Management Framework
28552f395e60SSamuel Ortiz
28562f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
28572f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
28582f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
28592f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
28602f395e60SSamuel Ortizvirtio ones.
28612f395e60SSamuel Ortiz
28622f395e60SSamuel Ortiz### Development Tools
28632f395e60SSamuel Ortiz
28642f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
28652f395e60SSamuel Ortizbuild, development and testing tools.
28662f395e60SSamuel OrtizSomehow similar to the excellent
28672f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
286837a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
28692f395e60SSamuel Ortiz
28702f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
28712f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
28722f395e60SSamuel Ortiz
28732f395e60SSamuel Ortiz### Kata Containers Integration
28742f395e60SSamuel Ortiz
28752f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
28762f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
28772f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
28782f395e60SSamuel Ortizintegrated into the project's CI.
28792f395e60SSamuel Ortiz
28802f395e60SSamuel Ortiz### Contributors
28812f395e60SSamuel Ortiz
28822f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
28832f395e60SSamuel Ortiz
28842f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
28852f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
28862f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
28872f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
28882f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
28892f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
28902f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
28912f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
28922f395e60SSamuel Ortiz
2893cec884e8SSamuel Ortiz# v0.4.0
2894cec884e8SSamuel Ortiz
2895cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2896cec884e8SSamuel Ortiz
2897cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2898cec884e8SSamuel Ortiz
2899cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2900cec884e8SSamuel Ortiz
2901e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2902cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2903cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2904cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
290537a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2906cec884e8SSamuel Ortiz
2907cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2908cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2909cec884e8SSamuel Ortiz
2910cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2911cec884e8SSamuel Ortiz
2912cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2913cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2914cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2915cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2916cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2917cec884e8SSamuel Ortiz
2918cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2919cec884e8SSamuel Ortiz
2920cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2921cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2922cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2923cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2924cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2925cec884e8SSamuel Ortiz
2926cec884e8SSamuel Ortiz### Guest pause and resume
2927cec884e8SSamuel Ortiz
29285c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2929cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2930cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2931cec884e8SSamuel Ortizand resume capabilities.
2932cec884e8SSamuel Ortiz
2933cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2934cec884e8SSamuel Ortiz
2935cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2936cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2937cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2938cec884e8SSamuel Ortizdefault.
2939cec884e8SSamuel Ortiz
2940cec884e8SSamuel Ortiz### PCI BAR reprogramming
2941cec884e8SSamuel Ortiz
2942cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2943cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2944cec884e8SSamuel Ortizreprogramming.
2945cec884e8SSamuel Ortiz
2946cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2947cec884e8SSamuel Ortiz
2948cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2949cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2950cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2951cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2952cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2953cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2954cec884e8SSamuel Ortiztemporarily fork.
2955cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2956cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2957cec884e8SSamuel Ortiz
2958cec884e8SSamuel Ortiz### Contributors
2959cec884e8SSamuel Ortiz
2960cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2961cec884e8SSamuel Ortiz
2962cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2963cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2964cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2965cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2966cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2967cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2968cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2969cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2970cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2971cec884e8SSamuel Ortiz
29728e8a7b6dSSamuel Ortiz# v0.3.0
29738e8a7b6dSSamuel Ortiz
29748ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
29758e8a7b6dSSamuel Ortiz
29768e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
29778e8a7b6dSSamuel Ortiz
29788e8a7b6dSSamuel Ortiz### Block device offloading
29798e8a7b6dSSamuel Ortiz
29808e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
29818e8a7b6dSSamuel Ortizand we added support for
29828e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
29838e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
29848e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
29858e8a7b6dSSamuel Ortizbackend.
29868e8a7b6dSSamuel Ortiz
29878e8a7b6dSSamuel Ortiz### Network device backend
29888e8a7b6dSSamuel Ortiz
29898e8a7b6dSSamuel OrtizThe previous release provided support for
29908e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
29918e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
29928e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
29938e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
29948e8a7b6dSSamuel Ortiz
29958e8a7b6dSSamuel Ortiz### Virtual sockets
29968e8a7b6dSSamuel Ortiz
29978e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
29988e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
29998e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
30008e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
30018e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
30028e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
30038e8a7b6dSSamuel Ortiz
30048e8a7b6dSSamuel Ortiz### HTTP based API
30058e8a7b6dSSamuel Ortiz
30068e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
30078e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
30088e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
30098e8a7b6dSSamuel Ortiznext release cycle.
30108e8a7b6dSSamuel Ortiz
30118e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
30128e8a7b6dSSamuel Ortiz
30138e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
30148e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
30158e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
30168e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
30178e8a7b6dSSamuel Ortiz
30188e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
30198e8a7b6dSSamuel Ortiz
30208e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
302137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
302237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
30238e8a7b6dSSamuel Ortiz
30248e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
30258e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
30268e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
30278e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
30288e8a7b6dSSamuel Ortizsetting.
30298e8a7b6dSSamuel Ortiz
30308e8a7b6dSSamuel Ortiz### Ubuntu 19.10
30318e8a7b6dSSamuel Ortiz
30328ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
30338e8a7b6dSSamuel Ortizwe can now support the latest
30348e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
30358e8a7b6dSSamuel Ortiz
30368e8a7b6dSSamuel Ortiz### Large memory guests
30378e8a7b6dSSamuel Ortiz
30388e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
30398e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
30407688e6e2SSamuel Ortiz
3041d784ac29SSamuel Ortiz# v0.2.0
3042d784ac29SSamuel Ortiz
30438ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
3044d784ac29SSamuel Ortiz
3045d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
3046d784ac29SSamuel Ortiz
3047d784ac29SSamuel Ortiz### Network device offloading
3048d784ac29SSamuel Ortiz
3049d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
3050d784ac29SSamuel Ortizprocesses, we added support for
3051d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
3052d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
3053d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
3054d784ac29SSamuel Ortiz
3055d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
3056d784ac29SSamuel Ortiz
3057d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
3058d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
3059d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
3060d784ac29SSamuel Ortizcleanly reboot and shutdown.
3061d784ac29SSamuel Ortiz
3062d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
3063d784ac29SSamuel Ortizenabled by default.
3064d784ac29SSamuel Ortiz
3065d784ac29SSamuel Ortiz### Debug I/O port
3066d784ac29SSamuel Ortiz
3067d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
3068d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
3069d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
3070d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
307137a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
307237a2c13aSAlyssa Rossdetails.
3073d784ac29SSamuel Ortiz
3074d784ac29SSamuel Ortiz### Improved direct device assignment
3075d784ac29SSamuel Ortiz
3076d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
3077d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
3078d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
3079d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
3080d784ac29SSamuel Ortizdirectly assigned devices.
3081d784ac29SSamuel Ortiz
3082d784ac29SSamuel Ortiz### Improved shared filesystem
3083d784ac29SSamuel Ortiz
3084d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
3085d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
3086d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
3087d784ac29SSamuel Ortizmemory footprint.
3088d784ac29SSamuel Ortiz
3089d784ac29SSamuel Ortiz### Ubuntu bionic based CI
3090d784ac29SSamuel Ortiz
30918ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3092d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
3093d784ac29SSamuel Ortizour CI pipeline.
3094d784ac29SSamuel Ortiz
309593b77530SSamuel Ortiz# v0.1.0
309693b77530SSamuel Ortiz
30978ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
309893b77530SSamuel Ortiz
309993b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
310093b77530SSamuel Ortiz
310193b77530SSamuel Ortiz### Shared filesystem
310293b77530SSamuel Ortiz
310393b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
310493b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
310593b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
310693b77530SSamuel Ortiz
310737a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
310837a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
310993b77530SSamuel Ortiz
311093b77530SSamuel Ortiz### Initial direct device assignment support
311193b77530SSamuel Ortiz
311293b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
311393b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
311493b77530SSamuel Ortizphysical devices into its guest.
311593b77530SSamuel Ortiz
311637a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
311737a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
311893b77530SSamuel Ortiz
311993b77530SSamuel Ortiz### Userspace IOAPIC
312093b77530SSamuel Ortiz
312193b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
312293b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
312393b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
312493b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
312593b77530SSamuel Ortiz
312693b77530SSamuel Ortiz### Virtual persistent memory
312793b77530SSamuel Ortiz
312893b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
312993b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
313093b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
313193b77530SSamuel Ortiz
313293b77530SSamuel Ortiz### Linux kernel bzImage
313393b77530SSamuel Ortiz
313493b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
313593b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
313693b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
313793b77530SSamuel Ortizdistribution kernel image.
313893b77530SSamuel Ortiz
313993b77530SSamuel Ortiz### Console over virtio
314093b77530SSamuel Ortiz
314193b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
314293b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
314393b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
314493b77530SSamuel Ortizimplementation.
314593b77530SSamuel Ortiz
314693b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
314793b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
314893b77530SSamuel Ortiz`--serial tty --console off` from the command line.
314993b77530SSamuel Ortiz
315093b77530SSamuel Ortiz### Unit testing
315193b77530SSamuel Ortiz
315293b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
315393b77530SSamuel Ortiz
315493b77530SSamuel Ortiz### Integration tests parallelization
315593b77530SSamuel Ortiz
315693b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
315793b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
3158