xref: /cloud-hypervisor/release-notes.md (revision f5899d15f6cc73ca1bcfcbb1e6ccaf6084d63788)
1*f5899d15SBo Chen- [v36.0](#v360)
2*f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
3*f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
4*f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
5*f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
6*f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
7*f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
8*f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
9*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
10*f5899d15SBo Chen    - [Contributors](#contributors)
11339912a5SBo Chen- [v35.0](#v350)
12339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
13339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
14339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
15*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
16*f5899d15SBo Chen    - [Contributors](#contributors-1)
17487a43cdSRob Bradford- [v34.0](#v340)
18487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
19487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
20487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
21487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
22*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
23*f5899d15SBo Chen    - [Contributors](#contributors-2)
24487a43cdSRob Bradford- [v33.0](#v330)
25487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
26487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
27*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-3)
28*f5899d15SBo Chen    - [Contributors](#contributors-3)
2942ca292dSRob Bradford- [v32.0](#v320)
3042ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
3142ca292dSRob Bradford    - [API Changes](#api-changes)
32*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
33*f5899d15SBo Chen    - [Contributors](#contributors-4)
3442ca292dSRob Bradford- [v31.1](#v311)
35f3522e85SMichael Zhao- [v31.0](#v310)
36f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
37f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
38f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
39f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
40*f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
41*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
42*f5899d15SBo Chen    - [Contributors](#contributors-5)
43ece0e6faSBo Chen- [v30.0](#v300)
44ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
45ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
46ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
47*f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
48*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
49*f5899d15SBo Chen    - [Contributors](#contributors-6)
50ece0e6faSBo Chen- [v28.2](#v282)
5122cf8c97SRob Bradford- [v29.0](#v290)
5222cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
5322cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
5422cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
5522cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
5622cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
5722cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
5822cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
59*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
6022cf8c97SRob Bradford    - [Removals](#removals)
6122cf8c97SRob Bradford    - [Deprecations](#deprecations)
62*f5899d15SBo Chen    - [Contributors](#contributors-7)
6322cf8c97SRob Bradford- [v28.1](#v281)
6466460765SRob Bradford- [v28.0](#v280)
6566460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
6666460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
6766460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
6866460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
6966460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
70*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
7122cf8c97SRob Bradford    - [Removals](#removals-1)
72*f5899d15SBo Chen    - [Contributors](#contributors-8)
732ba6a9bfSRob Bradford- [v27.0](#v270)
742ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
752ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
762ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
772ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
782ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
792ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
802ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
81*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-9)
82f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
83*f5899d15SBo Chen    - [Contributors](#contributors-9)
84f3522e85SMichael Zhao- [v26.0](#v260)
85f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
86f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
87*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-10)
8822cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
8966460765SRob Bradford    - [Removals](#removals-2)
90*f5899d15SBo Chen    - [Contributors](#contributors-10)
9122cf8c97SRob Bradford- [v25.0](#v250)
9222cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
9322cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
94*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-11)
9522cf8c97SRob Bradford    - [Removals](#removals-3)
96*f5899d15SBo Chen    - [Contributors](#contributors-11)
970150de55SSebastien Boeuf- [v24.0](#v240)
980150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
990150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1000150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1010150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
102*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-12)
1030150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
10422cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1050150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
106*f5899d15SBo Chen    - [Contributors](#contributors-12)
1070150de55SSebastien Boeuf- [v23.1](#v231)
1080c9c56f5SRob Bradford- [v23.0](#v230)
1090c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1100c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1110c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1120c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
113*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-13)
11422cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
115*f5899d15SBo Chen    - [Contributors](#contributors-13)
1160c9c56f5SRob Bradford- [v22.1](#v221)
1176aa10938SRob Bradford- [v22.0](#v220)
1186aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1196aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1206aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1216aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1226aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1236aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1240c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1256aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
126*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-14)
127*f5899d15SBo Chen    - [Contributors](#contributors-14)
12895ca7997SRob Bradford- [v21.0](#v210)
12995ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
13095ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
131*f5899d15SBo Chen    - [Notable Bug fixes](#notable-bug-fixes-15)
132*f5899d15SBo Chen    - [Contributors](#contributors-15)
13395ca7997SRob Bradford- [v20.2](#v202)
13495ca7997SRob Bradford- [v20.1](#v201)
1357fc0776aSSebastien Boeuf- [v20.0](#v200)
1367fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1377fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1387fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1397fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1407fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
141*f5899d15SBo Chen    - [Notable bug fixes](#notable-bug-fixes-16)
142*f5899d15SBo Chen    - [Contributors](#contributors-16)
143d00eb4aaSRob Bradford- [v19.0](#v190)
144d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
145d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
146d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
147d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
148d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
149d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
150*f5899d15SBo Chen    - [Notable bug fixes](#notable-bug-fixes-17)
151*f5899d15SBo Chen    - [Contributors](#contributors-17)
1522c4f8d22SRob Bradford- [v18.0](#v180)
1532c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1542c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1552c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1562c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1572c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1582c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1592c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1602c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
161*f5899d15SBo Chen    - [Notable bug fixes](#notable-bug-fixes-18)
162*f5899d15SBo Chen    - [Contributors](#contributors-18)
163e6db5999SRob Bradford- [v17.0](#v170)
164e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
165e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
166e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
167e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
168e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
169*f5899d15SBo Chen    - [Notable bug fixes](#notable-bug-fixes-19)
170*f5899d15SBo Chen    - [Contributors](#contributors-19)
1715ed8e01fSRob Bradford- [v16.0](#v160)
1725ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1735ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1745ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
175*f5899d15SBo Chen    - [Notable bug fixes](#notable-bug-fixes-20)
1765ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
177*f5899d15SBo Chen    - [Contributors](#contributors-20)
17830a01277SRob Bradford- [v15.0](#v150)
17930a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
18030a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
18130a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
182f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
18330a01277SRob Bradford    - [Bug fixes](#bug-fixes)
18422cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
185*f5899d15SBo Chen    - [Contributors](#contributors-21)
18630a01277SRob Bradford- [v0.14.1](#v0141)
18740c63dcfSRob Bradford- [v0.14.0](#v0140)
18840c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
18940c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
19040c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
19140c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
19240c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
19340c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
19422cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
195*f5899d15SBo Chen    - [Contributors](#contributors-22)
196f58b6f84SRob Bradford- [v0.13.0](#v0130)
197f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
19840c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
199f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
200f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
201f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
202f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
203*f5899d15SBo Chen    - [Contributors](#contributors-23)
204d42b5084SRob Bradford- [v0.12.0](#v0120)
205d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
206d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
207d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
208d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
209*f5899d15SBo Chen    - [Contributors](#contributors-24)
2107dcd3affSRob Bradford- [v0.11.0](#v0110)
2117dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2127dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2137dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
214d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2157dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2167dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2177dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2187dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
219f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2207dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
221*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-21)
222*f5899d15SBo Chen    - [Contributors](#contributors-25)
223198bd551SRob Bradford- [v0.10.0](#v0100)
224198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
225198bd551SRob Bradford    - [Memory Zones](#memory-zones)
226198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
227198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
228*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-22)
229*f5899d15SBo Chen    - [Contributors](#contributors-26)
230d714cf81SRob Bradford- [v0.9.0](#v090)
231d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
232d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
233d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
234d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
235d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
236d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
237d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
238d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
239d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
240d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
241198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
242*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-23)
243*f5899d15SBo Chen    - [Contributors](#contributors-27)
244d714cf81SRob Bradford- [v0.8.0](#v080)
245d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
246d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
247d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
248d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
249d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
250*f5899d15SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-24)
251d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
252*f5899d15SBo Chen    - [Contributors](#contributors-28)
25396be8229SRob Bradford- [v0.7.0](#v070)
25496be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
25596be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
25696be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
25796be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
25896be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
25996be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
26096be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
26152b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
262*f5899d15SBo Chen    - [Contributors](#contributors-29)
26303cb26ccSSamuel Ortiz- [v0.6.0](#v060)
26403cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
26503cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
26603cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
26703cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
26803cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
269*f5899d15SBo Chen    - [Contributors](#contributors-30)
27094f2fc33SRob Bradford- [v0.5.1](#v051)
2712f395e60SSamuel Ortiz- [v0.5.0](#v050)
27294f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
27394f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
27494f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
27594f2fc33SRob Bradford    - [Development Tools](#development-tools)
27694f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
277*f5899d15SBo Chen    - [Contributors](#contributors-31)
278cec884e8SSamuel Ortiz- [v0.4.0](#v040)
27994f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
28094f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
28194f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
28294f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
28394f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
28494f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
28594f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
286*f5899d15SBo Chen    - [Contributors](#contributors-32)
2878e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
28894f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
28994f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
29094f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
29194f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
29294f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
29394f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
29494f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
29594f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2967688e6e2SSamuel Ortiz- [v0.2.0](#v020)
29794f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
29894f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
29994f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
30094f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
30194f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
30294f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3037688e6e2SSamuel Ortiz- [v0.1.0](#v010)
30494f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
30594f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
30694f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
30794f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
30894f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
30994f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
31094f2fc33SRob Bradford    - [Unit testing](#unit-testing)
31194f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
31294f2fc33SRob Bradford
313*f5899d15SBo Chen# v36.0
314*f5899d15SBo Chen
315*f5899d15SBo ChenThis release has been tracked in our [roadmap
316*f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
317*f5899d15SBo Chenv36.0. The following user visible changes have been made:
318*f5899d15SBo Chen
319*f5899d15SBo Chen### Command Line Changes
320*f5899d15SBo Chen
321*f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
322*f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
323*f5899d15SBo Chenchanges:
324*f5899d15SBo Chen
325*f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
326*f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
327*f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
328*f5899d15SBo Chen
329*f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
330*f5899d15SBo Chen
331*f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
332*f5899d15SBo Chen
333*f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
334*f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
335*f5899d15SBo Chen(`--version -v`).
336*f5899d15SBo Chen
337*f5899d15SBo Chen### NUMA Support for PCI segments
338*f5899d15SBo Chen
339*f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
340*f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
341*f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
342*f5899d15SBo Chen
343*f5899d15SBo Chen### CPU Topology Support on AMD Platforms
344*f5899d15SBo Chen
345*f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
346*f5899d15SBo Chen
347*f5899d15SBo Chen### Unix Socket Backend for Serial Port
348*f5899d15SBo Chen
349*f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
350*f5899d15SBo Chenusers to access the serial port using a Unix socket.
351*f5899d15SBo Chen
352*f5899d15SBo Chen### AIO Backend for Block Devices
353*f5899d15SBo Chen
354*f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
355*f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
356*f5899d15SBo Chenhost Operating System.
357*f5899d15SBo Chen
358*f5899d15SBo Chen### Documentation Improvements
359*f5899d15SBo Chen
360*f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
361*f5899d15SBo Chen* Various typo fixes
362*f5899d15SBo Chen
363*f5899d15SBo Chen### Notable Bug Fixes
364*f5899d15SBo Chen
365*f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
366*f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
367*f5899d15SBo Chen  enabled (#5834)
368*f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
369*f5899d15SBo Chen
370*f5899d15SBo Chen### Contributors
371*f5899d15SBo Chen
372*f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
373*f5899d15SBo Chen
374*f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
375*f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
376*f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
377*f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
378*f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
379*f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
380*f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
381*f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
382*f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
383*f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
384*f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
385*f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
386*f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
387*f5899d15SBo Chen
388339912a5SBo Chen# v35.0
389339912a5SBo Chen
390339912a5SBo ChenThis release has been tracked in our [roadmap
391339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
392339912a5SBo Chenv35.0. The following user visible changes have been made:
393339912a5SBo Chen
394339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
395339912a5SBo Chen
396339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
397339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
398339912a5SBo Chennow support both situations.
399339912a5SBo Chen
400339912a5SBo Chen### User Specified Serial Number for `virtio-block`
401339912a5SBo Chen
402339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
403339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
404339912a5SBo Chen
405339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
406339912a5SBo Chen
407339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
408339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
409339912a5SBo Chen
410339912a5SBo Chen### Notable Bug Fixes
411339912a5SBo Chen
412339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
413339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
414339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
415339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
416339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
417339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
418339912a5SBo Chen  (#5712, #5750, #5762, #5763)
419339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
420339912a5SBo Chen
421339912a5SBo Chen### Contributors
422339912a5SBo Chen
423339912a5SBo ChenMany thanks to everyone who has contributed to our release:
424339912a5SBo Chen
425339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
426339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
427339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
428339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
429339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
430339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
431339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
432339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
433339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
434339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
435339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
436339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
437339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
438339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
439339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
440339912a5SBo Chen
441487a43cdSRob Bradford# v34.0
442487a43cdSRob Bradford
443487a43cdSRob BradfordThis release has been tracked in our [roadmap
444487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
445487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
446487a43cdSRob Bradford
447487a43cdSRob Bradford### Paravirtualised Panic Device Support
448487a43cdSRob Bradford
449487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
450487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
451487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
452487a43cdSRob Bradford
453487a43cdSRob Bradford### Improvements to VM Core Dump
454487a43cdSRob Bradford
455487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
456487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
457487a43cdSRob Bradford
458487a43cdSRob Bradford### QCOW2 Support for Backing Files
459487a43cdSRob Bradford
460487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
461487a43cdSRob Bradfordbacking files. (#5573)
462487a43cdSRob Bradford
463487a43cdSRob Bradford### Minimum Host Kernel Bump
464487a43cdSRob Bradford
465487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
466487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
467487a43cdSRob Bradford
468487a43cdSRob Bradford### Notable Bug Fixes
469487a43cdSRob Bradford
470487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
471487a43cdSRob Bradford  carries out this job with KVM) (#5561).
472487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
473487a43cdSRob Bradford  than MSI-X (#5658).
474487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
475487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
476487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
477487a43cdSRob Bradford  when all vCPUs are paused (#5611).
478487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
479487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
480487a43cdSRob Bradford
481487a43cdSRob Bradford### Contributors
482487a43cdSRob Bradford
483487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
484487a43cdSRob Bradford
485487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
486487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
487487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
488487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
489487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
490487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
491487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
492487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
493487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
494487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
495487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
496487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
497487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
498487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
499487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
500487a43cdSRob Bradford
5016e0e6323SBo Chen# v33.0
5026e0e6323SBo Chen
5036e0e6323SBo ChenThis release has been tracked in our [roadmap
5046e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5056e0e6323SBo Chenv33.0. The following user visible changes have been made:
5066e0e6323SBo Chen
5076e0e6323SBo Chen### D-Bus based API
5086e0e6323SBo Chen
5096e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
5106e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
5116e0e6323SBo Chenfound in the [API documentation](docs/api.md).
5126e0e6323SBo Chen
5136e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
5146e0e6323SBo Chen
5156e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
5166e0e6323SBo Chenguest on AArch64.
5176e0e6323SBo Chen
5186e0e6323SBo Chen### Notable Bug Fixes
5196e0e6323SBo Chen
5206e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
5216e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
5226e0e6323SBo Chen* Fix TDX initialization (#5454)
5236e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
5246e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
5256e0e6323SBo Chen  (#5506, #5524)
5266e0e6323SBo Chen* Populate APIC ID properly (#5512)
5276e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
5286e0e6323SBo Chen
5296e0e6323SBo Chen### Contributors
5306e0e6323SBo Chen
5316e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
5326e0e6323SBo Chen
5336e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
5346e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
5356e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
5366e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
5376e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
5386e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
5396e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
5406e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
5416e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
5426e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
5436e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
5446e0e6323SBo Chen
54542ca292dSRob Bradford# v32.0
54642ca292dSRob Bradford
54742ca292dSRob BradfordThis release has been tracked in our [roadmap
54842ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
54942ca292dSRob Bradfordv32.0. The following user visible changes have been made:
55042ca292dSRob Bradford
55142ca292dSRob Bradford### Increased PCI Segment Limit
55242ca292dSRob Bradford
55342ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
55442ca292dSRob Bradford
55542ca292dSRob Bradford### API Changes
55642ca292dSRob Bradford
55742ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
55842ca292dSRob Bradford  (#5348)
55942ca292dSRob Bradford
56042ca292dSRob Bradford### Notable Bug Fixes
56142ca292dSRob Bradford
56242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
56342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
56442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
56542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
56642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
56742ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
56842ca292dSRob Bradford* Fixes for TTY reset (#5414)
56942ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
57042ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
57142ca292dSRob Bradford
57242ca292dSRob Bradford### Contributors
57342ca292dSRob Bradford
57442ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
57542ca292dSRob Bradford
57642ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
57742ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
57842ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
57942ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
58042ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
58142ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
58242ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
58342ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
58442ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
58542ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
58642ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
58742ca292dSRob Bradford
58842ca292dSRob Bradford# v31.1
58942ca292dSRob Bradford
59042ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
59142ca292dSRob Bradford
59242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
59342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
59442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
59542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
59642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
59742ca292dSRob Bradford
598f3522e85SMichael Zhao# v31.0
599f3522e85SMichael Zhao
600f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
601f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
602f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
603f3522e85SMichael Zhao
604f3522e85SMichael Zhao### Update to Latest `acpi_tables`
605f3522e85SMichael Zhao
606f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
607f3522e85SMichael ZhaoThere has been significant API changes in the crate.
608f3522e85SMichael Zhao
609f3522e85SMichael Zhao### Update Reference Kernel to 6.2
610f3522e85SMichael Zhao
611f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
612f3522e85SMichael Zhao
613f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
614f3522e85SMichael Zhao
615f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
616f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
617f3522e85SMichael Zhao
618f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
619f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
620f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
621f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
622f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
623f3522e85SMichael Zhao
624f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
625f3522e85SMichael Zhao
626f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
627f3522e85SMichael Zhao
628f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
629f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
630f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
631f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
632f3522e85SMichael Zhao
633f3522e85SMichael Zhao### Documentation Improvements
634f3522e85SMichael Zhao
635f3522e85SMichael Zhao* Various improvements in API document
636f3522e85SMichael Zhao* Improvements in Doc comments
637f3522e85SMichael Zhao* Updated Slack channel information in README
638f3522e85SMichael Zhao
639f3522e85SMichael Zhao### Notable Bug Fixes
640f3522e85SMichael Zhao
641f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
642f3522e85SMichael Zhao  client.
643f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
644f3522e85SMichael Zhao  endpoint.
645f3522e85SMichael Zhao
646f3522e85SMichael Zhao### Contributors
647f3522e85SMichael Zhao
648f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
649f3522e85SMichael Zhao
650f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
651f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
652f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
653f3522e85SMichael Zhao* Dom <peng6662001@163.com>
654f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
655f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
656f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
657f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
658f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
659f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
660f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
661f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
662f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
663f3522e85SMichael Zhao
664ece0e6faSBo Chen# v30.0
665ece0e6faSBo Chen
666ece0e6faSBo ChenThis release has been tracked in our [roadmap
667ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
668ece0e6faSBo Chenv30.0. The following user visible changes have been made:
669ece0e6faSBo Chen
670ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
671ece0e6faSBo Chen
672ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
673ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
674ece0e6faSBo Chenwere several syntax changes:
675ece0e6faSBo Chen
676ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
677ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
678ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
679ece0e6faSBo Chen
680ece0e6faSBo Chen### Basic vfio-user Server Support
681ece0e6faSBo Chen
682ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
683ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
684ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
685ece0e6faSBo Chen`rust-vmm` organization.
686ece0e6faSBo Chen
687ece0e6faSBo Chen### Heap Profiling Support
688ece0e6faSBo Chen
689ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
690ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
691ece0e6faSBo Chen
692ece0e6faSBo Chen### Documentation Improvements
693ece0e6faSBo Chen
694ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
695ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
696ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
697ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
698ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
699ece0e6faSBo Chenexisting 'profiling' documentation.
700ece0e6faSBo Chen
701ece0e6faSBo Chen### Notable Bug Fixes
702ece0e6faSBo Chen
703ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
704ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
705ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
706ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
707ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
708ece0e6faSBo Chen
709ece0e6faSBo Chen### Contributors
710ece0e6faSBo Chen
711ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
712ece0e6faSBo Chen
713ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
714ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
715ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
716ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
717ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
718ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
719ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
720ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
721ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
722ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
723ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
724ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
725ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
726ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
727ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
728ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
729ece0e6faSBo Chen
730ece0e6faSBo Chen# v28.2
731ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
732ece0e6faSBo Chen
733ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
734ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
735ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
736ece0e6faSBo Chen
73722cf8c97SRob Bradford# v29.0
73822cf8c97SRob Bradford
73922cf8c97SRob BradfordThis release has been tracked in our [roadmap
74022cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
74122cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
74222cf8c97SRob Bradford
74322cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
74422cf8c97SRob Bradford
74522cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
74622cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
74722cf8c97SRob Bradford
74822cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
74922cf8c97SRob Bradford
75022cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
75122cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
75222cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
75322cf8c97SRob Bradfordsupported but has worked for some versions.)
75422cf8c97SRob Bradford
75522cf8c97SRob Bradford### Heap Allocation Improvements
75622cf8c97SRob Bradford
75722cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
75822cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
75922cf8c97SRob Bradford
76022cf8c97SRob Bradford### `ch-remote` Improvements
76122cf8c97SRob Bradford
76222cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
76322cf8c97SRob Bradford`ch-remote`.
76422cf8c97SRob Bradford
76522cf8c97SRob Bradford### `AArch64` Documentation Integration
76622cf8c97SRob Bradford
76722cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
76822cf8c97SRob BradfordREADME.
76922cf8c97SRob Bradford
77022cf8c97SRob Bradford### `virtio-block` Counters Enhancement
77122cf8c97SRob Bradford
77222cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
77322cf8c97SRob Bradfordlatency counters.
77422cf8c97SRob Bradford
77522cf8c97SRob Bradford### TCP Offload Control
77622cf8c97SRob Bradford
77722cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
77822cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
77922cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
78022cf8c97SRob Bradford
78122cf8c97SRob Bradford### Notable Bug Fixes
78222cf8c97SRob Bradford
78322cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
78422cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
78522cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
78622cf8c97SRob Bradford  (#4924, #4949)
78722cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
78822cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
78922cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
79022cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
79122cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
79222cf8c97SRob Bradford
79322cf8c97SRob Bradford### Removals
79422cf8c97SRob Bradford
79522cf8c97SRob BradfordNo functionality has been removed in this release.
79622cf8c97SRob Bradford
79722cf8c97SRob Bradford### Deprecations
79822cf8c97SRob Bradford
79922cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
80022cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
80122cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
80222cf8c97SRob Bradford  (#5085)
80322cf8c97SRob Bradford
80422cf8c97SRob Bradford### Contributors
80522cf8c97SRob Bradford
80622cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
80722cf8c97SRob Bradford
80822cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
80922cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
81022cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
81122cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
81222cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
81322cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
81422cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
81522cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
81622cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
81722cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
81822cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
81922cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
82022cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
82122cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
82222cf8c97SRob Bradford
82322cf8c97SRob Bradford
82422cf8c97SRob Bradford# v28.1
82522cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
82622cf8c97SRob Bradford
82722cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
82822cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
82922cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
83022cf8c97SRob Bradford  (#4924, #4949)
83122cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
83222cf8c97SRob Bradford* Improve README and documentation
83322cf8c97SRob Bradford
83466460765SRob Bradford# v28.0
83566460765SRob Bradford
83666460765SRob BradfordThis release has been tracked in our new [roadmap
83766460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
83866460765SRob Bradfordv28.0.
83966460765SRob Bradford
84066460765SRob Bradford### Community Engagement (Reminder)
84166460765SRob Bradford
84266460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
84366460765SRob Bradforddiscussions.  Please consider
84466460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
84566460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
84666460765SRob BradfordHypervisor development.
84766460765SRob Bradford
84866460765SRob Bradford### Long Term Support (LTS) Release
84966460765SRob Bradford
85066460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
85166460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
85266460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
85366460765SRob Bradfordreleases of the LTS.
85466460765SRob Bradford
85566460765SRob Bradford### Virtualised TPM Support
85666460765SRob Bradford
85766460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
85866460765SRob Bradforddocumentation](docs/tpm.md).
85966460765SRob Bradford
86066460765SRob Bradford### Transparent Huge Page Support
86166460765SRob Bradford
86266460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
86366460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
86466460765SRob Bradfordthen this will be used resulting in improved boot performance.
86566460765SRob Bradford
86666460765SRob Bradford### README Quick Start Improved
86766460765SRob Bradford
86866460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
86966460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
87066460765SRob Bradford
87166460765SRob Bradford### Notable Bug Fixes
87266460765SRob Bradford
87366460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
87466460765SRob Bradford  memory consumption (#4835)
87566460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
87666460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
87766460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
87866460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
87966460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
88066460765SRob Bradford  newer Linux kernels (#4744)
88166460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
88266460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
88366460765SRob Bradford
88466460765SRob Bradford### Removals
88566460765SRob Bradford
88666460765SRob BradfordThe following functionality has been removed:
88766460765SRob Bradford
88866460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
88966460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
89066460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
89166460765SRob Bradford
89266460765SRob Bradford### Contributors
89366460765SRob Bradford
89466460765SRob BradfordMany thanks to everyone who has contributed to our release:
89566460765SRob Bradford
89666460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
89766460765SRob Bradford* Bo Chen <chen.bo@intel.com>
89866460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
89966460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
90066460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
90166460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
90266460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
90366460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
90466460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
90566460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
90666460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
90766460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
90866460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
90966460765SRob Bradford
9102ba6a9bfSRob Bradford# v27.0
9112ba6a9bfSRob Bradford
9122ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
9132ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
9142ba6a9bfSRob Bradfordv27.0.
9152ba6a9bfSRob Bradford
9162ba6a9bfSRob Bradford### Community Engagement
9172ba6a9bfSRob Bradford
9182ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
9192ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
9202ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
9212ba6a9bfSRob Bradford
9222ba6a9bfSRob Bradford### Prebuilt Packages
9232ba6a9bfSRob Bradford
9242ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
9252ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
9262ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
9272ba6a9bfSRob Bradfordfirmware options available.
9282ba6a9bfSRob Bradford
9292ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
9302ba6a9bfSRob Bradford
9312ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
9322ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
9332ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
9342ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
9352ba6a9bfSRob Bradford(#4658, #4676.)
9362ba6a9bfSRob Bradford
9372ba6a9bfSRob Bradford### Boot Tracing
9382ba6a9bfSRob Bradford
9392ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
9402ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
9412ba6a9bfSRob Bradford
9422ba6a9bfSRob Bradford### Simplified Build Feature Flags
9432ba6a9bfSRob Bradford
9442ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
9452ba6a9bfSRob Bradford
9462ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
9472ba6a9bfSRob Bradford  (with `kvm` enabled by default),
9482ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
9492ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
9502ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
9512ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
9522ba6a9bfSRob Bradford  feature) and dumping guest memory.
9532ba6a9bfSRob Bradford
9542ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
9552ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
9562ba6a9bfSRob Bradford
9572ba6a9bfSRob Bradford### Asynchronous Kernel Loading
9582ba6a9bfSRob Bradford
9592ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
9602ba6a9bfSRob Bradfordx86-64. (#4538)
9612ba6a9bfSRob Bradford
9622ba6a9bfSRob Bradford### GDB Support for AArch64
9632ba6a9bfSRob Bradford
9642ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
9652ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
9662ba6a9bfSRob Bradford
9672ba6a9bfSRob Bradford### Notable Bug Fixes
9682ba6a9bfSRob Bradford
9692ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
9702ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
9712ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
9722ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
9732ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
9742ba6a9bfSRob Bradford
9752ba6a9bfSRob Bradford### Deprecations
9762ba6a9bfSRob Bradford
9772ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
9782ba6a9bfSRob Bradfordplan to use alternatives.
9792ba6a9bfSRob Bradford
9802ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
9812ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
9822ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
9832ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
9842ba6a9bfSRob Bradford
9852ba6a9bfSRob Bradford### Contributors
9862ba6a9bfSRob Bradford
9872ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
9882ba6a9bfSRob Bradford
9892ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
9902ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
9912ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
9922ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9932ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
9942ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
9952ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
9962ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
9972ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
9982ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
9992ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
10002ba6a9bfSRob Bradford
1001ed9e54d6SRob Bradford# v26.0
1002ed9e54d6SRob Bradford
1003ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
1004ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
1005ed9e54d6SRob Bradford
1006ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1007ed9e54d6SRob Bradford
1008ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1009ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1010ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1011ed9e54d6SRob Bradford
1012ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1013ed9e54d6SRob Bradford
1014ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1015ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1016ed9e54d6SRob Bradford
1017ed9e54d6SRob Bradford### Notable Bug Fixes
1018ed9e54d6SRob Bradford
1019ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
10207bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1021ed9e54d6SRob Bradford  out (#4456)
1022ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1023ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1024ed9e54d6SRob Bradford  (#4269, #4293)
1025ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1026ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1027ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1028ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1029ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1030ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1031ed9e54d6SRob Bradford
1032ed9e54d6SRob Bradford### Deprecations
1033ed9e54d6SRob Bradford
1034ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1035ed9e54d6SRob Bradfordplan to use alternatives.
1036ed9e54d6SRob Bradford
1037ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1038ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1039ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1040ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1041ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1042ed9e54d6SRob Bradford
1043ed9e54d6SRob Bradford### Removals
1044ed9e54d6SRob Bradford
1045ed9e54d6SRob BradfordThe following functionality has been removed:
1046ed9e54d6SRob Bradford
1047ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
1048ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
1049ed9e54d6SRob Bradford  spawning feature (#4402.)
1050ed9e54d6SRob Bradford
1051ed9e54d6SRob Bradford### Contributors
1052ed9e54d6SRob Bradford
1053ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1054ed9e54d6SRob Bradford
1055ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1056ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1057ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1058ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1059ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1060ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1061ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1062ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1063ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1064ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1065ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1066ed9e54d6SRob Bradford
1067b132cd21SRob Bradford# v25.0
1068b132cd21SRob Bradford
1069b132cd21SRob BradfordThis release has been tracked through the [v25.0
1070b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
1071b132cd21SRob Bradford
1072b132cd21SRob Bradford### `ch-remote` Improvements
1073b132cd21SRob Bradford
1074b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1075b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1076b132cd21SRob Bradford
1077b132cd21SRob Bradford### VM "Coredump" Support
1078b132cd21SRob Bradford
1079b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1080b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1081b132cd21SRob Bradford
1082b132cd21SRob Bradford### Notable Bug Fixes
1083b132cd21SRob Bradford
1084b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1085b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1086b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1087b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1088b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1089b132cd21SRob Bradford  5.16 (#4156)
1090b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1091b132cd21SRob Bradford  Linux guest
1092b132cd21SRob Bradford
1093b132cd21SRob Bradford### Removals
1094b132cd21SRob Bradford
1095b132cd21SRob BradfordThe following functionality has been removed:
1096b132cd21SRob Bradford
1097b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1098b132cd21SRob Bradford  (#3968)
1099b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1100b132cd21SRob Bradford
1101b132cd21SRob Bradford### Contributors
1102b132cd21SRob Bradford
1103b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1104b132cd21SRob Bradford
1105b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1106b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1107b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1108b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1109b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1110b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1111b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1112b132cd21SRob Bradford
11130150de55SSebastien Boeuf# v24.0
11140150de55SSebastien Boeuf
11150150de55SSebastien BoeufThis release has been tracked through the [v24.0
11160150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
11170150de55SSebastien Boeuf
11180150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
11190150de55SSebastien Boeuf
11200150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
11210150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
11220150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
11230150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
11240150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
11250150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
11260150de55SSebastien Boeuf
11270150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
11280150de55SSebastien Boeuf
11290150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
11300150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
11310150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
11320150de55SSebastien Boeuf
11330150de55SSebastien Boeuf### Sparse Mmap support
11340150de55SSebastien Boeuf
11350150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
11360150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
11370150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
11380150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
11390150de55SSebastien Boeufimpacts the performance related to this device.
11400150de55SSebastien Boeuf
11410150de55SSebastien Boeuf### Expose Platform Serial Number
11420150de55SSebastien Boeuf
11430150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
11440150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
11450150de55SSebastien Boeufguest through the SMBIOS.
11460150de55SSebastien Boeuf
11470150de55SSebastien Boeuf### Notable Bug Fixes
11480150de55SSebastien Boeuf
11490150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
11500150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
11510150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
11520150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
11530150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
11540150de55SSebastien Boeuf
11550150de55SSebastien Boeuf### Notable Improvements
11560150de55SSebastien Boeuf
11570150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
11580150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
11590150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
11600150de55SSebastien Boeuf
11610150de55SSebastien Boeuf### Deprecations
11620150de55SSebastien Boeuf
11630150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
11640150de55SSebastien Boeufplan to use alternatives
11650150de55SSebastien Boeuf
11660150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
11670150de55SSebastien Boeuf  (#3968)
11680150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
11690150de55SSebastien Boeuf
11700150de55SSebastien Boeuf### New on the Website
11710150de55SSebastien Boeuf
11720150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
11730150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
11740150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
11750150de55SSebastien Boeuf
11760150de55SSebastien Boeuf### Contributors
11770150de55SSebastien Boeuf
11780150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
11790150de55SSebastien Boeuf
11800150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
11810150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
11820150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
11830150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
11840150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
11850150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
11860150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
11870150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
11880150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
11890150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
11900150de55SSebastien Boeuf
11910150de55SSebastien Boeuf# v23.1
11920150de55SSebastien Boeuf
11930150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
11940150de55SSebastien Boeuf
11950150de55SSebastien Boeuf* Add some missing seccomp rules
11960150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
11970150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
11980150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
11990150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
12000150de55SSebastien Boeuf
12010c9c56f5SRob Bradford# v23.0
12020c9c56f5SRob Bradford
12030c9c56f5SRob BradfordThis release has been tracked through the [v23.0
12040c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
12050c9c56f5SRob Bradford
12060c9c56f5SRob Bradford### vDPA Support
12070c9c56f5SRob Bradford
12080c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
12090c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
12100c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
12110c9c56f5SRob Bradford
12120c9c56f5SRob Bradford### Updated OS Support list
12130c9c56f5SRob Bradford
12140c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
12150c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
12160c9c56f5SRob Bradford
12170c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
12180c9c56f5SRob Bradford
12190c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
12200c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
12210c9c56f5SRob Bradfordallocated RAM. (#3938)
12220c9c56f5SRob Bradford
12230c9c56f5SRob Bradford### `AMX` Support
12240c9c56f5SRob Bradford
12250c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
12260c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
12270c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
12280c9c56f5SRob Bradford
12290c9c56f5SRob Bradford### Notable Bug Fixes
12300c9c56f5SRob Bradford
12310c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
12320c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
12330c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
12340c9c56f5SRob Bradford  `virtio-mem` (#3883)
12350c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
12360c9c56f5SRob Bradford  vIOMMU (#3870)
12370c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
12380c9c56f5SRob Bradford  (#3848)
12390c9c56f5SRob Bradford
12400c9c56f5SRob Bradford### Deprecations
12410c9c56f5SRob Bradford
12420c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
12430c9c56f5SRob Bradfordplan to use alternatives
12440c9c56f5SRob Bradford
12450c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
12460c9c56f5SRob Bradford  (#3968)
12470c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
12480c9c56f5SRob Bradford
12490c9c56f5SRob Bradford### Contributors
12500c9c56f5SRob Bradford
12510c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
12520c9c56f5SRob Bradford
12530c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
12540c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
12550c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
12560c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
12570c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
12580c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
12590c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
12600c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12610c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
12620c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
12630c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
12640c9c56f5SRob Bradford
12650c9c56f5SRob Bradford# v22.1
12660c9c56f5SRob Bradford
12670c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
12680c9c56f5SRob Bradford
12690c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
12700c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
12710c9c56f5SRob Bradford
12726aa10938SRob Bradford# v22.0
12736aa10938SRob Bradford
12740c9c56f5SRob BradfordThis release has been tracked through the [v22.0
12750c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
12766aa10938SRob Bradford
12776aa10938SRob Bradford### GDB Debug Stub Support
12786aa10938SRob Bradford
12796aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
12806aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
12816aa10938SRob Bradfordthe [gdb
12826aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
12836aa10938SRob Bradford
12846aa10938SRob Bradford### `virtio-iommu` Backed Segments
12856aa10938SRob Bradford
12866aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
12876aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
12886aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
12896aa10938SRob Bradford
12906aa10938SRob Bradford### Before Boot Configuration Changes
12916aa10938SRob Bradford
12926aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
12936aa10938SRob Bradfordresize) before the VM is booted.
12946aa10938SRob Bradford
12956aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
12966aa10938SRob Bradford
12976aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
12986aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
12996aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
13006aa10938SRob Bradfordmemory density.
13016aa10938SRob Bradford
13026aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
13036aa10938SRob Bradford
13046aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
13056aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
13066aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
13076aa10938SRob Bradfordhas been updated for this usage.
13086aa10938SRob Bradford
13096aa10938SRob Bradford### PMU Support for AArch64
13106aa10938SRob Bradford
13116aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
13126aa10938SRob Bradfordexposed automatically if available from the host.
13136aa10938SRob Bradford
13140c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
13156aa10938SRob Bradford
13166aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
13176aa10938SRob BradfordInternational" license which is aligned with the project charter under the
13186aa10938SRob BradfordLinux Foundation.
13196aa10938SRob Bradford
13206aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
13216aa10938SRob Bradford
13226aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
13236aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
13246aa10938SRob Bradfordversion.
13256aa10938SRob Bradford
13266aa10938SRob Bradford### Notable Bug Fixes
13276aa10938SRob Bradford
13286aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
13296aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
13306aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
13316aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
13326aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
13336aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
13346aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
13356aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
13366aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
13376aa10938SRob Bradford
13386aa10938SRob Bradford### Contributors
13396aa10938SRob Bradford
13406aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
13416aa10938SRob Bradford
13426aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
13436aa10938SRob Bradford* Barret Rhoden <brho@google.com>
13446aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
13456aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
13466aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
13476aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
13486aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13496aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
13506aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
13516aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
13526aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13536aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
13546aa10938SRob Bradford
135595ca7997SRob Bradford# v21.0
135695ca7997SRob Bradford
135795ca7997SRob BradfordThis release has been tracked through the [v21.0
135895ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
135995ca7997SRob Bradford
136095ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
136195ca7997SRob Bradford
13626aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
13636aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
13646aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
13656aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
13666aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
136795ca7997SRob Bradford
136895ca7997SRob Bradford### Recommended Kernel is Now 5.15
136995ca7997SRob Bradford
13706aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
13716aa10938SRob Bradfordis now 5.15. (#3530)
137295ca7997SRob Bradford
137395ca7997SRob Bradford### Notable Bug fixes
137495ca7997SRob Bradford
13757bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
137695ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
137795ca7997SRob Bradford* Support live migration within firmware (#3586)
13787bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
137995ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
138095ca7997SRob Bradford
138195ca7997SRob Bradford### Contributors
138295ca7997SRob Bradford
138395ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
138495ca7997SRob Bradford
138595ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
138695ca7997SRob Bradford* Barret Rhoden <brho@google.com>
138795ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
138895ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
138995ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
139095ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
139195ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
139295ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
139395ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
139495ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
139595ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
139695ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
139795ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
139895ca7997SRob Bradford
139995ca7997SRob Bradford# v20.2
140095ca7997SRob Bradford
140195ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
140295ca7997SRob Bradford
140395ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
140495ca7997SRob Bradford  when this fails due to older kernel (#3456)
140595ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
140695ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
140795ca7997SRob Bradford  (#3496)
140895ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
140995ca7997SRob Bradford
141095ca7997SRob Bradford# v20.1
141195ca7997SRob Bradford
141295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
141395ca7997SRob Bradford
141495ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
141595ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
141695ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
141795ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
141895ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
141995ca7997SRob Bradford
14207fc0776aSSebastien Boeuf# v20.0
14217fc0776aSSebastien Boeuf
14227fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
14237fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
14247fc0776aSSebastien Boeuf
14257fc0776aSSebastien Boeuf### Multiple PCI segments support
14267fc0776aSSebastien Boeuf
14277fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
14287fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
14297fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
14307fc0776aSSebastien Boeuf
14317fc0776aSSebastien Boeuf### CPU pinning
14327fc0776aSSebastien Boeuf
14337fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
14347fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
14357fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
14367fc0776aSSebastien Boeuf
14377fc0776aSSebastien Boeuf### Improved VFIO support
14387fc0776aSSebastien Boeuf
14397fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
14407fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
14417fc0776aSSebastien Boeufthe passthrough device.
14427fc0776aSSebastien Boeuf
14437fc0776aSSebastien Boeuf### Safer code
14447fc0776aSSebastien Boeuf
14457fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
14467fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
14477fc0776aSSebastien Boeufunsafe sections are safe to use.
14487fc0776aSSebastien Boeuf
14497fc0776aSSebastien Boeuf### Extended documentation
14507fc0776aSSebastien Boeuf
14517fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
14527fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
14537fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
14547fc0776aSSebastien Boeuf
14557fc0776aSSebastien Boeuf### Notable bug fixes
14567fc0776aSSebastien Boeuf
14577fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
14587fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
14597fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
14607fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
14617fc0776aSSebastien Boeuf
14627fc0776aSSebastien Boeuf### Contributors
14637fc0776aSSebastien Boeuf
14647fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
14657fc0776aSSebastien Boeuf
14667fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
14677fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
14687fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
14697fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
14707fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
14717fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
14727fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
14737fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
14747fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
14757fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
14767fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
14777fc0776aSSebastien Boeuf
1478d00eb4aaSRob Bradford# v19.0
1479d00eb4aaSRob Bradford
1480d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1481d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1482d00eb4aaSRob Bradford
1483d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1484d00eb4aaSRob Bradford
1485d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1486d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1487d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1488d00eb4aaSRob Bradford
1489d00eb4aaSRob Bradford### PCI boot time optimisations
1490d00eb4aaSRob Bradford
1491d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1492d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1493d00eb4aaSRob Bradford
1494d00eb4aaSRob Bradford### Improved TDX support
1495d00eb4aaSRob Bradford
1496d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1497d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1498d00eb4aaSRob Bradford
1499d00eb4aaSRob Bradford### Live migration enhancements
1500d00eb4aaSRob Bradford
1501d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1502d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1503d00eb4aaSRob Bradfordmigration.
1504d00eb4aaSRob Bradford
1505d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1506d00eb4aaSRob Bradford
1507d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1508d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1509d00eb4aaSRob Bradford
1510d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1511d00eb4aaSRob Bradford
1512d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1513d00eb4aaSRob Bradford
1514d00eb4aaSRob Bradford### Notable bug fixes
1515d00eb4aaSRob Bradford
1516d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1517d00eb4aaSRob Bradford  snapshot/restore (#3165)
1518d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1519d00eb4aaSRob Bradford  (#3078 #3113)
1520d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1521d00eb4aaSRob Bradford  the underlying crate (#3157)
1522d00eb4aaSRob Bradford
1523d00eb4aaSRob Bradford### Contributors
1524d00eb4aaSRob Bradford
1525d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1526d00eb4aaSRob Bradford
1527d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1528d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1529d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1530d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1531d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1532d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1533d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1534d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1535d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1536d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1537d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1538d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1539d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1540d00eb4aaSRob Bradford
15412c4f8d22SRob Bradford# v18.0
15422c4f8d22SRob Bradford
15432c4f8d22SRob BradfordThis release has been tracked through the [v18.0
15442c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
15452c4f8d22SRob Bradford
15462c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
15472c4f8d22SRob Bradford
15482c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
15492c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
15502c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
15512c4f8d22SRob Bradford
15522c4f8d22SRob Bradford### Migration support for `vhost-user` devices
15532c4f8d22SRob Bradford
15542c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
15552c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
15562c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
15572c4f8d22SRob Bradford
15582c4f8d22SRob Bradford### VHDX disk image support
15592c4f8d22SRob Bradford
15602c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
15612c4f8d22SRob Bradford
15622c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
15632c4f8d22SRob Bradford
15642c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
15652c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
15662c4f8d22SRob Bradford
15672c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
15682c4f8d22SRob Bradford
15692c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
15702c4f8d22SRob Bradford
15712c4f8d22SRob Bradford### Live migration on MSHV hypervisor
15722c4f8d22SRob Bradford
15732c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
15742c4f8d22SRob Bradfordefficient tracking of dirty pages.
15752c4f8d22SRob Bradford
15762c4f8d22SRob Bradford### AArch64 CPU topology support
15772c4f8d22SRob Bradford
15782c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
15792c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
15802c4f8d22SRob Bradfordtree.
15812c4f8d22SRob Bradford
15822c4f8d22SRob Bradford### Power button support on AArch64
15832c4f8d22SRob Bradford
15842c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
15852c4f8d22SRob Bradfordis now supported when running on AArch64.
15862c4f8d22SRob Bradford
15872c4f8d22SRob Bradford### Notable bug fixes
15882c4f8d22SRob Bradford
15892c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
15902c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
15912c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
15922c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
15932c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
15942c4f8d22SRob Bradford
15952c4f8d22SRob Bradford### Contributors
15962c4f8d22SRob Bradford
15972c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
15982c4f8d22SRob Bradford
15992c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
16002c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
16012c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
16022c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
16032c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
16042c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
16052c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16062c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
16072c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
16082c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
16092c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
16102c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16112c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
16122c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1613e6db5999SRob Bradford
1614e6db5999SRob Bradford# v17.0
1615e6db5999SRob Bradford
1616e6db5999SRob BradfordThis release has been tracked through the [v17.0
1617e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1618e6db5999SRob Bradford
1619e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1620e6db5999SRob Bradford
1621e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1622e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1623e6db5999SRob Bradford
1624e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1625e6db5999SRob Bradford
1626e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1627e6db5999SRob Bradfordhypervisor backend.
1628e6db5999SRob Bradford
1629e6db5999SRob Bradford### Hotplug of `macvtap` devices
1630e6db5999SRob Bradford
1631e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1632e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1633e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1634e6db5999SRob Bradford
1635e6db5999SRob Bradford### Improved SGX support
1636e6db5999SRob Bradford
1637e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1638e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1639e6db5999SRob Bradford
1640e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1641e6db5999SRob Bradford
1642e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1643e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1644e6db5999SRob Bradford
1645e6db5999SRob Bradford### Notable bug fixes
1646e6db5999SRob Bradford
1647e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1648e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1649e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1650e6db5999SRob Bradford(#2833).
1651e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1652e6db5999SRob Bradford
1653e6db5999SRob Bradford### Contributors
1654e6db5999SRob Bradford
1655e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1656e6db5999SRob Bradford
1657e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1658e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1659e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1660e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1661e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1662e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1663e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1664e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1665e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1666e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1667e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1668e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1669e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1670e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1671e6db5999SRob Bradford
16725ed8e01fSRob Bradford# v16.0
16735ed8e01fSRob Bradford
16745ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
16755ed8e01fSRob Bradford
16765ed8e01fSRob Bradford### Improved live migration support
16775ed8e01fSRob Bradford
16785ed8e01fSRob 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.
16795ed8e01fSRob Bradford
16805ed8e01fSRob Bradford### Improved `vhost-user` support
16815ed8e01fSRob Bradford
16825ed8e01fSRob 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.
16835ed8e01fSRob Bradford
16845ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
16855ed8e01fSRob Bradford
16865ed8e01fSRob 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.
16875ed8e01fSRob Bradford
16885ed8e01fSRob Bradford### Notable bug fixes
16895ed8e01fSRob Bradford
16905ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
16915ed8e01fSRob 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).
16925ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
16935ed8e01fSRob Bradford
16945ed8e01fSRob Bradford### Removed functionality
16955ed8e01fSRob Bradford
16965ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
16975ed8e01fSRob Bradford
16985ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
16995ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
17005ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
17015ed8e01fSRob Bradford
17025ed8e01fSRob Bradford### Contributors
17035ed8e01fSRob Bradford
17045ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
17055ed8e01fSRob Bradford
17065ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
17075ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
17085ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
17095ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
17105ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
17115ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17125ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
17135ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
17145ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
17155ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
17165ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
17175ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17185ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
17195ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
17205ed8e01fSRob Bradford
172130a01277SRob Bradford# v15.0
172230a01277SRob Bradford
172330a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
172430a01277SRob Bradford
172530a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
172630a01277SRob Bradford
172730a01277SRob Bradford### Version numbering and stability guarantees
172830a01277SRob Bradford
172930a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
173030a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
173130a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
173230a01277SRob Bradford
173330a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
173430a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
173530a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
173630a01277SRob Bradford  will be documented in the release notes.
173730a01277SRob Bradford* Point releases will be made between individual releases where there are
173830a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
173930a01277SRob Bradford
174030a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
174130a01277SRob Bradford
174230a01277SRob Bradford* Snapshot/restore is not supported across different versions
174330a01277SRob Bradford* Live migration is not supported across different versions
174430a01277SRob Bradford* The following features are considered experimental and may change
174530a01277SRob Bradford  substantially between releases: TDX, SGX.
174630a01277SRob Bradford
174730a01277SRob Bradford### Network device rate limiting
174830a01277SRob Bradford
174930a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
175030a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
175130a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
175230a01277SRob Bradford
175330a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
175430a01277SRob Bradford
175530a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
175630a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
175730a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
175830a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
175930a01277SRob Bradford
176030a01277SRob Bradford### `--api-socket` supports file descriptor parameter
176130a01277SRob Bradford
176230a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
176330a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
176430a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
176530a01277SRob Bradford
176630a01277SRob Bradford### Bug fixes
176730a01277SRob Bradford
176830a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
176930a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
177030a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
177130a01277SRob Bradford  reprogram them (#1797,#1798)
177230a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
177330a01277SRob Bradford  exhaustion on the host) (#2517)
177430a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
177530a01277SRob Bradford  prevents snapshot & restore working (#2535)
177630a01277SRob Bradford
177730a01277SRob Bradford### Deprecations
177830a01277SRob Bradford
177930a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
178030a01277SRob Bradford
178130a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
178230a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
178330a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
178430a01277SRob Bradford
178530a01277SRob Bradford### Contributors
178630a01277SRob Bradford
178730a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
178830a01277SRob Bradford
178930a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
179030a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
179130a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
179230a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
179330a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
179430a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
179530a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
179630a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
179730a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
179830a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
179930a01277SRob Bradford* William Douglas <william.douglas@intel.com>
180030a01277SRob Bradford
180130a01277SRob Bradford# v0.14.1
180230a01277SRob Bradford
180330a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
180430a01277SRob Bradfordin this release:
180530a01277SRob Bradford
180630a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
180730a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
180830a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
180930a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
181030a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
181130a01277SRob Bradford
181240c63dcfSRob Bradford# v0.14.0
181340c63dcfSRob Bradford
181440c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
181540c63dcfSRob Bradford
181640c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
181740c63dcfSRob Bradford
181840c63dcfSRob Bradford### Structured event monitoring
181940c63dcfSRob Bradford
182040c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
182140c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
182240c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
182340c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
182440c63dcfSRob BradfordHypervisor API surface.
182540c63dcfSRob Bradford
182640c63dcfSRob Bradford### MSHV improvements
182740c63dcfSRob Bradford
182840c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
182940c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
183040c63dcfSRob Bradfordthe MSHV support.
183140c63dcfSRob Bradford
183240c63dcfSRob Bradford### Improved aarch64 platform
183340c63dcfSRob Bradford
183440c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
183540c63dcfSRob BradfordVM including an enhanced serial UART.
183640c63dcfSRob Bradford
183740c63dcfSRob Bradford### Updated hotplug documentation
183840c63dcfSRob Bradford
183940c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
184040c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
184140c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
184240c63dcfSRob Bradford
184340c63dcfSRob Bradford### PTY control for serial and `virtio-console`
184440c63dcfSRob Bradford
184540c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
184640c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
184740c63dcfSRob BradfordPTY subsystem.
184840c63dcfSRob Bradford
184940c63dcfSRob Bradford### Block device rate limiting
185040c63dcfSRob Bradford
185140c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
185240c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
185330a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
185440c63dcfSRob Bradford
185540c63dcfSRob Bradford
185640c63dcfSRob Bradford### Deprecations
185740c63dcfSRob Bradford
185840c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
185940c63dcfSRob Bradford
186040c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
186140c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
186240c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
186340c63dcfSRob Bradford
186440c63dcfSRob Bradford
186540c63dcfSRob Bradford### Contributors
186640c63dcfSRob Bradford
186740c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
186840c63dcfSRob Bradfordsome new faces.
186940c63dcfSRob Bradford
187040c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
187140c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
187240c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
187340c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
187440c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
187540c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
187640c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
187740c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
187840c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
187940c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
188040c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
188140c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
188240c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
188340c63dcfSRob Bradford
1884f58b6f84SRob Bradford# v0.13.0
1885f58b6f84SRob Bradford
1886f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1887f58b6f84SRob Bradford
1888f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1889f58b6f84SRob Bradford
1890f58b6f84SRob Bradford### Wider VFIO device support
1891f58b6f84SRob Bradford
1892f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1893f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1894f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1895f58b6f84SRob Bradforddrivers.
1896f58b6f84SRob Bradford
189740c63dcfSRob Bradford### Improved huge page support
1898f58b6f84SRob Bradford
1899f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1900f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1901f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1902f58b6f84SRob Bradforddesired size in their pool.
1903f58b6f84SRob Bradford
1904f58b6f84SRob Bradford### MACvTAP support
1905f58b6f84SRob Bradford
1906f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1907f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1908f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1909f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1910f58b6f84SRob Bradford
1911f58b6f84SRob Bradford### VHD disk image support
1912f58b6f84SRob Bradford
1913f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1914f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1915f58b6f84SRob Bradford
1916f58b6f84SRob Bradford### Improved Virtio device threading
1917f58b6f84SRob Bradford
1918f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1919f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1920f58b6f84SRob Bradfordpredictable name derived from the device id.
1921f58b6f84SRob Bradford
1922f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1923f58b6f84SRob Bradford
1924f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1925f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1926f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1927f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1928f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1929f58b6f84SRob Bradford
1930f58b6f84SRob Bradford### Contributors
1931f58b6f84SRob Bradford
1932f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1933f58b6f84SRob Bradfordsome new faces.
1934f58b6f84SRob Bradford
1935f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1936f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1937f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1938f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1939f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1940f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1941f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1942f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1943f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1944f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1945f58b6f84SRob Bradford
1946d42b5084SRob Bradford# v0.12.0
1947d42b5084SRob Bradford
1948d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1949d42b5084SRob Bradford
1950d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1951d42b5084SRob Bradford
1952d42b5084SRob Bradford### ARM64 enhancements
1953d42b5084SRob Bradford
1954d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1955d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1956d42b5084SRob Bradford
1957d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1958d42b5084SRob Bradford
1959d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1960d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1961d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1962d42b5084SRob Bradfordremoved.
1963d42b5084SRob Bradford
1964d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1965d42b5084SRob Bradford
1966d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1967d42b5084SRob Bradfordinstead hosted in [it's own
1968d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1969d42b5084SRob Bradford
1970d42b5084SRob Bradford### Enhanced "info" API
1971d42b5084SRob Bradford
1972d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1973d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1974d42b5084SRob Bradford
1975d42b5084SRob Bradford### Contributors
1976d42b5084SRob Bradford
1977d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1978d42b5084SRob Bradford
1979d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1980d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1981d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1982d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1983d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1984d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1985d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1986d42b5084SRob Bradford
19877dcd3affSRob Bradford# v0.11.0
19887dcd3affSRob Bradford
19897dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
19907dcd3affSRob Bradford
19917dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
19927dcd3affSRob Bradford
19937dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
19947dcd3affSRob Bradford
19957dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
19967dcd3affSRob Bradfordbe used for a significantly higher performance block device.
19977dcd3affSRob Bradford
19987dcd3affSRob Bradford### Windows Guest Support
19997dcd3affSRob Bradford
20007dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
20017dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
20027dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
20037dcd3affSRob Bradforddocumentation](docs/windows.md).
20047dcd3affSRob Bradford
20057dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
20067dcd3affSRob Bradford
20077dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
20087dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
20097dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
20107dcd3affSRob Bradford
2011d00eb4aaSRob Bradford### `virtio-mmio` Removal
20127dcd3affSRob Bradford
20137dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
20147dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
20157dcd3affSRob Bradfordreduce the testing burden of the project.
20167dcd3affSRob Bradford
20177dcd3affSRob Bradford### Snapshot/Restore support for ARM64
20187dcd3affSRob Bradford
20197dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
20207dcd3affSRob Bradfordimplemented.
20217dcd3affSRob Bradford
20227dcd3affSRob Bradford### Improved Linux Boot Time
20237dcd3affSRob Bradford
20247dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
20257dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
20267dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
20277dcd3affSRob Bradford
20287dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
20297dcd3affSRob Bradford
20307dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
20317dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
20327dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
20337dcd3affSRob Bradfordresources.
20347dcd3affSRob Bradford
20357dcd3affSRob Bradford### Default Log Level Changed
20367dcd3affSRob Bradford
20377dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
20387dcd3affSRob Bradfordeasier to see potential issues. New [logging
20397dcd3affSRob Bradforddocumentation](docs/logging) was also added.
20407dcd3affSRob Bradford
20417dcd3affSRob Bradford### New `--balloon` Parameter Added
20427dcd3affSRob Bradford
20437dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
20447dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
20457dcd3affSRob Bradfordcontrols without overloading `--memory`.
20467dcd3affSRob Bradford
20477dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
20487dcd3affSRob Bradford
20497dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
20507dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
20517dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
20527dcd3affSRob Bradford
20537dcd3affSRob Bradford### Notable Bug Fixes
20547dcd3affSRob Bradford
20557dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
20567dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
20577dcd3affSRob Bradford* CPU identification string is now exposed to the guest
20587dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
20597dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
20607dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
20617dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
20627dcd3affSRob Bradford  can be used (#1803)
20637dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
20647dcd3affSRob Bradford  correctly
20657dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
20667dcd3affSRob Bradford  correctly
20677dcd3affSRob Bradford
20687dcd3affSRob Bradford### Contributors
20697dcd3affSRob Bradford
20707dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
20717dcd3affSRob Bradford
20727dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
20737dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
20747dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
20757dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
20767dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
20777dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
20787dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
20797dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
20807dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
20817dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
20827dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
20837dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
20847dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
20857dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
20867dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
20877dcd3affSRob Bradford
20887dcd3affSRob Bradford
2089198bd551SRob Bradford# v0.10.0
2090198bd551SRob Bradford
2091198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2092198bd551SRob Bradford
2093198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2094198bd551SRob Bradford
2095198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2096198bd551SRob Bradford
2097198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2098198bd551SRob Bradford
2099198bd551SRob Bradford### Memory Zones
2100198bd551SRob Bradford
2101198bd551SRob BradfordSupport has been added for fine grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
2102198bd551SRob Bradford
2103198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2104198bd551SRob Bradford
2105198bd551SRob 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`.
2106198bd551SRob Bradford
2107198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2108198bd551SRob Bradford
2109198bd551SRob 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.
2110198bd551SRob Bradford
2111198bd551SRob Bradford### Notable Bug Fixes
2112198bd551SRob Bradford
2113198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2114198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2115198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2116198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2117198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2118198bd551SRob Bradford
2119198bd551SRob Bradford### Contributors
2120198bd551SRob Bradford
2121198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2122198bd551SRob Bradford
2123198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2124198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2125198bd551SRob Bradford* Anatol Belski <ab@php.net>
2126198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2127198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2128198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2129198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2130198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2131198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2132198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2133198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2134198bd551SRob Bradford
2135d714cf81SRob Bradford# v0.9.0
2136d714cf81SRob Bradford
2137d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2138d714cf81SRob Bradford
2139d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2140d714cf81SRob Bradford
2141d714cf81SRob Bradford### `io_uring` Based Block Device Support
2142d714cf81SRob Bradford
2143d714cf81SRob 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.
2144d714cf81SRob Bradford
2145d714cf81SRob Bradford### Block and Network Device Statistics
2146d714cf81SRob Bradford
2147d714cf81SRob 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.
2148d714cf81SRob Bradford
2149d714cf81SRob Bradford### HTTP API Responses
2150d714cf81SRob Bradford
2151d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2152d714cf81SRob Bradford
2153d714cf81SRob Bradford### CPU Topology
2154d714cf81SRob Bradford
2155d714cf81SRob 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.
2156d714cf81SRob Bradford
2157d714cf81SRob Bradford### Release Build Optimization
2158d714cf81SRob Bradford
2159d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2160d714cf81SRob Bradford
2161d714cf81SRob Bradford### Hypervisor Abstraction
2162d714cf81SRob Bradford
2163d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2164d714cf81SRob Bradford
2165d714cf81SRob Bradford### Snapshot/Restore Improvements
2166d714cf81SRob Bradford
2167d714cf81SRob 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.
2168d714cf81SRob Bradford
2169d714cf81SRob Bradford### Virtio Memory Ballooning Support
2170d714cf81SRob Bradford
2171d714cf81SRob 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.
2172d714cf81SRob Bradford
2173d714cf81SRob Bradford### Enhancements to ARM64 Support
2174d714cf81SRob Bradford
2175d714cf81SRob 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.
2176d714cf81SRob Bradford
2177d714cf81SRob Bradford### Intel SGX Support
2178d714cf81SRob Bradford
2179d714cf81SRob 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).
2180d714cf81SRob Bradford
2181d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2182d714cf81SRob Bradford
2183d714cf81SRob 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.
2184d714cf81SRob Bradford
2185d714cf81SRob Bradford### Notable Bug Fixes
2186d714cf81SRob Bradford
2187d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2188d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2189d714cf81SRob 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).
2190d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2191d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2192d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2193d714cf81SRob Bradford
2194d714cf81SRob Bradford### Contributors
2195d714cf81SRob Bradford
2196d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2197d714cf81SRob Bradford
2198d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2199d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2200d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2201d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2202d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2203d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2204d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2205d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2206d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2207d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2208d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2209d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2210d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2211d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2212d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2213d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2214d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2215d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2216d714cf81SRob Bradford
2217d714cf81SRob Bradford
221852b83969SRob Bradford# v0.8.0
221952b83969SRob Bradford
222052b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
222152b83969SRob Bradford
222252b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
222352b83969SRob Bradford
222452b83969SRob Bradford### Experimental Snapshot and Restore Support
222552b83969SRob Bradford
222652b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
222752b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
222852b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
222952b83969SRob Bradfordoriginal VM at the point it was paused.
223052b83969SRob Bradford
223152b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
223252b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
223352b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
223452b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
223552b83969SRob Bradford(#1176).
223652b83969SRob Bradford
223752b83969SRob Bradford### Experimental ARM64 Support
223852b83969SRob Bradford
223952b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
224052b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
224152b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
224252b83969SRob Bradford
224352b83969SRob Bradford### Support for Using 5-level Paging in Guests
224452b83969SRob Bradford
224552b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
224652b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
224752b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
224852b83969SRob Bradfordwork due to current limitations in the PVH boot process.
224952b83969SRob Bradford
225052b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
225152b83969SRob Bradford
225252b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
225352b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
225452b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
225552b83969SRob Bradfordthe guest must service.
225652b83969SRob Bradford
225752b83969SRob Bradford### `vhost_user_fs` Improvements
225852b83969SRob Bradford
225952b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
226052b83969SRob Bradford
226152b83969SRob Bradford
226252b83969SRob Bradford### Notable Bug Fixes
226352b83969SRob Bradford
226452b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
226552b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
226652b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
226752b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
226852b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
226952b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
227052b83969SRob Bradford  #1216).
227152b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
227252b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
227352b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
227452b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
227552b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
227652b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
227752b83969SRob Bradford  (#751).
227852b83969SRob Bradford
227952b83969SRob Bradford### Command Line and API Changes
228052b83969SRob Bradford
228152b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
228252b83969SRob Bradford
228352b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
228452b83969SRob Bradford  rather than `sock` in some cases.
228552b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
228652b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
228752b83969SRob Bradford  offered for negotiation.
228852b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
228952b83969SRob Bradford  address for the `tap` device on the host.
229052b83969SRob Bradford
229152b83969SRob Bradford### Contributors
229252b83969SRob Bradford
229352b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
229452b83969SRob Bradford
229552b83969SRob Bradford* Anatol Belski <ab@php.net>
229652b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
229752b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
229852b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
229952b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
230052b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
230152b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
230252b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
230352b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
230452b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
230552b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
230652b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
230752b83969SRob Bradford
230896be8229SRob Bradford# v0.7.0
230996be8229SRob Bradford
231096be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
231196be8229SRob Bradford
231296be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
231396be8229SRob Bradford
231496be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
231596be8229SRob Bradford
231696be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
231796be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
231896be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
23195c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
232096be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
232196be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
232296be8229SRob Bradforddevices to ease their removal.
232396be8229SRob Bradford
232496be8229SRob Bradford### Alternative `libc` Support
232596be8229SRob Bradford
232696be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
232796be8229SRob Bradfordcontains a static binary compiled using that toolchain.
232896be8229SRob Bradford
232996be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
233096be8229SRob Bradford
233196be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
233296be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
233396be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
233496be8229SRob Bradfordis passed when the devices are created.
233596be8229SRob Bradford
233696be8229SRob Bradford### Initial RamFS Support
233796be8229SRob Bradford
233896be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
233996be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
234096be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
234196be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
234296be8229SRob Bradfordminimal image.
234396be8229SRob Bradford
234496be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
234596be8229SRob Bradford
234696be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
234796be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
234896be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
234996be8229SRob Bradfordrequires kernel patches to be able to support it.
235096be8229SRob Bradford
235196be8229SRob Bradford### `Seccomp` Sandboxing
235296be8229SRob Bradford
235396be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
235496be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
235596be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
235696be8229SRob Bradford
235796be8229SRob Bradford### Updated Distribution Support
235896be8229SRob Bradford
235996be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
236096be8229SRob Bradforddistributions and is part of our regular testing programme.
236196be8229SRob Bradford
236296be8229SRob Bradford### Command Line and API Changes
236396be8229SRob Bradford
236496be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
236596be8229SRob Bradford
236696be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
236796be8229SRob Bradford  If no name is specified the VMM chooses one.
236896be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
236996be8229SRob Bradford  memory instead of providing a path.
237096be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
237196be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
237296be8229SRob Bradford  option and replaced it with a single optional field.
237396be8229SRob Bradford* There is enhanced validation of the command line and API provided
237496be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
237596be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
237696be8229SRob Bradford  device.
237796be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
237896be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
237996be8229SRob Bradford  has appropriate new HTTP endpoints too.
238096be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
238196be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
238296be8229SRob Bradford  to provide the equivalent of a read-only file.
238396be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
238496be8229SRob Bradford  with those used by `--disk`.
238596be8229SRob Bradford
238696be8229SRob Bradford### Contributors
238796be8229SRob Bradford
238896be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
238996be8229SRob Bradford
239096be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
239196be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
239296be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
239396be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
239496be8229SRob Bradford* Dean Sheather <dean@coder.com>
239596be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
239696be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
239796be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
239896be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
239996be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
240096be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
240196be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
240296be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
240396be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
240496be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
240596be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
240696be8229SRob Bradford
240703cb26ccSSamuel Ortiz# v0.6.0
240803cb26ccSSamuel Ortiz
240903cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
241003cb26ccSSamuel Ortiz
241103cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
241203cb26ccSSamuel Ortiz
241303cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
241403cb26ccSSamuel Ortiz
241503cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
241603cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
241703cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
241803cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
241903cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
242003cb26ccSSamuel Ortiz
242103cb26ccSSamuel Ortiz### Shared Filesystem Improvements
242203cb26ccSSamuel Ortiz
242303cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
242403cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
242503cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
242603cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
242703cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
242803cb26ccSSamuel Ortiz
242903cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
243003cb26ccSSamuel Ortiz
243103cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
243203cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
243303cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
243403cb26ccSSamuel Ortizinto their own, separate processes.
24355c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
243603cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
243703cb26ccSSamuel Ortiz
243803cb26ccSSamuel Ortiz### Command Line Interface
243903cb26ccSSamuel Ortiz
244003cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
244137a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
244237a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
244337a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
244437a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
244537a2c13aSAlyssa Rossis created with each build and available e.g. at
244603cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
244703cb26ccSSamuel Ortiz
244803cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
244903cb26ccSSamuel Ortizcommands.
245003cb26ccSSamuel Ortiz
245103cb26ccSSamuel Ortiz### PVH Boot
245203cb26ccSSamuel Ortiz
245303cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
245403cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
245503cb26ccSSamuel Ortiz
245603cb26ccSSamuel Ortiz### Contributors
245703cb26ccSSamuel Ortiz
245803cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
245903cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
246003cb26ccSSamuel Ortiz
246103cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
246203cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
246303cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
246403cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
246503cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
246603cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
246703cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
246803cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
246903cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
247003cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
247103cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
247203cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
247303cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
247403cb26ccSSamuel Ortiz
247594f2fc33SRob Bradford# v0.5.1
247694f2fc33SRob Bradford
247794f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
247894f2fc33SRob Bradford
247994f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
248094f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
248194f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
248294f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
248394f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
24848e8a7b6dSSamuel Ortiz
24852f395e60SSamuel Ortiz# v0.5.0
24862f395e60SSamuel Ortiz
24872f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
24882f395e60SSamuel Ortiz
24892f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
24902f395e60SSamuel Ortiz
24912f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
24922f395e60SSamuel Ortiz
24932f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
24942f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
24952f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
24962f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
24972f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
24982f395e60SSamuel Ortiz
24992f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
25002f395e60SSamuel Ortiz
25012f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
25022f395e60SSamuel Ortiz
25032f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
25042f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
25052f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
25062f395e60SSamuel Ortiz
25072f395e60SSamuel Ortiz### New Interrupt Management Framework
25082f395e60SSamuel Ortiz
25092f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
25102f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
25112f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
25122f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
25132f395e60SSamuel Ortizvirtio ones.
25142f395e60SSamuel Ortiz
25152f395e60SSamuel Ortiz### Development Tools
25162f395e60SSamuel Ortiz
25172f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
25182f395e60SSamuel Ortizbuild, development and testing tools.
25192f395e60SSamuel OrtizSomehow similar to the excellent
25202f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
252137a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
25222f395e60SSamuel Ortiz
25232f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
25242f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
25252f395e60SSamuel Ortiz
25262f395e60SSamuel Ortiz### Kata Containers Integration
25272f395e60SSamuel Ortiz
25282f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
25292f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
25302f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
25312f395e60SSamuel Ortizintegrated into the project's CI.
25322f395e60SSamuel Ortiz
25332f395e60SSamuel Ortiz### Contributors
25342f395e60SSamuel Ortiz
25352f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
25362f395e60SSamuel Ortiz
25372f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
25382f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
25392f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
25402f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
25412f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
25422f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
25432f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
25442f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
25452f395e60SSamuel Ortiz
2546cec884e8SSamuel Ortiz# v0.4.0
2547cec884e8SSamuel Ortiz
2548cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2549cec884e8SSamuel Ortiz
2550cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2551cec884e8SSamuel Ortiz
2552cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2553cec884e8SSamuel Ortiz
2554e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2555cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2556cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2557cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
255837a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2559cec884e8SSamuel Ortiz
2560cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2561cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2562cec884e8SSamuel Ortiz
2563cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2564cec884e8SSamuel Ortiz
2565cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2566cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2567cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2568cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2569cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2570cec884e8SSamuel Ortiz
2571cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2572cec884e8SSamuel Ortiz
2573cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2574cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2575cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2576cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2577cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2578cec884e8SSamuel Ortiz
2579cec884e8SSamuel Ortiz### Guest pause and resume
2580cec884e8SSamuel Ortiz
25815c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2582cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2583cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2584cec884e8SSamuel Ortizand resume capabilities.
2585cec884e8SSamuel Ortiz
2586cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2587cec884e8SSamuel Ortiz
2588cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2589cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2590cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2591cec884e8SSamuel Ortizdefault.
2592cec884e8SSamuel Ortiz
2593cec884e8SSamuel Ortiz### PCI BAR reprogramming
2594cec884e8SSamuel Ortiz
2595cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2596cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2597cec884e8SSamuel Ortizreprogramming.
2598cec884e8SSamuel Ortiz
2599cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2600cec884e8SSamuel Ortiz
2601cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2602cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2603cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2604cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2605cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2606cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2607cec884e8SSamuel Ortiztemporarily fork.
2608cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2609cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2610cec884e8SSamuel Ortiz
2611cec884e8SSamuel Ortiz### Contributors
2612cec884e8SSamuel Ortiz
2613cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2614cec884e8SSamuel Ortiz
2615cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2616cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2617cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2618cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2619cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2620cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2621cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2622cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2623cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2624cec884e8SSamuel Ortiz
26258e8a7b6dSSamuel Ortiz# v0.3.0
26268e8a7b6dSSamuel Ortiz
26278ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
26288e8a7b6dSSamuel Ortiz
26298e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
26308e8a7b6dSSamuel Ortiz
26318e8a7b6dSSamuel Ortiz### Block device offloading
26328e8a7b6dSSamuel Ortiz
26338e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
26348e8a7b6dSSamuel Ortizand we added support for
26358e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
26368e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
26378e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
26388e8a7b6dSSamuel Ortizbackend.
26398e8a7b6dSSamuel Ortiz
26408e8a7b6dSSamuel Ortiz### Network device backend
26418e8a7b6dSSamuel Ortiz
26428e8a7b6dSSamuel OrtizThe previous release provided support for
26438e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
26448e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
26458e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
26468e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
26478e8a7b6dSSamuel Ortiz
26488e8a7b6dSSamuel Ortiz### Virtual sockets
26498e8a7b6dSSamuel Ortiz
26508e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
26518e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
26528e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
26538e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
26548e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
26558e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
26568e8a7b6dSSamuel Ortiz
26578e8a7b6dSSamuel Ortiz### HTTP based API
26588e8a7b6dSSamuel Ortiz
26598e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
26608e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
26618e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
26628e8a7b6dSSamuel Ortiznext release cycle.
26638e8a7b6dSSamuel Ortiz
26648e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
26658e8a7b6dSSamuel Ortiz
26668e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
26678e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
26688e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
26698e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
26708e8a7b6dSSamuel Ortiz
26718e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
26728e8a7b6dSSamuel Ortiz
26738e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
267437a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
267537a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
26768e8a7b6dSSamuel Ortiz
26778e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
26788e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
26798e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
26808e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
26818e8a7b6dSSamuel Ortizsetting.
26828e8a7b6dSSamuel Ortiz
26838e8a7b6dSSamuel Ortiz### Ubuntu 19.10
26848e8a7b6dSSamuel Ortiz
26858ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
26868e8a7b6dSSamuel Ortizwe can now support the latest
26878e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
26888e8a7b6dSSamuel Ortiz
26898e8a7b6dSSamuel Ortiz### Large memory guests
26908e8a7b6dSSamuel Ortiz
26918e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
26928e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
26937688e6e2SSamuel Ortiz
2694d784ac29SSamuel Ortiz# v0.2.0
2695d784ac29SSamuel Ortiz
26968ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2697d784ac29SSamuel Ortiz
2698d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2699d784ac29SSamuel Ortiz
2700d784ac29SSamuel Ortiz### Network device offloading
2701d784ac29SSamuel Ortiz
2702d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2703d784ac29SSamuel Ortizprocesses, we added support for
2704d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2705d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2706d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2707d784ac29SSamuel Ortiz
2708d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2709d784ac29SSamuel Ortiz
2710d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2711d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2712d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2713d784ac29SSamuel Ortizcleanly reboot and shutdown.
2714d784ac29SSamuel Ortiz
2715d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2716d784ac29SSamuel Ortizenabled by default.
2717d784ac29SSamuel Ortiz
2718d784ac29SSamuel Ortiz### Debug I/O port
2719d784ac29SSamuel Ortiz
2720d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2721d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2722d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2723d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
272437a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
272537a2c13aSAlyssa Rossdetails.
2726d784ac29SSamuel Ortiz
2727d784ac29SSamuel Ortiz### Improved direct device assignment
2728d784ac29SSamuel Ortiz
2729d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2730d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2731d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2732d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2733d784ac29SSamuel Ortizdirectly assigned devices.
2734d784ac29SSamuel Ortiz
2735d784ac29SSamuel Ortiz### Improved shared filesystem
2736d784ac29SSamuel Ortiz
2737d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2738d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2739d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2740d784ac29SSamuel Ortizmemory footprint.
2741d784ac29SSamuel Ortiz
2742d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2743d784ac29SSamuel Ortiz
27448ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2745d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2746d784ac29SSamuel Ortizour CI pipeline.
2747d784ac29SSamuel Ortiz
274893b77530SSamuel Ortiz# v0.1.0
274993b77530SSamuel Ortiz
27508ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
275193b77530SSamuel Ortiz
275293b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
275393b77530SSamuel Ortiz
275493b77530SSamuel Ortiz### Shared filesystem
275593b77530SSamuel Ortiz
275693b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
275793b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
275893b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
275993b77530SSamuel Ortiz
276037a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
276137a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
276293b77530SSamuel Ortiz
276393b77530SSamuel Ortiz### Initial direct device assignment support
276493b77530SSamuel Ortiz
276593b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
276693b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
276793b77530SSamuel Ortizphysical devices into its guest.
276893b77530SSamuel Ortiz
276937a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
277037a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
277193b77530SSamuel Ortiz
277293b77530SSamuel Ortiz### Userspace IOAPIC
277393b77530SSamuel Ortiz
277493b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
277593b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
277693b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
277793b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
277893b77530SSamuel Ortiz
277993b77530SSamuel Ortiz### Virtual persistent memory
278093b77530SSamuel Ortiz
278193b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
278293b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
278393b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
278493b77530SSamuel Ortiz
278593b77530SSamuel Ortiz### Linux kernel bzImage
278693b77530SSamuel Ortiz
278793b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
278893b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
278993b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
279093b77530SSamuel Ortizdistribution kernel image.
279193b77530SSamuel Ortiz
279293b77530SSamuel Ortiz### Console over virtio
279393b77530SSamuel Ortiz
279493b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
279593b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
279693b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
279793b77530SSamuel Ortizimplementation.
279893b77530SSamuel Ortiz
279993b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
280093b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
280193b77530SSamuel Ortiz`--serial tty --console off` from the command line.
280293b77530SSamuel Ortiz
280393b77530SSamuel Ortiz### Unit testing
280493b77530SSamuel Ortiz
280593b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
280693b77530SSamuel Ortiz
280793b77530SSamuel Ortiz### Integration tests parallelization
280893b77530SSamuel Ortiz
280993b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
281093b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2811