xref: /cloud-hypervisor/release-notes.md (revision 5e702dcd5e28503d7e556ae84802a10d6acb70d1)
1*5e702dcdSBo Chen- [v37.0](#v370)
2*5e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
3*5e702dcdSBo Chen    - [Improved VFIO Device Passthrough with Multiple PCI Segments](#improved-vfio-device-passthrough-with-multiple-pci-segments)
4*5e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
5*5e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
6*5e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
7*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
8*5e702dcdSBo Chen    - [Contributors](#contributors)
9f5899d15SBo Chen- [v36.0](#v360)
10f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
11f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
12f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
13f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
14f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
15f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
16f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
17*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
18*5e702dcdSBo Chen    - [Contributors](#contributors-1)
19339912a5SBo Chen- [v35.0](#v350)
20339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
21339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
22339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
23*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
24*5e702dcdSBo Chen    - [Contributors](#contributors-2)
25487a43cdSRob Bradford- [v34.0](#v340)
26487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
27487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
28487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
29487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
30*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-3)
31*5e702dcdSBo Chen    - [Contributors](#contributors-3)
32487a43cdSRob Bradford- [v33.0](#v330)
33487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
34487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
35*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
36*5e702dcdSBo Chen    - [Contributors](#contributors-4)
3742ca292dSRob Bradford- [v32.0](#v320)
3842ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
3942ca292dSRob Bradford    - [API Changes](#api-changes)
40*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
41*5e702dcdSBo Chen    - [Contributors](#contributors-5)
4242ca292dSRob Bradford- [v31.1](#v311)
43f3522e85SMichael Zhao- [v31.0](#v310)
44f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
45f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
46f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
47f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
48f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
49*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
50*5e702dcdSBo Chen    - [Contributors](#contributors-6)
51ece0e6faSBo Chen- [v30.0](#v300)
52ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
53ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
54ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
55f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
56*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
57*5e702dcdSBo Chen    - [Contributors](#contributors-7)
58ece0e6faSBo Chen- [v28.2](#v282)
5922cf8c97SRob Bradford- [v29.0](#v290)
6022cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
6122cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
6222cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
6322cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
6422cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
6522cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
6622cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
67*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
6822cf8c97SRob Bradford    - [Removals](#removals)
6922cf8c97SRob Bradford    - [Deprecations](#deprecations)
70*5e702dcdSBo Chen    - [Contributors](#contributors-8)
7122cf8c97SRob Bradford- [v28.1](#v281)
7266460765SRob Bradford- [v28.0](#v280)
7366460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
74*5e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
7566460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
7666460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
7766460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
78*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-9)
7922cf8c97SRob Bradford    - [Removals](#removals-1)
80*5e702dcdSBo Chen    - [Contributors](#contributors-9)
812ba6a9bfSRob Bradford- [v27.0](#v270)
822ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
832ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
842ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
852ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
862ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
872ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
882ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
89*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-10)
90f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
91*5e702dcdSBo Chen    - [Contributors](#contributors-10)
92f3522e85SMichael Zhao- [v26.0](#v260)
93f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
94f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
95*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-11)
9622cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
9766460765SRob Bradford    - [Removals](#removals-2)
98*5e702dcdSBo Chen    - [Contributors](#contributors-11)
9922cf8c97SRob Bradford- [v25.0](#v250)
10022cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
10122cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
102*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-12)
10322cf8c97SRob Bradford    - [Removals](#removals-3)
104*5e702dcdSBo Chen    - [Contributors](#contributors-12)
1050150de55SSebastien Boeuf- [v24.0](#v240)
1060150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1070150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1080150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1090150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
110*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-13)
1110150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
11222cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1130150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
114*5e702dcdSBo Chen    - [Contributors](#contributors-13)
1150150de55SSebastien Boeuf- [v23.1](#v231)
1160c9c56f5SRob Bradford- [v23.0](#v230)
1170c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1180c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1190c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1200c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
121*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-14)
12222cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
123*5e702dcdSBo Chen    - [Contributors](#contributors-14)
1240c9c56f5SRob Bradford- [v22.1](#v221)
1256aa10938SRob Bradford- [v22.0](#v220)
1266aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1276aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1286aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1296aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1306aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1316aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1320c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1336aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
134*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-15)
135*5e702dcdSBo Chen    - [Contributors](#contributors-15)
13695ca7997SRob Bradford- [v21.0](#v210)
13795ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
13895ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
139*5e702dcdSBo Chen    - [Notable Bug fixes](#notable-bug-fixes-16)
140*5e702dcdSBo Chen    - [Contributors](#contributors-16)
14195ca7997SRob Bradford- [v20.2](#v202)
14295ca7997SRob Bradford- [v20.1](#v201)
1437fc0776aSSebastien Boeuf- [v20.0](#v200)
1447fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1457fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1467fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1477fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1487fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
149*5e702dcdSBo Chen    - [Notable bug fixes](#notable-bug-fixes-17)
150*5e702dcdSBo Chen    - [Contributors](#contributors-17)
151d00eb4aaSRob Bradford- [v19.0](#v190)
152d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
153d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
154d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
155d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
156d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
157d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
158*5e702dcdSBo Chen    - [Notable bug fixes](#notable-bug-fixes-18)
159*5e702dcdSBo Chen    - [Contributors](#contributors-18)
1602c4f8d22SRob Bradford- [v18.0](#v180)
1612c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1622c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1632c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1642c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1652c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1662c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1672c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1682c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
169*5e702dcdSBo Chen    - [Notable bug fixes](#notable-bug-fixes-19)
170*5e702dcdSBo Chen    - [Contributors](#contributors-19)
171e6db5999SRob Bradford- [v17.0](#v170)
172e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
173e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
174e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
175e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
176e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
177*5e702dcdSBo Chen    - [Notable bug fixes](#notable-bug-fixes-20)
178*5e702dcdSBo Chen    - [Contributors](#contributors-20)
1795ed8e01fSRob Bradford- [v16.0](#v160)
1805ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1815ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1825ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
183*5e702dcdSBo Chen    - [Notable bug fixes](#notable-bug-fixes-21)
1845ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
185*5e702dcdSBo Chen    - [Contributors](#contributors-21)
18630a01277SRob Bradford- [v15.0](#v150)
18730a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
18830a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
18930a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
190f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
19130a01277SRob Bradford    - [Bug fixes](#bug-fixes)
19222cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
193*5e702dcdSBo Chen    - [Contributors](#contributors-22)
19430a01277SRob Bradford- [v0.14.1](#v0141)
19540c63dcfSRob Bradford- [v0.14.0](#v0140)
19640c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
19740c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
19840c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
19940c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
20040c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
20140c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
20222cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
203*5e702dcdSBo Chen    - [Contributors](#contributors-23)
204f58b6f84SRob Bradford- [v0.13.0](#v0130)
205f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
20640c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
207f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
208f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
209f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
210f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
211*5e702dcdSBo Chen    - [Contributors](#contributors-24)
212d42b5084SRob Bradford- [v0.12.0](#v0120)
213d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
214d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
215d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
216d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
217*5e702dcdSBo Chen    - [Contributors](#contributors-25)
2187dcd3affSRob Bradford- [v0.11.0](#v0110)
2197dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2207dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2217dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
222d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2237dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2247dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2257dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2267dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
227f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2287dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
229*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-22)
230*5e702dcdSBo Chen    - [Contributors](#contributors-26)
231198bd551SRob Bradford- [v0.10.0](#v0100)
232198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
233198bd551SRob Bradford    - [Memory Zones](#memory-zones)
234198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
235198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
236*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-23)
237*5e702dcdSBo Chen    - [Contributors](#contributors-27)
238d714cf81SRob Bradford- [v0.9.0](#v090)
239d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
240d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
241d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
242d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
243d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
244d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
245d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
246d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
247d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
248d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
249198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
250*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-24)
251*5e702dcdSBo Chen    - [Contributors](#contributors-28)
252d714cf81SRob Bradford- [v0.8.0](#v080)
253d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
254d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
255d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
256d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
257d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
258*5e702dcdSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-25)
259d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
260*5e702dcdSBo Chen    - [Contributors](#contributors-29)
26196be8229SRob Bradford- [v0.7.0](#v070)
26296be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
26396be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
26496be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
26596be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
26696be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
26796be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
26896be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
26952b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
270*5e702dcdSBo Chen    - [Contributors](#contributors-30)
27103cb26ccSSamuel Ortiz- [v0.6.0](#v060)
27203cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
27303cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
27403cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
27503cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
27603cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
277*5e702dcdSBo Chen    - [Contributors](#contributors-31)
27894f2fc33SRob Bradford- [v0.5.1](#v051)
2792f395e60SSamuel Ortiz- [v0.5.0](#v050)
28094f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
28194f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
28294f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
28394f2fc33SRob Bradford    - [Development Tools](#development-tools)
28494f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
285*5e702dcdSBo Chen    - [Contributors](#contributors-32)
286cec884e8SSamuel Ortiz- [v0.4.0](#v040)
28794f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
28894f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
28994f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
29094f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
29194f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
29294f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
29394f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
294*5e702dcdSBo Chen    - [Contributors](#contributors-33)
2958e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
29694f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
29794f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
29894f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
29994f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
30094f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
30194f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
30294f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
30394f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3047688e6e2SSamuel Ortiz- [v0.2.0](#v020)
30594f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
30694f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
30794f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
30894f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
30994f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
31094f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3117688e6e2SSamuel Ortiz- [v0.1.0](#v010)
31294f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
31394f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
31494f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
31594f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
31694f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
31794f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
31894f2fc33SRob Bradford    - [Unit testing](#unit-testing)
31994f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
32094f2fc33SRob Bradford
321*5e702dcdSBo Chen# v37.0
322*5e702dcdSBo Chen
323*5e702dcdSBo ChenThis release has been tracked in our [roadmap
324*5e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
325*5e702dcdSBo Chenv37.0. The following user visible changes have been made:
326*5e702dcdSBo Chen
327*5e702dcdSBo Chen### Long Term Support (LTS) Release
328*5e702dcdSBo Chen
329*5e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
330*5e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
331*5e702dcdSBo Chensupported between the point releases of the LTS.
332*5e702dcdSBo Chen
333*5e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
334*5e702dcdSBo Chen
335*5e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
336*5e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
337*5e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
338*5e702dcdSBo Chen
339*5e702dcdSBo Chen### Configurable Named TAP Devices
340*5e702dcdSBo Chen
341*5e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
342*5e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
343*5e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
344*5e702dcdSBo Chen
345*5e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
346*5e702dcdSBo Chen
347*5e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
348*5e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
349*5e702dcdSBo Chenlegacy serial device without losing performance benefits of using
350*5e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
351*5e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
352*5e702dcdSBo Chen
353*5e702dcdSBo Chen### Faster VM Restoration from Snapshots
354*5e702dcdSBo Chen
355*5e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
356*5e702dcdSBo Chenimplementation of deserializing JSON files.
357*5e702dcdSBo Chen
358*5e702dcdSBo Chen### Notable Bug Fixes
359*5e702dcdSBo Chen
360*5e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
361*5e702dcdSBo Chen  disabled (#5930)
362*5e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
363*5e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
364*5e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
365*5e702dcdSBo Chen
366*5e702dcdSBo Chen### Contributors
367*5e702dcdSBo Chen
368*5e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
369*5e702dcdSBo Chen
370*5e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
371*5e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
372*5e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
373*5e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
374*5e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
375*5e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
376*5e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
377*5e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
378*5e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
379*5e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
380*5e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
381*5e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
382*5e702dcdSBo Chen
383f5899d15SBo Chen# v36.0
384f5899d15SBo Chen
385f5899d15SBo ChenThis release has been tracked in our [roadmap
386f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
387f5899d15SBo Chenv36.0. The following user visible changes have been made:
388f5899d15SBo Chen
389f5899d15SBo Chen### Command Line Changes
390f5899d15SBo Chen
391f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
392f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
393f5899d15SBo Chenchanges:
394f5899d15SBo Chen
395f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
396f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
397f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
398f5899d15SBo Chen
399f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
400f5899d15SBo Chen
401f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
402f5899d15SBo Chen
403f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
404f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
405f5899d15SBo Chen(`--version -v`).
406f5899d15SBo Chen
407f5899d15SBo Chen### NUMA Support for PCI segments
408f5899d15SBo Chen
409f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
410f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
411f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
412f5899d15SBo Chen
413f5899d15SBo Chen### CPU Topology Support on AMD Platforms
414f5899d15SBo Chen
415f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
416f5899d15SBo Chen
417f5899d15SBo Chen### Unix Socket Backend for Serial Port
418f5899d15SBo Chen
419f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
420f5899d15SBo Chenusers to access the serial port using a Unix socket.
421f5899d15SBo Chen
422f5899d15SBo Chen### AIO Backend for Block Devices
423f5899d15SBo Chen
424f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
425f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
426f5899d15SBo Chenhost Operating System.
427f5899d15SBo Chen
428f5899d15SBo Chen### Documentation Improvements
429f5899d15SBo Chen
430f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
431f5899d15SBo Chen* Various typo fixes
432f5899d15SBo Chen
433f5899d15SBo Chen### Notable Bug Fixes
434f5899d15SBo Chen
435f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
436f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
437f5899d15SBo Chen  enabled (#5834)
438f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
439f5899d15SBo Chen
440f5899d15SBo Chen### Contributors
441f5899d15SBo Chen
442f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
443f5899d15SBo Chen
444f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
445f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
446f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
447f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
448f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
449f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
450f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
451f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
452f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
453f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
454f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
455f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
456f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
457f5899d15SBo Chen
458339912a5SBo Chen# v35.0
459339912a5SBo Chen
460339912a5SBo ChenThis release has been tracked in our [roadmap
461339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
462339912a5SBo Chenv35.0. The following user visible changes have been made:
463339912a5SBo Chen
464339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
465339912a5SBo Chen
466339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
467339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
468339912a5SBo Chennow support both situations.
469339912a5SBo Chen
470339912a5SBo Chen### User Specified Serial Number for `virtio-block`
471339912a5SBo Chen
472339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
473339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
474339912a5SBo Chen
475339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
476339912a5SBo Chen
477339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
478339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
479339912a5SBo Chen
480339912a5SBo Chen### Notable Bug Fixes
481339912a5SBo Chen
482339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
483339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
484339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
485339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
486339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
487339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
488339912a5SBo Chen  (#5712, #5750, #5762, #5763)
489339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
490339912a5SBo Chen
491339912a5SBo Chen### Contributors
492339912a5SBo Chen
493339912a5SBo ChenMany thanks to everyone who has contributed to our release:
494339912a5SBo Chen
495339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
496339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
497339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
498339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
499339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
500339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
501339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
502339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
503339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
504339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
505339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
506339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
507339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
508339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
509339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
510339912a5SBo Chen
511487a43cdSRob Bradford# v34.0
512487a43cdSRob Bradford
513487a43cdSRob BradfordThis release has been tracked in our [roadmap
514487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
515487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
516487a43cdSRob Bradford
517487a43cdSRob Bradford### Paravirtualised Panic Device Support
518487a43cdSRob Bradford
519487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
520487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
521487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
522487a43cdSRob Bradford
523487a43cdSRob Bradford### Improvements to VM Core Dump
524487a43cdSRob Bradford
525487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
526487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
527487a43cdSRob Bradford
528487a43cdSRob Bradford### QCOW2 Support for Backing Files
529487a43cdSRob Bradford
530487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
531487a43cdSRob Bradfordbacking files. (#5573)
532487a43cdSRob Bradford
533487a43cdSRob Bradford### Minimum Host Kernel Bump
534487a43cdSRob Bradford
535487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
536487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
537487a43cdSRob Bradford
538487a43cdSRob Bradford### Notable Bug Fixes
539487a43cdSRob Bradford
540487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
541487a43cdSRob Bradford  carries out this job with KVM) (#5561).
542487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
543487a43cdSRob Bradford  than MSI-X (#5658).
544487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
545487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
546487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
547487a43cdSRob Bradford  when all vCPUs are paused (#5611).
548487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
549487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
550487a43cdSRob Bradford
551487a43cdSRob Bradford### Contributors
552487a43cdSRob Bradford
553487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
554487a43cdSRob Bradford
555487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
556487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
557487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
558487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
559487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
560487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
561487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
562487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
563487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
564487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
565487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
566487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
567487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
568487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
569487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
570487a43cdSRob Bradford
5716e0e6323SBo Chen# v33.0
5726e0e6323SBo Chen
5736e0e6323SBo ChenThis release has been tracked in our [roadmap
5746e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5756e0e6323SBo Chenv33.0. The following user visible changes have been made:
5766e0e6323SBo Chen
5776e0e6323SBo Chen### D-Bus based API
5786e0e6323SBo Chen
5796e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
5806e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
5816e0e6323SBo Chenfound in the [API documentation](docs/api.md).
5826e0e6323SBo Chen
5836e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
5846e0e6323SBo Chen
5856e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
5866e0e6323SBo Chenguest on AArch64.
5876e0e6323SBo Chen
5886e0e6323SBo Chen### Notable Bug Fixes
5896e0e6323SBo Chen
5906e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
5916e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
5926e0e6323SBo Chen* Fix TDX initialization (#5454)
5936e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
5946e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
5956e0e6323SBo Chen  (#5506, #5524)
5966e0e6323SBo Chen* Populate APIC ID properly (#5512)
5976e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
5986e0e6323SBo Chen
5996e0e6323SBo Chen### Contributors
6006e0e6323SBo Chen
6016e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
6026e0e6323SBo Chen
6036e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
6046e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
6056e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
6066e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
6076e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
6086e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
6096e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
6106e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
6116e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
6126e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
6136e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
6146e0e6323SBo Chen
61542ca292dSRob Bradford# v32.0
61642ca292dSRob Bradford
61742ca292dSRob BradfordThis release has been tracked in our [roadmap
61842ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
61942ca292dSRob Bradfordv32.0. The following user visible changes have been made:
62042ca292dSRob Bradford
62142ca292dSRob Bradford### Increased PCI Segment Limit
62242ca292dSRob Bradford
62342ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
62442ca292dSRob Bradford
62542ca292dSRob Bradford### API Changes
62642ca292dSRob Bradford
62742ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
62842ca292dSRob Bradford  (#5348)
62942ca292dSRob Bradford
63042ca292dSRob Bradford### Notable Bug Fixes
63142ca292dSRob Bradford
63242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
63342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
63442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
63542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
63642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
63742ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
63842ca292dSRob Bradford* Fixes for TTY reset (#5414)
63942ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
64042ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
64142ca292dSRob Bradford
64242ca292dSRob Bradford### Contributors
64342ca292dSRob Bradford
64442ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
64542ca292dSRob Bradford
64642ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
64742ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
64842ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
64942ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
65042ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
65142ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
65242ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
65342ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
65442ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
65542ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
65642ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
65742ca292dSRob Bradford
65842ca292dSRob Bradford# v31.1
65942ca292dSRob Bradford
66042ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
66142ca292dSRob Bradford
66242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
66342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
66442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
66542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
66642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
66742ca292dSRob Bradford
668f3522e85SMichael Zhao# v31.0
669f3522e85SMichael Zhao
670f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
671f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
672f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
673f3522e85SMichael Zhao
674f3522e85SMichael Zhao### Update to Latest `acpi_tables`
675f3522e85SMichael Zhao
676f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
677f3522e85SMichael ZhaoThere has been significant API changes in the crate.
678f3522e85SMichael Zhao
679f3522e85SMichael Zhao### Update Reference Kernel to 6.2
680f3522e85SMichael Zhao
681f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
682f3522e85SMichael Zhao
683f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
684f3522e85SMichael Zhao
685f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
686f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
687f3522e85SMichael Zhao
688f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
689f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
690f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
691f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
692f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
693f3522e85SMichael Zhao
694f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
695f3522e85SMichael Zhao
696f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
697f3522e85SMichael Zhao
698f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
699f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
700f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
701f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
702f3522e85SMichael Zhao
703f3522e85SMichael Zhao### Documentation Improvements
704f3522e85SMichael Zhao
705f3522e85SMichael Zhao* Various improvements in API document
706f3522e85SMichael Zhao* Improvements in Doc comments
707f3522e85SMichael Zhao* Updated Slack channel information in README
708f3522e85SMichael Zhao
709f3522e85SMichael Zhao### Notable Bug Fixes
710f3522e85SMichael Zhao
711f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
712f3522e85SMichael Zhao  client.
713f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
714f3522e85SMichael Zhao  endpoint.
715f3522e85SMichael Zhao
716f3522e85SMichael Zhao### Contributors
717f3522e85SMichael Zhao
718f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
719f3522e85SMichael Zhao
720f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
721f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
722f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
723f3522e85SMichael Zhao* Dom <peng6662001@163.com>
724f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
725f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
726f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
727f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
728f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
729f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
730f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
731f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
732f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
733f3522e85SMichael Zhao
734ece0e6faSBo Chen# v30.0
735ece0e6faSBo Chen
736ece0e6faSBo ChenThis release has been tracked in our [roadmap
737ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
738ece0e6faSBo Chenv30.0. The following user visible changes have been made:
739ece0e6faSBo Chen
740ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
741ece0e6faSBo Chen
742ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
743ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
744ece0e6faSBo Chenwere several syntax changes:
745ece0e6faSBo Chen
746ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
747ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
748ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
749ece0e6faSBo Chen
750ece0e6faSBo Chen### Basic vfio-user Server Support
751ece0e6faSBo Chen
752ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
753ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
754ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
755ece0e6faSBo Chen`rust-vmm` organization.
756ece0e6faSBo Chen
757ece0e6faSBo Chen### Heap Profiling Support
758ece0e6faSBo Chen
759ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
760ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
761ece0e6faSBo Chen
762ece0e6faSBo Chen### Documentation Improvements
763ece0e6faSBo Chen
764ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
765ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
766ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
767ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
768ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
769ece0e6faSBo Chenexisting 'profiling' documentation.
770ece0e6faSBo Chen
771ece0e6faSBo Chen### Notable Bug Fixes
772ece0e6faSBo Chen
773ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
774ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
775ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
776ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
777ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
778ece0e6faSBo Chen
779ece0e6faSBo Chen### Contributors
780ece0e6faSBo Chen
781ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
782ece0e6faSBo Chen
783ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
784ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
785ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
786ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
787ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
788ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
789ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
790ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
791ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
792ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
793ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
794ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
795ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
796ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
797ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
798ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
799ece0e6faSBo Chen
800ece0e6faSBo Chen# v28.2
801ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
802ece0e6faSBo Chen
803ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
804ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
805ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
806ece0e6faSBo Chen
80722cf8c97SRob Bradford# v29.0
80822cf8c97SRob Bradford
80922cf8c97SRob BradfordThis release has been tracked in our [roadmap
81022cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
81122cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
81222cf8c97SRob Bradford
81322cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
81422cf8c97SRob Bradford
81522cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
81622cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
81722cf8c97SRob Bradford
81822cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
81922cf8c97SRob Bradford
82022cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
82122cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
82222cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
82322cf8c97SRob Bradfordsupported but has worked for some versions.)
82422cf8c97SRob Bradford
82522cf8c97SRob Bradford### Heap Allocation Improvements
82622cf8c97SRob Bradford
82722cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
82822cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
82922cf8c97SRob Bradford
83022cf8c97SRob Bradford### `ch-remote` Improvements
83122cf8c97SRob Bradford
83222cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
83322cf8c97SRob Bradford`ch-remote`.
83422cf8c97SRob Bradford
83522cf8c97SRob Bradford### `AArch64` Documentation Integration
83622cf8c97SRob Bradford
83722cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
83822cf8c97SRob BradfordREADME.
83922cf8c97SRob Bradford
84022cf8c97SRob Bradford### `virtio-block` Counters Enhancement
84122cf8c97SRob Bradford
84222cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
84322cf8c97SRob Bradfordlatency counters.
84422cf8c97SRob Bradford
84522cf8c97SRob Bradford### TCP Offload Control
84622cf8c97SRob Bradford
84722cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
84822cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
84922cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
85022cf8c97SRob Bradford
85122cf8c97SRob Bradford### Notable Bug Fixes
85222cf8c97SRob Bradford
85322cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
85422cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
85522cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
85622cf8c97SRob Bradford  (#4924, #4949)
85722cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
85822cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
85922cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
86022cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
86122cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
86222cf8c97SRob Bradford
86322cf8c97SRob Bradford### Removals
86422cf8c97SRob Bradford
86522cf8c97SRob BradfordNo functionality has been removed in this release.
86622cf8c97SRob Bradford
86722cf8c97SRob Bradford### Deprecations
86822cf8c97SRob Bradford
86922cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
87022cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
87122cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
87222cf8c97SRob Bradford  (#5085)
87322cf8c97SRob Bradford
87422cf8c97SRob Bradford### Contributors
87522cf8c97SRob Bradford
87622cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
87722cf8c97SRob Bradford
87822cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
87922cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
88022cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
88122cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
88222cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
88322cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
88422cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
88522cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
88622cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
88722cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
88822cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
88922cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
89022cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
89122cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
89222cf8c97SRob Bradford
89322cf8c97SRob Bradford
89422cf8c97SRob Bradford# v28.1
89522cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
89622cf8c97SRob Bradford
89722cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
89822cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
89922cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
90022cf8c97SRob Bradford  (#4924, #4949)
90122cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
90222cf8c97SRob Bradford* Improve README and documentation
90322cf8c97SRob Bradford
90466460765SRob Bradford# v28.0
90566460765SRob Bradford
90666460765SRob BradfordThis release has been tracked in our new [roadmap
90766460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
90866460765SRob Bradfordv28.0.
90966460765SRob Bradford
91066460765SRob Bradford### Community Engagement (Reminder)
91166460765SRob Bradford
91266460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
91366460765SRob Bradforddiscussions.  Please consider
91466460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
91566460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
91666460765SRob BradfordHypervisor development.
91766460765SRob Bradford
91866460765SRob Bradford### Long Term Support (LTS) Release
91966460765SRob Bradford
92066460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
92166460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
92266460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
92366460765SRob Bradfordreleases of the LTS.
92466460765SRob Bradford
92566460765SRob Bradford### Virtualised TPM Support
92666460765SRob Bradford
92766460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
92866460765SRob Bradforddocumentation](docs/tpm.md).
92966460765SRob Bradford
93066460765SRob Bradford### Transparent Huge Page Support
93166460765SRob Bradford
93266460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
93366460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
93466460765SRob Bradfordthen this will be used resulting in improved boot performance.
93566460765SRob Bradford
93666460765SRob Bradford### README Quick Start Improved
93766460765SRob Bradford
93866460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
93966460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
94066460765SRob Bradford
94166460765SRob Bradford### Notable Bug Fixes
94266460765SRob Bradford
94366460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
94466460765SRob Bradford  memory consumption (#4835)
94566460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
94666460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
94766460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
94866460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
94966460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
95066460765SRob Bradford  newer Linux kernels (#4744)
95166460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
95266460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
95366460765SRob Bradford
95466460765SRob Bradford### Removals
95566460765SRob Bradford
95666460765SRob BradfordThe following functionality has been removed:
95766460765SRob Bradford
95866460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
95966460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
96066460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
96166460765SRob Bradford
96266460765SRob Bradford### Contributors
96366460765SRob Bradford
96466460765SRob BradfordMany thanks to everyone who has contributed to our release:
96566460765SRob Bradford
96666460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
96766460765SRob Bradford* Bo Chen <chen.bo@intel.com>
96866460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
96966460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
97066460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
97166460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
97266460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
97366460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
97466460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
97566460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
97666460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
97766460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
97866460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
97966460765SRob Bradford
9802ba6a9bfSRob Bradford# v27.0
9812ba6a9bfSRob Bradford
9822ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
9832ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
9842ba6a9bfSRob Bradfordv27.0.
9852ba6a9bfSRob Bradford
9862ba6a9bfSRob Bradford### Community Engagement
9872ba6a9bfSRob Bradford
9882ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
9892ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
9902ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
9912ba6a9bfSRob Bradford
9922ba6a9bfSRob Bradford### Prebuilt Packages
9932ba6a9bfSRob Bradford
9942ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
9952ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
9962ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
9972ba6a9bfSRob Bradfordfirmware options available.
9982ba6a9bfSRob Bradford
9992ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
10002ba6a9bfSRob Bradford
10012ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
10022ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
10032ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
10042ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
10052ba6a9bfSRob Bradford(#4658, #4676.)
10062ba6a9bfSRob Bradford
10072ba6a9bfSRob Bradford### Boot Tracing
10082ba6a9bfSRob Bradford
10092ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
10102ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
10112ba6a9bfSRob Bradford
10122ba6a9bfSRob Bradford### Simplified Build Feature Flags
10132ba6a9bfSRob Bradford
10142ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
10152ba6a9bfSRob Bradford
10162ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
10172ba6a9bfSRob Bradford  (with `kvm` enabled by default),
10182ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
10192ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
10202ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
10212ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
10222ba6a9bfSRob Bradford  feature) and dumping guest memory.
10232ba6a9bfSRob Bradford
10242ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
10252ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
10262ba6a9bfSRob Bradford
10272ba6a9bfSRob Bradford### Asynchronous Kernel Loading
10282ba6a9bfSRob Bradford
10292ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
10302ba6a9bfSRob Bradfordx86-64. (#4538)
10312ba6a9bfSRob Bradford
10322ba6a9bfSRob Bradford### GDB Support for AArch64
10332ba6a9bfSRob Bradford
10342ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
10352ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
10362ba6a9bfSRob Bradford
10372ba6a9bfSRob Bradford### Notable Bug Fixes
10382ba6a9bfSRob Bradford
10392ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
10402ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
10412ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
10422ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
10432ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
10442ba6a9bfSRob Bradford
10452ba6a9bfSRob Bradford### Deprecations
10462ba6a9bfSRob Bradford
10472ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
10482ba6a9bfSRob Bradfordplan to use alternatives.
10492ba6a9bfSRob Bradford
10502ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
10512ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
10522ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
10532ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
10542ba6a9bfSRob Bradford
10552ba6a9bfSRob Bradford### Contributors
10562ba6a9bfSRob Bradford
10572ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
10582ba6a9bfSRob Bradford
10592ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
10602ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
10612ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
10622ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
10632ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
10642ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
10652ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
10662ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
10672ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10682ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
10692ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
10702ba6a9bfSRob Bradford
1071ed9e54d6SRob Bradford# v26.0
1072ed9e54d6SRob Bradford
1073ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
1074ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
1075ed9e54d6SRob Bradford
1076ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1077ed9e54d6SRob Bradford
1078ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1079ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1080ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1081ed9e54d6SRob Bradford
1082ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1083ed9e54d6SRob Bradford
1084ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1085ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1086ed9e54d6SRob Bradford
1087ed9e54d6SRob Bradford### Notable Bug Fixes
1088ed9e54d6SRob Bradford
1089ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
10907bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1091ed9e54d6SRob Bradford  out (#4456)
1092ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1093ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1094ed9e54d6SRob Bradford  (#4269, #4293)
1095ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1096ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1097ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1098ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1099ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1100ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1101ed9e54d6SRob Bradford
1102ed9e54d6SRob Bradford### Deprecations
1103ed9e54d6SRob Bradford
1104ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1105ed9e54d6SRob Bradfordplan to use alternatives.
1106ed9e54d6SRob Bradford
1107ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1108ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1109ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1110ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1111ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1112ed9e54d6SRob Bradford
1113ed9e54d6SRob Bradford### Removals
1114ed9e54d6SRob Bradford
1115ed9e54d6SRob BradfordThe following functionality has been removed:
1116ed9e54d6SRob Bradford
1117ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
1118ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
1119ed9e54d6SRob Bradford  spawning feature (#4402.)
1120ed9e54d6SRob Bradford
1121ed9e54d6SRob Bradford### Contributors
1122ed9e54d6SRob Bradford
1123ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1124ed9e54d6SRob Bradford
1125ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1126ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1127ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1128ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1129ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1130ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1131ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1132ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1133ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1134ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1135ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1136ed9e54d6SRob Bradford
1137b132cd21SRob Bradford# v25.0
1138b132cd21SRob Bradford
1139b132cd21SRob BradfordThis release has been tracked through the [v25.0
1140b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
1141b132cd21SRob Bradford
1142b132cd21SRob Bradford### `ch-remote` Improvements
1143b132cd21SRob Bradford
1144b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1145b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1146b132cd21SRob Bradford
1147b132cd21SRob Bradford### VM "Coredump" Support
1148b132cd21SRob Bradford
1149b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1150b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1151b132cd21SRob Bradford
1152b132cd21SRob Bradford### Notable Bug Fixes
1153b132cd21SRob Bradford
1154b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1155b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1156b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1157b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1158b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1159b132cd21SRob Bradford  5.16 (#4156)
1160b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1161b132cd21SRob Bradford  Linux guest
1162b132cd21SRob Bradford
1163b132cd21SRob Bradford### Removals
1164b132cd21SRob Bradford
1165b132cd21SRob BradfordThe following functionality has been removed:
1166b132cd21SRob Bradford
1167b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1168b132cd21SRob Bradford  (#3968)
1169b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1170b132cd21SRob Bradford
1171b132cd21SRob Bradford### Contributors
1172b132cd21SRob Bradford
1173b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1174b132cd21SRob Bradford
1175b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1176b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1177b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1178b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1179b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1180b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1181b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1182b132cd21SRob Bradford
11830150de55SSebastien Boeuf# v24.0
11840150de55SSebastien Boeuf
11850150de55SSebastien BoeufThis release has been tracked through the [v24.0
11860150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
11870150de55SSebastien Boeuf
11880150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
11890150de55SSebastien Boeuf
11900150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
11910150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
11920150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
11930150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
11940150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
11950150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
11960150de55SSebastien Boeuf
11970150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
11980150de55SSebastien Boeuf
11990150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
12000150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
12010150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
12020150de55SSebastien Boeuf
12030150de55SSebastien Boeuf### Sparse Mmap support
12040150de55SSebastien Boeuf
12050150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
12060150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
12070150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
12080150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
12090150de55SSebastien Boeufimpacts the performance related to this device.
12100150de55SSebastien Boeuf
12110150de55SSebastien Boeuf### Expose Platform Serial Number
12120150de55SSebastien Boeuf
12130150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
12140150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
12150150de55SSebastien Boeufguest through the SMBIOS.
12160150de55SSebastien Boeuf
12170150de55SSebastien Boeuf### Notable Bug Fixes
12180150de55SSebastien Boeuf
12190150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
12200150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
12210150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
12220150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
12230150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
12240150de55SSebastien Boeuf
12250150de55SSebastien Boeuf### Notable Improvements
12260150de55SSebastien Boeuf
12270150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
12280150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
12290150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
12300150de55SSebastien Boeuf
12310150de55SSebastien Boeuf### Deprecations
12320150de55SSebastien Boeuf
12330150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
12340150de55SSebastien Boeufplan to use alternatives
12350150de55SSebastien Boeuf
12360150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
12370150de55SSebastien Boeuf  (#3968)
12380150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
12390150de55SSebastien Boeuf
12400150de55SSebastien Boeuf### New on the Website
12410150de55SSebastien Boeuf
12420150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
12430150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
12440150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
12450150de55SSebastien Boeuf
12460150de55SSebastien Boeuf### Contributors
12470150de55SSebastien Boeuf
12480150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
12490150de55SSebastien Boeuf
12500150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
12510150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
12520150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
12530150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
12540150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
12550150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
12560150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
12570150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
12580150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
12590150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
12600150de55SSebastien Boeuf
12610150de55SSebastien Boeuf# v23.1
12620150de55SSebastien Boeuf
12630150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
12640150de55SSebastien Boeuf
12650150de55SSebastien Boeuf* Add some missing seccomp rules
12660150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
12670150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
12680150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
12690150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
12700150de55SSebastien Boeuf
12710c9c56f5SRob Bradford# v23.0
12720c9c56f5SRob Bradford
12730c9c56f5SRob BradfordThis release has been tracked through the [v23.0
12740c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
12750c9c56f5SRob Bradford
12760c9c56f5SRob Bradford### vDPA Support
12770c9c56f5SRob Bradford
12780c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
12790c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
12800c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
12810c9c56f5SRob Bradford
12820c9c56f5SRob Bradford### Updated OS Support list
12830c9c56f5SRob Bradford
12840c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
12850c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
12860c9c56f5SRob Bradford
12870c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
12880c9c56f5SRob Bradford
12890c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
12900c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
12910c9c56f5SRob Bradfordallocated RAM. (#3938)
12920c9c56f5SRob Bradford
12930c9c56f5SRob Bradford### `AMX` Support
12940c9c56f5SRob Bradford
12950c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
12960c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
12970c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
12980c9c56f5SRob Bradford
12990c9c56f5SRob Bradford### Notable Bug Fixes
13000c9c56f5SRob Bradford
13010c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
13020c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
13030c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
13040c9c56f5SRob Bradford  `virtio-mem` (#3883)
13050c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
13060c9c56f5SRob Bradford  vIOMMU (#3870)
13070c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
13080c9c56f5SRob Bradford  (#3848)
13090c9c56f5SRob Bradford
13100c9c56f5SRob Bradford### Deprecations
13110c9c56f5SRob Bradford
13120c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
13130c9c56f5SRob Bradfordplan to use alternatives
13140c9c56f5SRob Bradford
13150c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
13160c9c56f5SRob Bradford  (#3968)
13170c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
13180c9c56f5SRob Bradford
13190c9c56f5SRob Bradford### Contributors
13200c9c56f5SRob Bradford
13210c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
13220c9c56f5SRob Bradford
13230c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
13240c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
13250c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
13260c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13270c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
13280c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
13290c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
13300c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13310c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
13320c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
13330c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
13340c9c56f5SRob Bradford
13350c9c56f5SRob Bradford# v22.1
13360c9c56f5SRob Bradford
13370c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
13380c9c56f5SRob Bradford
13390c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
13400c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
13410c9c56f5SRob Bradford
13426aa10938SRob Bradford# v22.0
13436aa10938SRob Bradford
13440c9c56f5SRob BradfordThis release has been tracked through the [v22.0
13450c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
13466aa10938SRob Bradford
13476aa10938SRob Bradford### GDB Debug Stub Support
13486aa10938SRob Bradford
13496aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
13506aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
13516aa10938SRob Bradfordthe [gdb
13526aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
13536aa10938SRob Bradford
13546aa10938SRob Bradford### `virtio-iommu` Backed Segments
13556aa10938SRob Bradford
13566aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
13576aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
13586aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
13596aa10938SRob Bradford
13606aa10938SRob Bradford### Before Boot Configuration Changes
13616aa10938SRob Bradford
13626aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
13636aa10938SRob Bradfordresize) before the VM is booted.
13646aa10938SRob Bradford
13656aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
13666aa10938SRob Bradford
13676aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
13686aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
13696aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
13706aa10938SRob Bradfordmemory density.
13716aa10938SRob Bradford
13726aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
13736aa10938SRob Bradford
13746aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
13756aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
13766aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
13776aa10938SRob Bradfordhas been updated for this usage.
13786aa10938SRob Bradford
13796aa10938SRob Bradford### PMU Support for AArch64
13806aa10938SRob Bradford
13816aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
13826aa10938SRob Bradfordexposed automatically if available from the host.
13836aa10938SRob Bradford
13840c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
13856aa10938SRob Bradford
13866aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
13876aa10938SRob BradfordInternational" license which is aligned with the project charter under the
13886aa10938SRob BradfordLinux Foundation.
13896aa10938SRob Bradford
13906aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
13916aa10938SRob Bradford
13926aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
13936aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
13946aa10938SRob Bradfordversion.
13956aa10938SRob Bradford
13966aa10938SRob Bradford### Notable Bug Fixes
13976aa10938SRob Bradford
13986aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
13996aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
14006aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
14016aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
14026aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
14036aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
14046aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
14056aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
14066aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
14076aa10938SRob Bradford
14086aa10938SRob Bradford### Contributors
14096aa10938SRob Bradford
14106aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
14116aa10938SRob Bradford
14126aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
14136aa10938SRob Bradford* Barret Rhoden <brho@google.com>
14146aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
14156aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
14166aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
14176aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
14186aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
14196aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
14206aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
14216aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
14226aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
14236aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
14246aa10938SRob Bradford
142595ca7997SRob Bradford# v21.0
142695ca7997SRob Bradford
142795ca7997SRob BradfordThis release has been tracked through the [v21.0
142895ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
142995ca7997SRob Bradford
143095ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
143195ca7997SRob Bradford
14326aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
14336aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
14346aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
14356aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
14366aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
143795ca7997SRob Bradford
143895ca7997SRob Bradford### Recommended Kernel is Now 5.15
143995ca7997SRob Bradford
14406aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
14416aa10938SRob Bradfordis now 5.15. (#3530)
144295ca7997SRob Bradford
144395ca7997SRob Bradford### Notable Bug fixes
144495ca7997SRob Bradford
14457bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
144695ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
144795ca7997SRob Bradford* Support live migration within firmware (#3586)
14487bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
144995ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
145095ca7997SRob Bradford
145195ca7997SRob Bradford### Contributors
145295ca7997SRob Bradford
145395ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
145495ca7997SRob Bradford
145595ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
145695ca7997SRob Bradford* Barret Rhoden <brho@google.com>
145795ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
145895ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
145995ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
146095ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
146195ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
146295ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
146395ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
146495ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
146595ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
146695ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
146795ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
146895ca7997SRob Bradford
146995ca7997SRob Bradford# v20.2
147095ca7997SRob Bradford
147195ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
147295ca7997SRob Bradford
147395ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
147495ca7997SRob Bradford  when this fails due to older kernel (#3456)
147595ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
147695ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
147795ca7997SRob Bradford  (#3496)
147895ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
147995ca7997SRob Bradford
148095ca7997SRob Bradford# v20.1
148195ca7997SRob Bradford
148295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
148395ca7997SRob Bradford
148495ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
148595ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
148695ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
148795ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
148895ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
148995ca7997SRob Bradford
14907fc0776aSSebastien Boeuf# v20.0
14917fc0776aSSebastien Boeuf
14927fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
14937fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
14947fc0776aSSebastien Boeuf
14957fc0776aSSebastien Boeuf### Multiple PCI segments support
14967fc0776aSSebastien Boeuf
14977fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
14987fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
14997fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
15007fc0776aSSebastien Boeuf
15017fc0776aSSebastien Boeuf### CPU pinning
15027fc0776aSSebastien Boeuf
15037fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
15047fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
15057fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
15067fc0776aSSebastien Boeuf
15077fc0776aSSebastien Boeuf### Improved VFIO support
15087fc0776aSSebastien Boeuf
15097fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
15107fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
15117fc0776aSSebastien Boeufthe passthrough device.
15127fc0776aSSebastien Boeuf
15137fc0776aSSebastien Boeuf### Safer code
15147fc0776aSSebastien Boeuf
15157fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
15167fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
15177fc0776aSSebastien Boeufunsafe sections are safe to use.
15187fc0776aSSebastien Boeuf
15197fc0776aSSebastien Boeuf### Extended documentation
15207fc0776aSSebastien Boeuf
15217fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
15227fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
15237fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
15247fc0776aSSebastien Boeuf
15257fc0776aSSebastien Boeuf### Notable bug fixes
15267fc0776aSSebastien Boeuf
15277fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
15287fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
15297fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
15307fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
15317fc0776aSSebastien Boeuf
15327fc0776aSSebastien Boeuf### Contributors
15337fc0776aSSebastien Boeuf
15347fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
15357fc0776aSSebastien Boeuf
15367fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
15377fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
15387fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
15397fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
15407fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
15417fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
15427fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
15437fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
15447fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
15457fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
15467fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
15477fc0776aSSebastien Boeuf
1548d00eb4aaSRob Bradford# v19.0
1549d00eb4aaSRob Bradford
1550d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1551d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1552d00eb4aaSRob Bradford
1553d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1554d00eb4aaSRob Bradford
1555d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1556d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1557d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1558d00eb4aaSRob Bradford
1559d00eb4aaSRob Bradford### PCI boot time optimisations
1560d00eb4aaSRob Bradford
1561d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1562d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1563d00eb4aaSRob Bradford
1564d00eb4aaSRob Bradford### Improved TDX support
1565d00eb4aaSRob Bradford
1566d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1567d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1568d00eb4aaSRob Bradford
1569d00eb4aaSRob Bradford### Live migration enhancements
1570d00eb4aaSRob Bradford
1571d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1572d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1573d00eb4aaSRob Bradfordmigration.
1574d00eb4aaSRob Bradford
1575d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1576d00eb4aaSRob Bradford
1577d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1578d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1579d00eb4aaSRob Bradford
1580d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1581d00eb4aaSRob Bradford
1582d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1583d00eb4aaSRob Bradford
1584d00eb4aaSRob Bradford### Notable bug fixes
1585d00eb4aaSRob Bradford
1586d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1587d00eb4aaSRob Bradford  snapshot/restore (#3165)
1588d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1589d00eb4aaSRob Bradford  (#3078 #3113)
1590d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1591d00eb4aaSRob Bradford  the underlying crate (#3157)
1592d00eb4aaSRob Bradford
1593d00eb4aaSRob Bradford### Contributors
1594d00eb4aaSRob Bradford
1595d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1596d00eb4aaSRob Bradford
1597d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1598d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1599d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1600d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1601d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1602d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1603d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1604d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1605d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1606d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1607d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1608d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1609d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1610d00eb4aaSRob Bradford
16112c4f8d22SRob Bradford# v18.0
16122c4f8d22SRob Bradford
16132c4f8d22SRob BradfordThis release has been tracked through the [v18.0
16142c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
16152c4f8d22SRob Bradford
16162c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
16172c4f8d22SRob Bradford
16182c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
16192c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
16202c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
16212c4f8d22SRob Bradford
16222c4f8d22SRob Bradford### Migration support for `vhost-user` devices
16232c4f8d22SRob Bradford
16242c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
16252c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
16262c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
16272c4f8d22SRob Bradford
16282c4f8d22SRob Bradford### VHDX disk image support
16292c4f8d22SRob Bradford
16302c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
16312c4f8d22SRob Bradford
16322c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
16332c4f8d22SRob Bradford
16342c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
16352c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
16362c4f8d22SRob Bradford
16372c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
16382c4f8d22SRob Bradford
16392c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
16402c4f8d22SRob Bradford
16412c4f8d22SRob Bradford### Live migration on MSHV hypervisor
16422c4f8d22SRob Bradford
16432c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
16442c4f8d22SRob Bradfordefficient tracking of dirty pages.
16452c4f8d22SRob Bradford
16462c4f8d22SRob Bradford### AArch64 CPU topology support
16472c4f8d22SRob Bradford
16482c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
16492c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
16502c4f8d22SRob Bradfordtree.
16512c4f8d22SRob Bradford
16522c4f8d22SRob Bradford### Power button support on AArch64
16532c4f8d22SRob Bradford
16542c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
16552c4f8d22SRob Bradfordis now supported when running on AArch64.
16562c4f8d22SRob Bradford
16572c4f8d22SRob Bradford### Notable bug fixes
16582c4f8d22SRob Bradford
16592c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
16602c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
16612c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
16622c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
16632c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
16642c4f8d22SRob Bradford
16652c4f8d22SRob Bradford### Contributors
16662c4f8d22SRob Bradford
16672c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
16682c4f8d22SRob Bradford
16692c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
16702c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
16712c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
16722c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
16732c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
16742c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
16752c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16762c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
16772c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
16782c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
16792c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
16802c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16812c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
16822c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1683e6db5999SRob Bradford
1684e6db5999SRob Bradford# v17.0
1685e6db5999SRob Bradford
1686e6db5999SRob BradfordThis release has been tracked through the [v17.0
1687e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1688e6db5999SRob Bradford
1689e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1690e6db5999SRob Bradford
1691e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1692e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1693e6db5999SRob Bradford
1694e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1695e6db5999SRob Bradford
1696e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1697e6db5999SRob Bradfordhypervisor backend.
1698e6db5999SRob Bradford
1699e6db5999SRob Bradford### Hotplug of `macvtap` devices
1700e6db5999SRob Bradford
1701e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1702e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1703e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1704e6db5999SRob Bradford
1705e6db5999SRob Bradford### Improved SGX support
1706e6db5999SRob Bradford
1707e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1708e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1709e6db5999SRob Bradford
1710e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1711e6db5999SRob Bradford
1712e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1713e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1714e6db5999SRob Bradford
1715e6db5999SRob Bradford### Notable bug fixes
1716e6db5999SRob Bradford
1717e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1718e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1719e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1720e6db5999SRob Bradford(#2833).
1721e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1722e6db5999SRob Bradford
1723e6db5999SRob Bradford### Contributors
1724e6db5999SRob Bradford
1725e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1726e6db5999SRob Bradford
1727e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1728e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1729e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1730e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1731e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1732e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1733e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1734e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1735e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1736e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1737e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1738e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1739e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1740e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1741e6db5999SRob Bradford
17425ed8e01fSRob Bradford# v16.0
17435ed8e01fSRob Bradford
17445ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
17455ed8e01fSRob Bradford
17465ed8e01fSRob Bradford### Improved live migration support
17475ed8e01fSRob Bradford
17485ed8e01fSRob 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.
17495ed8e01fSRob Bradford
17505ed8e01fSRob Bradford### Improved `vhost-user` support
17515ed8e01fSRob Bradford
17525ed8e01fSRob 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.
17535ed8e01fSRob Bradford
17545ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
17555ed8e01fSRob Bradford
17565ed8e01fSRob 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.
17575ed8e01fSRob Bradford
17585ed8e01fSRob Bradford### Notable bug fixes
17595ed8e01fSRob Bradford
17605ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
17615ed8e01fSRob 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).
17625ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
17635ed8e01fSRob Bradford
17645ed8e01fSRob Bradford### Removed functionality
17655ed8e01fSRob Bradford
17665ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
17675ed8e01fSRob Bradford
17685ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
17695ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
17705ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
17715ed8e01fSRob Bradford
17725ed8e01fSRob Bradford### Contributors
17735ed8e01fSRob Bradford
17745ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
17755ed8e01fSRob Bradford
17765ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
17775ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
17785ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
17795ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
17805ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
17815ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17825ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
17835ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
17845ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
17855ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
17865ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
17875ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17885ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
17895ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
17905ed8e01fSRob Bradford
179130a01277SRob Bradford# v15.0
179230a01277SRob Bradford
179330a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
179430a01277SRob Bradford
179530a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
179630a01277SRob Bradford
179730a01277SRob Bradford### Version numbering and stability guarantees
179830a01277SRob Bradford
179930a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
180030a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
180130a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
180230a01277SRob Bradford
180330a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
180430a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
180530a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
180630a01277SRob Bradford  will be documented in the release notes.
180730a01277SRob Bradford* Point releases will be made between individual releases where there are
180830a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
180930a01277SRob Bradford
181030a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
181130a01277SRob Bradford
181230a01277SRob Bradford* Snapshot/restore is not supported across different versions
181330a01277SRob Bradford* Live migration is not supported across different versions
181430a01277SRob Bradford* The following features are considered experimental and may change
181530a01277SRob Bradford  substantially between releases: TDX, SGX.
181630a01277SRob Bradford
181730a01277SRob Bradford### Network device rate limiting
181830a01277SRob Bradford
181930a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
182030a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
182130a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
182230a01277SRob Bradford
182330a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
182430a01277SRob Bradford
182530a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
182630a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
182730a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
182830a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
182930a01277SRob Bradford
183030a01277SRob Bradford### `--api-socket` supports file descriptor parameter
183130a01277SRob Bradford
183230a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
183330a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
183430a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
183530a01277SRob Bradford
183630a01277SRob Bradford### Bug fixes
183730a01277SRob Bradford
183830a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
183930a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
184030a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
184130a01277SRob Bradford  reprogram them (#1797,#1798)
184230a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
184330a01277SRob Bradford  exhaustion on the host) (#2517)
184430a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
184530a01277SRob Bradford  prevents snapshot & restore working (#2535)
184630a01277SRob Bradford
184730a01277SRob Bradford### Deprecations
184830a01277SRob Bradford
184930a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
185030a01277SRob Bradford
185130a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
185230a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
185330a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
185430a01277SRob Bradford
185530a01277SRob Bradford### Contributors
185630a01277SRob Bradford
185730a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
185830a01277SRob Bradford
185930a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
186030a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
186130a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
186230a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
186330a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
186430a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
186530a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
186630a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
186730a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
186830a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
186930a01277SRob Bradford* William Douglas <william.douglas@intel.com>
187030a01277SRob Bradford
187130a01277SRob Bradford# v0.14.1
187230a01277SRob Bradford
187330a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
187430a01277SRob Bradfordin this release:
187530a01277SRob Bradford
187630a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
187730a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
187830a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
187930a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
188030a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
188130a01277SRob Bradford
188240c63dcfSRob Bradford# v0.14.0
188340c63dcfSRob Bradford
188440c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
188540c63dcfSRob Bradford
188640c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
188740c63dcfSRob Bradford
188840c63dcfSRob Bradford### Structured event monitoring
188940c63dcfSRob Bradford
189040c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
189140c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
189240c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
189340c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
189440c63dcfSRob BradfordHypervisor API surface.
189540c63dcfSRob Bradford
189640c63dcfSRob Bradford### MSHV improvements
189740c63dcfSRob Bradford
189840c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
189940c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
190040c63dcfSRob Bradfordthe MSHV support.
190140c63dcfSRob Bradford
190240c63dcfSRob Bradford### Improved aarch64 platform
190340c63dcfSRob Bradford
190440c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
190540c63dcfSRob BradfordVM including an enhanced serial UART.
190640c63dcfSRob Bradford
190740c63dcfSRob Bradford### Updated hotplug documentation
190840c63dcfSRob Bradford
190940c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
191040c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
191140c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
191240c63dcfSRob Bradford
191340c63dcfSRob Bradford### PTY control for serial and `virtio-console`
191440c63dcfSRob Bradford
191540c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
191640c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
191740c63dcfSRob BradfordPTY subsystem.
191840c63dcfSRob Bradford
191940c63dcfSRob Bradford### Block device rate limiting
192040c63dcfSRob Bradford
192140c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
192240c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
192330a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
192440c63dcfSRob Bradford
192540c63dcfSRob Bradford
192640c63dcfSRob Bradford### Deprecations
192740c63dcfSRob Bradford
192840c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
192940c63dcfSRob Bradford
193040c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
193140c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
193240c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
193340c63dcfSRob Bradford
193440c63dcfSRob Bradford
193540c63dcfSRob Bradford### Contributors
193640c63dcfSRob Bradford
193740c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
193840c63dcfSRob Bradfordsome new faces.
193940c63dcfSRob Bradford
194040c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
194140c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
194240c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
194340c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
194440c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
194540c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
194640c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
194740c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
194840c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
194940c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
195040c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
195140c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
195240c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
195340c63dcfSRob Bradford
1954f58b6f84SRob Bradford# v0.13.0
1955f58b6f84SRob Bradford
1956f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1957f58b6f84SRob Bradford
1958f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1959f58b6f84SRob Bradford
1960f58b6f84SRob Bradford### Wider VFIO device support
1961f58b6f84SRob Bradford
1962f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1963f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1964f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1965f58b6f84SRob Bradforddrivers.
1966f58b6f84SRob Bradford
196740c63dcfSRob Bradford### Improved huge page support
1968f58b6f84SRob Bradford
1969f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1970f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1971f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1972f58b6f84SRob Bradforddesired size in their pool.
1973f58b6f84SRob Bradford
1974f58b6f84SRob Bradford### MACvTAP support
1975f58b6f84SRob Bradford
1976f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1977f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1978f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1979f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1980f58b6f84SRob Bradford
1981f58b6f84SRob Bradford### VHD disk image support
1982f58b6f84SRob Bradford
1983f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1984f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1985f58b6f84SRob Bradford
1986f58b6f84SRob Bradford### Improved Virtio device threading
1987f58b6f84SRob Bradford
1988f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1989f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1990f58b6f84SRob Bradfordpredictable name derived from the device id.
1991f58b6f84SRob Bradford
1992f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1993f58b6f84SRob Bradford
1994f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1995f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1996f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1997f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1998f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1999f58b6f84SRob Bradford
2000f58b6f84SRob Bradford### Contributors
2001f58b6f84SRob Bradford
2002f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2003f58b6f84SRob Bradfordsome new faces.
2004f58b6f84SRob Bradford
2005f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2006f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2007f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2008f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2009f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2010f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2011f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2012f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2013f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2014f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2015f58b6f84SRob Bradford
2016d42b5084SRob Bradford# v0.12.0
2017d42b5084SRob Bradford
2018d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
2019d42b5084SRob Bradford
2020d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2021d42b5084SRob Bradford
2022d42b5084SRob Bradford### ARM64 enhancements
2023d42b5084SRob Bradford
2024d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2025d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2026d42b5084SRob Bradford
2027d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2028d42b5084SRob Bradford
2029d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2030d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2031d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2032d42b5084SRob Bradfordremoved.
2033d42b5084SRob Bradford
2034d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2035d42b5084SRob Bradford
2036d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
2037d42b5084SRob Bradfordinstead hosted in [it's own
2038d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2039d42b5084SRob Bradford
2040d42b5084SRob Bradford### Enhanced "info" API
2041d42b5084SRob Bradford
2042d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2043d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2044d42b5084SRob Bradford
2045d42b5084SRob Bradford### Contributors
2046d42b5084SRob Bradford
2047d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2048d42b5084SRob Bradford
2049d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2050d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2051d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2052d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2053d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2054d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2055d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2056d42b5084SRob Bradford
20577dcd3affSRob Bradford# v0.11.0
20587dcd3affSRob Bradford
20597dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
20607dcd3affSRob Bradford
20617dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
20627dcd3affSRob Bradford
20637dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
20647dcd3affSRob Bradford
20657dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
20667dcd3affSRob Bradfordbe used for a significantly higher performance block device.
20677dcd3affSRob Bradford
20687dcd3affSRob Bradford### Windows Guest Support
20697dcd3affSRob Bradford
20707dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
20717dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
20727dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
20737dcd3affSRob Bradforddocumentation](docs/windows.md).
20747dcd3affSRob Bradford
20757dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
20767dcd3affSRob Bradford
20777dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
20787dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
20797dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
20807dcd3affSRob Bradford
2081d00eb4aaSRob Bradford### `virtio-mmio` Removal
20827dcd3affSRob Bradford
20837dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
20847dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
20857dcd3affSRob Bradfordreduce the testing burden of the project.
20867dcd3affSRob Bradford
20877dcd3affSRob Bradford### Snapshot/Restore support for ARM64
20887dcd3affSRob Bradford
20897dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
20907dcd3affSRob Bradfordimplemented.
20917dcd3affSRob Bradford
20927dcd3affSRob Bradford### Improved Linux Boot Time
20937dcd3affSRob Bradford
20947dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
20957dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
20967dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
20977dcd3affSRob Bradford
20987dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
20997dcd3affSRob Bradford
21007dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
21017dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
21027dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
21037dcd3affSRob Bradfordresources.
21047dcd3affSRob Bradford
21057dcd3affSRob Bradford### Default Log Level Changed
21067dcd3affSRob Bradford
21077dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
21087dcd3affSRob Bradfordeasier to see potential issues. New [logging
21097dcd3affSRob Bradforddocumentation](docs/logging) was also added.
21107dcd3affSRob Bradford
21117dcd3affSRob Bradford### New `--balloon` Parameter Added
21127dcd3affSRob Bradford
21137dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
21147dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
21157dcd3affSRob Bradfordcontrols without overloading `--memory`.
21167dcd3affSRob Bradford
21177dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
21187dcd3affSRob Bradford
21197dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
21207dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
21217dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
21227dcd3affSRob Bradford
21237dcd3affSRob Bradford### Notable Bug Fixes
21247dcd3affSRob Bradford
21257dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
21267dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
21277dcd3affSRob Bradford* CPU identification string is now exposed to the guest
21287dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
21297dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
21307dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
21317dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
21327dcd3affSRob Bradford  can be used (#1803)
21337dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
21347dcd3affSRob Bradford  correctly
21357dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
21367dcd3affSRob Bradford  correctly
21377dcd3affSRob Bradford
21387dcd3affSRob Bradford### Contributors
21397dcd3affSRob Bradford
21407dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
21417dcd3affSRob Bradford
21427dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
21437dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
21447dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
21457dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
21467dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
21477dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
21487dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
21497dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
21507dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
21517dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
21527dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
21537dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
21547dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
21557dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
21567dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
21577dcd3affSRob Bradford
21587dcd3affSRob Bradford
2159198bd551SRob Bradford# v0.10.0
2160198bd551SRob Bradford
2161198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2162198bd551SRob Bradford
2163198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2164198bd551SRob Bradford
2165198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2166198bd551SRob Bradford
2167198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2168198bd551SRob Bradford
2169198bd551SRob Bradford### Memory Zones
2170198bd551SRob Bradford
2171198bd551SRob 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).
2172198bd551SRob Bradford
2173198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2174198bd551SRob Bradford
2175198bd551SRob 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`.
2176198bd551SRob Bradford
2177198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2178198bd551SRob Bradford
2179198bd551SRob 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.
2180198bd551SRob Bradford
2181198bd551SRob Bradford### Notable Bug Fixes
2182198bd551SRob Bradford
2183198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2184198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2185198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2186198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2187198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2188198bd551SRob Bradford
2189198bd551SRob Bradford### Contributors
2190198bd551SRob Bradford
2191198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2192198bd551SRob Bradford
2193198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2194198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2195198bd551SRob Bradford* Anatol Belski <ab@php.net>
2196198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2197198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2198198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2199198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2200198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2201198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2202198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2203198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2204198bd551SRob Bradford
2205d714cf81SRob Bradford# v0.9.0
2206d714cf81SRob Bradford
2207d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2208d714cf81SRob Bradford
2209d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2210d714cf81SRob Bradford
2211d714cf81SRob Bradford### `io_uring` Based Block Device Support
2212d714cf81SRob Bradford
2213d714cf81SRob 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.
2214d714cf81SRob Bradford
2215d714cf81SRob Bradford### Block and Network Device Statistics
2216d714cf81SRob Bradford
2217d714cf81SRob 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.
2218d714cf81SRob Bradford
2219d714cf81SRob Bradford### HTTP API Responses
2220d714cf81SRob Bradford
2221d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2222d714cf81SRob Bradford
2223d714cf81SRob Bradford### CPU Topology
2224d714cf81SRob Bradford
2225d714cf81SRob 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.
2226d714cf81SRob Bradford
2227d714cf81SRob Bradford### Release Build Optimization
2228d714cf81SRob Bradford
2229d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2230d714cf81SRob Bradford
2231d714cf81SRob Bradford### Hypervisor Abstraction
2232d714cf81SRob Bradford
2233d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2234d714cf81SRob Bradford
2235d714cf81SRob Bradford### Snapshot/Restore Improvements
2236d714cf81SRob Bradford
2237d714cf81SRob 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.
2238d714cf81SRob Bradford
2239d714cf81SRob Bradford### Virtio Memory Ballooning Support
2240d714cf81SRob Bradford
2241d714cf81SRob 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.
2242d714cf81SRob Bradford
2243d714cf81SRob Bradford### Enhancements to ARM64 Support
2244d714cf81SRob Bradford
2245d714cf81SRob 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.
2246d714cf81SRob Bradford
2247d714cf81SRob Bradford### Intel SGX Support
2248d714cf81SRob Bradford
2249d714cf81SRob 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).
2250d714cf81SRob Bradford
2251d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2252d714cf81SRob Bradford
2253d714cf81SRob 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.
2254d714cf81SRob Bradford
2255d714cf81SRob Bradford### Notable Bug Fixes
2256d714cf81SRob Bradford
2257d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2258d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2259d714cf81SRob 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).
2260d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2261d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2262d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2263d714cf81SRob Bradford
2264d714cf81SRob Bradford### Contributors
2265d714cf81SRob Bradford
2266d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2267d714cf81SRob Bradford
2268d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2269d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2270d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2271d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2272d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2273d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2274d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2275d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2276d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2277d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2278d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2279d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2280d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2281d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2282d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2283d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2284d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2285d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2286d714cf81SRob Bradford
2287d714cf81SRob Bradford
228852b83969SRob Bradford# v0.8.0
228952b83969SRob Bradford
229052b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
229152b83969SRob Bradford
229252b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
229352b83969SRob Bradford
229452b83969SRob Bradford### Experimental Snapshot and Restore Support
229552b83969SRob Bradford
229652b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
229752b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
229852b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
229952b83969SRob Bradfordoriginal VM at the point it was paused.
230052b83969SRob Bradford
230152b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
230252b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
230352b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
230452b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
230552b83969SRob Bradford(#1176).
230652b83969SRob Bradford
230752b83969SRob Bradford### Experimental ARM64 Support
230852b83969SRob Bradford
230952b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
231052b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
231152b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
231252b83969SRob Bradford
231352b83969SRob Bradford### Support for Using 5-level Paging in Guests
231452b83969SRob Bradford
231552b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
231652b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
231752b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
231852b83969SRob Bradfordwork due to current limitations in the PVH boot process.
231952b83969SRob Bradford
232052b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
232152b83969SRob Bradford
232252b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
232352b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
232452b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
232552b83969SRob Bradfordthe guest must service.
232652b83969SRob Bradford
232752b83969SRob Bradford### `vhost_user_fs` Improvements
232852b83969SRob Bradford
232952b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
233052b83969SRob Bradford
233152b83969SRob Bradford
233252b83969SRob Bradford### Notable Bug Fixes
233352b83969SRob Bradford
233452b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
233552b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
233652b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
233752b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
233852b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
233952b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
234052b83969SRob Bradford  #1216).
234152b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
234252b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
234352b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
234452b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
234552b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
234652b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
234752b83969SRob Bradford  (#751).
234852b83969SRob Bradford
234952b83969SRob Bradford### Command Line and API Changes
235052b83969SRob Bradford
235152b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
235252b83969SRob Bradford
235352b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
235452b83969SRob Bradford  rather than `sock` in some cases.
235552b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
235652b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
235752b83969SRob Bradford  offered for negotiation.
235852b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
235952b83969SRob Bradford  address for the `tap` device on the host.
236052b83969SRob Bradford
236152b83969SRob Bradford### Contributors
236252b83969SRob Bradford
236352b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
236452b83969SRob Bradford
236552b83969SRob Bradford* Anatol Belski <ab@php.net>
236652b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
236752b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
236852b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
236952b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
237052b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
237152b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
237252b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
237352b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
237452b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
237552b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
237652b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
237752b83969SRob Bradford
237896be8229SRob Bradford# v0.7.0
237996be8229SRob Bradford
238096be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
238196be8229SRob Bradford
238296be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
238396be8229SRob Bradford
238496be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
238596be8229SRob Bradford
238696be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
238796be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
238896be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
23895c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
239096be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
239196be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
239296be8229SRob Bradforddevices to ease their removal.
239396be8229SRob Bradford
239496be8229SRob Bradford### Alternative `libc` Support
239596be8229SRob Bradford
239696be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
239796be8229SRob Bradfordcontains a static binary compiled using that toolchain.
239896be8229SRob Bradford
239996be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
240096be8229SRob Bradford
240196be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
240296be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
240396be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
240496be8229SRob Bradfordis passed when the devices are created.
240596be8229SRob Bradford
240696be8229SRob Bradford### Initial RamFS Support
240796be8229SRob Bradford
240896be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
240996be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
241096be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
241196be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
241296be8229SRob Bradfordminimal image.
241396be8229SRob Bradford
241496be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
241596be8229SRob Bradford
241696be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
241796be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
241896be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
241996be8229SRob Bradfordrequires kernel patches to be able to support it.
242096be8229SRob Bradford
242196be8229SRob Bradford### `Seccomp` Sandboxing
242296be8229SRob Bradford
242396be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
242496be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
242596be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
242696be8229SRob Bradford
242796be8229SRob Bradford### Updated Distribution Support
242896be8229SRob Bradford
242996be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
243096be8229SRob Bradforddistributions and is part of our regular testing programme.
243196be8229SRob Bradford
243296be8229SRob Bradford### Command Line and API Changes
243396be8229SRob Bradford
243496be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
243596be8229SRob Bradford
243696be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
243796be8229SRob Bradford  If no name is specified the VMM chooses one.
243896be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
243996be8229SRob Bradford  memory instead of providing a path.
244096be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
244196be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
244296be8229SRob Bradford  option and replaced it with a single optional field.
244396be8229SRob Bradford* There is enhanced validation of the command line and API provided
244496be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
244596be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
244696be8229SRob Bradford  device.
244796be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
244896be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
244996be8229SRob Bradford  has appropriate new HTTP endpoints too.
245096be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
245196be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
245296be8229SRob Bradford  to provide the equivalent of a read-only file.
245396be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
245496be8229SRob Bradford  with those used by `--disk`.
245596be8229SRob Bradford
245696be8229SRob Bradford### Contributors
245796be8229SRob Bradford
245896be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
245996be8229SRob Bradford
246096be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
246196be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
246296be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
246396be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
246496be8229SRob Bradford* Dean Sheather <dean@coder.com>
246596be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
246696be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
246796be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
246896be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
246996be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
247096be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
247196be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
247296be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
247396be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
247496be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
247596be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
247696be8229SRob Bradford
247703cb26ccSSamuel Ortiz# v0.6.0
247803cb26ccSSamuel Ortiz
247903cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
248003cb26ccSSamuel Ortiz
248103cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
248203cb26ccSSamuel Ortiz
248303cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
248403cb26ccSSamuel Ortiz
248503cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
248603cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
248703cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
248803cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
248903cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
249003cb26ccSSamuel Ortiz
249103cb26ccSSamuel Ortiz### Shared Filesystem Improvements
249203cb26ccSSamuel Ortiz
249303cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
249403cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
249503cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
249603cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
249703cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
249803cb26ccSSamuel Ortiz
249903cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
250003cb26ccSSamuel Ortiz
250103cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
250203cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
250303cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
250403cb26ccSSamuel Ortizinto their own, separate processes.
25055c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
250603cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
250703cb26ccSSamuel Ortiz
250803cb26ccSSamuel Ortiz### Command Line Interface
250903cb26ccSSamuel Ortiz
251003cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
251137a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
251237a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
251337a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
251437a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
251537a2c13aSAlyssa Rossis created with each build and available e.g. at
251603cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
251703cb26ccSSamuel Ortiz
251803cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
251903cb26ccSSamuel Ortizcommands.
252003cb26ccSSamuel Ortiz
252103cb26ccSSamuel Ortiz### PVH Boot
252203cb26ccSSamuel Ortiz
252303cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
252403cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
252503cb26ccSSamuel Ortiz
252603cb26ccSSamuel Ortiz### Contributors
252703cb26ccSSamuel Ortiz
252803cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
252903cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
253003cb26ccSSamuel Ortiz
253103cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
253203cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
253303cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
253403cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
253503cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
253603cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
253703cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
253803cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
253903cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
254003cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
254103cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
254203cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
254303cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
254403cb26ccSSamuel Ortiz
254594f2fc33SRob Bradford# v0.5.1
254694f2fc33SRob Bradford
254794f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
254894f2fc33SRob Bradford
254994f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
255094f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
255194f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
255294f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
255394f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
25548e8a7b6dSSamuel Ortiz
25552f395e60SSamuel Ortiz# v0.5.0
25562f395e60SSamuel Ortiz
25572f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
25582f395e60SSamuel Ortiz
25592f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
25602f395e60SSamuel Ortiz
25612f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
25622f395e60SSamuel Ortiz
25632f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
25642f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
25652f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
25662f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
25672f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
25682f395e60SSamuel Ortiz
25692f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
25702f395e60SSamuel Ortiz
25712f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
25722f395e60SSamuel Ortiz
25732f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
25742f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
25752f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
25762f395e60SSamuel Ortiz
25772f395e60SSamuel Ortiz### New Interrupt Management Framework
25782f395e60SSamuel Ortiz
25792f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
25802f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
25812f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
25822f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
25832f395e60SSamuel Ortizvirtio ones.
25842f395e60SSamuel Ortiz
25852f395e60SSamuel Ortiz### Development Tools
25862f395e60SSamuel Ortiz
25872f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
25882f395e60SSamuel Ortizbuild, development and testing tools.
25892f395e60SSamuel OrtizSomehow similar to the excellent
25902f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
259137a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
25922f395e60SSamuel Ortiz
25932f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
25942f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
25952f395e60SSamuel Ortiz
25962f395e60SSamuel Ortiz### Kata Containers Integration
25972f395e60SSamuel Ortiz
25982f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
25992f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
26002f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
26012f395e60SSamuel Ortizintegrated into the project's CI.
26022f395e60SSamuel Ortiz
26032f395e60SSamuel Ortiz### Contributors
26042f395e60SSamuel Ortiz
26052f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
26062f395e60SSamuel Ortiz
26072f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
26082f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
26092f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
26102f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
26112f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
26122f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
26132f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
26142f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
26152f395e60SSamuel Ortiz
2616cec884e8SSamuel Ortiz# v0.4.0
2617cec884e8SSamuel Ortiz
2618cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2619cec884e8SSamuel Ortiz
2620cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2621cec884e8SSamuel Ortiz
2622cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2623cec884e8SSamuel Ortiz
2624e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2625cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2626cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2627cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
262837a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2629cec884e8SSamuel Ortiz
2630cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2631cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2632cec884e8SSamuel Ortiz
2633cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2634cec884e8SSamuel Ortiz
2635cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2636cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2637cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2638cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2639cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2640cec884e8SSamuel Ortiz
2641cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2642cec884e8SSamuel Ortiz
2643cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2644cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2645cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2646cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2647cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2648cec884e8SSamuel Ortiz
2649cec884e8SSamuel Ortiz### Guest pause and resume
2650cec884e8SSamuel Ortiz
26515c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2652cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2653cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2654cec884e8SSamuel Ortizand resume capabilities.
2655cec884e8SSamuel Ortiz
2656cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2657cec884e8SSamuel Ortiz
2658cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2659cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2660cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2661cec884e8SSamuel Ortizdefault.
2662cec884e8SSamuel Ortiz
2663cec884e8SSamuel Ortiz### PCI BAR reprogramming
2664cec884e8SSamuel Ortiz
2665cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2666cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2667cec884e8SSamuel Ortizreprogramming.
2668cec884e8SSamuel Ortiz
2669cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2670cec884e8SSamuel Ortiz
2671cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2672cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2673cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2674cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2675cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2676cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2677cec884e8SSamuel Ortiztemporarily fork.
2678cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2679cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2680cec884e8SSamuel Ortiz
2681cec884e8SSamuel Ortiz### Contributors
2682cec884e8SSamuel Ortiz
2683cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2684cec884e8SSamuel Ortiz
2685cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2686cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2687cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2688cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2689cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2690cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2691cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2692cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2693cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2694cec884e8SSamuel Ortiz
26958e8a7b6dSSamuel Ortiz# v0.3.0
26968e8a7b6dSSamuel Ortiz
26978ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
26988e8a7b6dSSamuel Ortiz
26998e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
27008e8a7b6dSSamuel Ortiz
27018e8a7b6dSSamuel Ortiz### Block device offloading
27028e8a7b6dSSamuel Ortiz
27038e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
27048e8a7b6dSSamuel Ortizand we added support for
27058e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
27068e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
27078e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
27088e8a7b6dSSamuel Ortizbackend.
27098e8a7b6dSSamuel Ortiz
27108e8a7b6dSSamuel Ortiz### Network device backend
27118e8a7b6dSSamuel Ortiz
27128e8a7b6dSSamuel OrtizThe previous release provided support for
27138e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
27148e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
27158e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
27168e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
27178e8a7b6dSSamuel Ortiz
27188e8a7b6dSSamuel Ortiz### Virtual sockets
27198e8a7b6dSSamuel Ortiz
27208e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
27218e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
27228e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
27238e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
27248e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
27258e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
27268e8a7b6dSSamuel Ortiz
27278e8a7b6dSSamuel Ortiz### HTTP based API
27288e8a7b6dSSamuel Ortiz
27298e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
27308e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
27318e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
27328e8a7b6dSSamuel Ortiznext release cycle.
27338e8a7b6dSSamuel Ortiz
27348e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
27358e8a7b6dSSamuel Ortiz
27368e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
27378e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
27388e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
27398e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
27408e8a7b6dSSamuel Ortiz
27418e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
27428e8a7b6dSSamuel Ortiz
27438e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
274437a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
274537a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
27468e8a7b6dSSamuel Ortiz
27478e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
27488e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
27498e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
27508e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
27518e8a7b6dSSamuel Ortizsetting.
27528e8a7b6dSSamuel Ortiz
27538e8a7b6dSSamuel Ortiz### Ubuntu 19.10
27548e8a7b6dSSamuel Ortiz
27558ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
27568e8a7b6dSSamuel Ortizwe can now support the latest
27578e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
27588e8a7b6dSSamuel Ortiz
27598e8a7b6dSSamuel Ortiz### Large memory guests
27608e8a7b6dSSamuel Ortiz
27618e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
27628e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
27637688e6e2SSamuel Ortiz
2764d784ac29SSamuel Ortiz# v0.2.0
2765d784ac29SSamuel Ortiz
27668ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2767d784ac29SSamuel Ortiz
2768d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2769d784ac29SSamuel Ortiz
2770d784ac29SSamuel Ortiz### Network device offloading
2771d784ac29SSamuel Ortiz
2772d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2773d784ac29SSamuel Ortizprocesses, we added support for
2774d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2775d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2776d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2777d784ac29SSamuel Ortiz
2778d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2779d784ac29SSamuel Ortiz
2780d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2781d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2782d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2783d784ac29SSamuel Ortizcleanly reboot and shutdown.
2784d784ac29SSamuel Ortiz
2785d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2786d784ac29SSamuel Ortizenabled by default.
2787d784ac29SSamuel Ortiz
2788d784ac29SSamuel Ortiz### Debug I/O port
2789d784ac29SSamuel Ortiz
2790d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2791d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2792d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2793d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
279437a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
279537a2c13aSAlyssa Rossdetails.
2796d784ac29SSamuel Ortiz
2797d784ac29SSamuel Ortiz### Improved direct device assignment
2798d784ac29SSamuel Ortiz
2799d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2800d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2801d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2802d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2803d784ac29SSamuel Ortizdirectly assigned devices.
2804d784ac29SSamuel Ortiz
2805d784ac29SSamuel Ortiz### Improved shared filesystem
2806d784ac29SSamuel Ortiz
2807d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2808d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2809d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2810d784ac29SSamuel Ortizmemory footprint.
2811d784ac29SSamuel Ortiz
2812d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2813d784ac29SSamuel Ortiz
28148ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2815d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2816d784ac29SSamuel Ortizour CI pipeline.
2817d784ac29SSamuel Ortiz
281893b77530SSamuel Ortiz# v0.1.0
281993b77530SSamuel Ortiz
28208ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
282193b77530SSamuel Ortiz
282293b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
282393b77530SSamuel Ortiz
282493b77530SSamuel Ortiz### Shared filesystem
282593b77530SSamuel Ortiz
282693b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
282793b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
282893b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
282993b77530SSamuel Ortiz
283037a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
283137a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
283293b77530SSamuel Ortiz
283393b77530SSamuel Ortiz### Initial direct device assignment support
283493b77530SSamuel Ortiz
283593b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
283693b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
283793b77530SSamuel Ortizphysical devices into its guest.
283893b77530SSamuel Ortiz
283937a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
284037a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
284193b77530SSamuel Ortiz
284293b77530SSamuel Ortiz### Userspace IOAPIC
284393b77530SSamuel Ortiz
284493b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
284593b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
284693b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
284793b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
284893b77530SSamuel Ortiz
284993b77530SSamuel Ortiz### Virtual persistent memory
285093b77530SSamuel Ortiz
285193b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
285293b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
285393b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
285493b77530SSamuel Ortiz
285593b77530SSamuel Ortiz### Linux kernel bzImage
285693b77530SSamuel Ortiz
285793b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
285893b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
285993b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
286093b77530SSamuel Ortizdistribution kernel image.
286193b77530SSamuel Ortiz
286293b77530SSamuel Ortiz### Console over virtio
286393b77530SSamuel Ortiz
286493b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
286593b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
286693b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
286793b77530SSamuel Ortizimplementation.
286893b77530SSamuel Ortiz
286993b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
287093b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
287193b77530SSamuel Ortiz`--serial tty --console off` from the command line.
287293b77530SSamuel Ortiz
287393b77530SSamuel Ortiz### Unit testing
287493b77530SSamuel Ortiz
287593b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
287693b77530SSamuel Ortiz
287793b77530SSamuel Ortiz### Integration tests parallelization
287893b77530SSamuel Ortiz
287993b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
288093b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2881