xref: /cloud-hypervisor/release-notes.md (revision c9a39cf5b59481e2a56a4661abb6515d720e07c5)
1*c9a39cf5SBo Chen- [v46.0](#v460)
2*c9a39cf5SBo Chen    - [File-level Locking Support with `--disk`](#file-level-locking-support-with---disk)
3*c9a39cf5SBo Chen    - [Improved Error Reporting with VM Resizing](#improved-error-reporting-with-vm-resizing)
4*c9a39cf5SBo Chen    - [IPv6 Address Support with `--net`](#ipv6-address-support-with---net)
5*c9a39cf5SBo Chen    - [Experimental AArch64 Support with the MSHV Hypervisor](#experimental-aarch64-support-with-the-mshv-hypervisor)
6*c9a39cf5SBo Chen    - [Deprecated SGX Support](#deprecated-sgx-support)
7*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
8*c9a39cf5SBo Chen    - [Contributors](#contributors)
93d88996eSBo Chen- [v45.0](#v450)
103d88996eSBo Chen    - [Experimental `riscv64` Architecture Support](#experimental-riscv64-architecture-support)
113d88996eSBo Chen    - [Alphabetically Sorted CLI Options](#alphabetically-sorted-cli-options)
12*c9a39cf5SBo Chen    - [Improved Downtime of VM Live Migration](#improved-downtime-of-vm-live-migration)
13*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
14*c9a39cf5SBo Chen    - [Contributors](#contributors-1)
153fa1e77aSBo Chen- [v44.0](#v440)
163fa1e77aSBo Chen    - [Configurable `virtio-iommu` Address Width](#configurable-virtio-iommu-address-width)
1749a389ffSRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements)
183fa1e77aSBo Chen    - [New Fuzzers](#new-fuzzers)
19*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
20*c9a39cf5SBo Chen    - [Contributors](#contributors-2)
213fa1e77aSBo Chen- [v43.0](#v430)
223fa1e77aSBo Chen    - [Live Migration over TCP Connections](#live-migration-over-tcp-connections)
233fa1e77aSBo Chen    - [Notable Performance Improvements](#notable-performance-improvements-1)
24*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-3)
25*c9a39cf5SBo Chen    - [Contributors](#contributors-3)
2658850d26SRob Bradford- [v42.0](#v420)
2758850d26SRob Bradford    - [SVE/SVE2 Support on AArch64](#svesve2-support-on-aarch64)
28*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
2958850d26SRob Bradford    - [Sponsorships](#sponsorships)
30*c9a39cf5SBo Chen    - [Contributors](#contributors-4)
31ea3e2ff6SRob Bradford- [v41.0](#v410)
32ea3e2ff6SRob Bradford    - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support)
33ea3e2ff6SRob Bradford    - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support)
343fa1e77aSBo Chen    - [Notable Performance Improvements](#notable-performance-improvements-2)
353d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
363d88996eSBo Chen    - [Contributors](#contributors-5)
37*c9a39cf5SBo Chen- [v40.0](#v400)
38*c9a39cf5SBo Chen    - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices)
39*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
40*c9a39cf5SBo Chen    - [Contributors](#contributors-6)
414f96fa15SRob Bradford- [v39.0](#v390)
424f96fa15SRob Bradford    - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments)
434f96fa15SRob Bradford    - [Direct Booting with bzImages](#direct-booting-with-bzimages)
444f96fa15SRob Bradford    - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support)
454f96fa15SRob Bradford    - [Guest NMI Injection Support](#guest-nmi-injection-support)
46*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
47*c9a39cf5SBo Chen    - [Contributors](#contributors-7)
48ef4fbf08SBo Chen- [v38.0](#v380)
49ef4fbf08SBo Chen    - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices)
50ef4fbf08SBo Chen    - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread)
51ef4fbf08SBo Chen    - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault)
52ef4fbf08SBo Chen    - [New 'debug-console' Device](#new-debug-console-device)
53ef4fbf08SBo Chen    - [Improved VFIO Device Support](#improved-vfio-device-support)
54ef4fbf08SBo Chen    - [Extended CPU Affinity Support](#extended-cpu-affinity-support)
55*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
56*c9a39cf5SBo Chen    - [Contributors](#contributors-8)
575e702dcdSBo Chen- [v37.0](#v370)
585e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
59ef4fbf08SBo Chen    - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices)
605e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
615e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
625e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
63*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-9)
64*c9a39cf5SBo Chen    - [Contributors](#contributors-9)
65f5899d15SBo Chen- [v36.0](#v360)
66f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
67f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
68f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
69f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
70f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
71f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
72f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
73*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-10)
74*c9a39cf5SBo Chen    - [Contributors](#contributors-10)
75339912a5SBo Chen- [v35.0](#v350)
76339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
77339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
78339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
79*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-11)
80*c9a39cf5SBo Chen    - [Contributors](#contributors-11)
81487a43cdSRob Bradford- [v34.0](#v340)
82487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
83487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
84487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
85487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
86*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-12)
87*c9a39cf5SBo Chen    - [Contributors](#contributors-12)
88487a43cdSRob Bradford- [v33.0](#v330)
89487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
90487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
91*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-13)
92*c9a39cf5SBo Chen    - [Contributors](#contributors-13)
9342ca292dSRob Bradford- [v32.0](#v320)
9442ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
9542ca292dSRob Bradford    - [API Changes](#api-changes)
96*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-14)
97*c9a39cf5SBo Chen    - [Contributors](#contributors-14)
9842ca292dSRob Bradford- [v31.1](#v311)
99f3522e85SMichael Zhao- [v31.0](#v310)
100f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
101f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
102f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
103f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
104f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
105*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-15)
106*c9a39cf5SBo Chen    - [Contributors](#contributors-15)
107ece0e6faSBo Chen- [v30.0](#v300)
108ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
109ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
110ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
111f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
112*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-16)
113*c9a39cf5SBo Chen    - [Contributors](#contributors-16)
114ece0e6faSBo Chen- [v28.2](#v282)
11522cf8c97SRob Bradford- [v29.0](#v290)
11622cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
11722cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
11822cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
11922cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
12022cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
12122cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
12222cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
123*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-17)
12422cf8c97SRob Bradford    - [Removals](#removals)
12522cf8c97SRob Bradford    - [Deprecations](#deprecations)
126*c9a39cf5SBo Chen    - [Contributors](#contributors-17)
12722cf8c97SRob Bradford- [v28.1](#v281)
12866460765SRob Bradford- [v28.0](#v280)
12966460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
1305e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
13166460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
13266460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
13366460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
134*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-18)
13522cf8c97SRob Bradford    - [Removals](#removals-1)
136*c9a39cf5SBo Chen    - [Contributors](#contributors-18)
1372ba6a9bfSRob Bradford- [v27.0](#v270)
1382ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
1392ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
1402ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
1412ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
1422ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
1432ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
1442ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
145*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-19)
146f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
147*c9a39cf5SBo Chen    - [Contributors](#contributors-19)
148f3522e85SMichael Zhao- [v26.0](#v260)
149f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
150f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
151*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-20)
15222cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
15366460765SRob Bradford    - [Removals](#removals-2)
154*c9a39cf5SBo Chen    - [Contributors](#contributors-20)
15522cf8c97SRob Bradford- [v25.0](#v250)
15622cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
15722cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
158*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-21)
15922cf8c97SRob Bradford    - [Removals](#removals-3)
160*c9a39cf5SBo Chen    - [Contributors](#contributors-21)
1610150de55SSebastien Boeuf- [v24.0](#v240)
1620150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1630150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1640150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1650150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
166*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-22)
1670150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
16822cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1690150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
170*c9a39cf5SBo Chen    - [Contributors](#contributors-22)
1710150de55SSebastien Boeuf- [v23.1](#v231)
1720c9c56f5SRob Bradford- [v23.0](#v230)
1730c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1740c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1750c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1760c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
177*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-23)
17822cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
179*c9a39cf5SBo Chen    - [Contributors](#contributors-23)
1800c9c56f5SRob Bradford- [v22.1](#v221)
1816aa10938SRob Bradford- [v22.0](#v220)
1826aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1836aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1846aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1856aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1866aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1876aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1880c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1896aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
190*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-24)
191*c9a39cf5SBo Chen    - [Contributors](#contributors-24)
19295ca7997SRob Bradford- [v21.0](#v210)
19395ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
19495ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
195*c9a39cf5SBo Chen    - [Notable Bug fixes](#notable-bug-fixes-25)
196*c9a39cf5SBo Chen    - [Contributors](#contributors-25)
19795ca7997SRob Bradford- [v20.2](#v202)
19895ca7997SRob Bradford- [v20.1](#v201)
1997fc0776aSSebastien Boeuf- [v20.0](#v200)
2007fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
2017fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
2027fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
2037fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
2047fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
205*c9a39cf5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-26)
206*c9a39cf5SBo Chen    - [Contributors](#contributors-26)
207d00eb4aaSRob Bradford- [v19.0](#v190)
208d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
209d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
210d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
211d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
212d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
213d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
214*c9a39cf5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-27)
215*c9a39cf5SBo Chen    - [Contributors](#contributors-27)
2162c4f8d22SRob Bradford- [v18.0](#v180)
2172c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
2182c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
2192c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
2202c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
2212c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
2222c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
2232c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
2242c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
225*c9a39cf5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-28)
226*c9a39cf5SBo Chen    - [Contributors](#contributors-28)
227e6db5999SRob Bradford- [v17.0](#v170)
228e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
229e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
230e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
231e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
232e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
233*c9a39cf5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-29)
234*c9a39cf5SBo Chen    - [Contributors](#contributors-29)
2355ed8e01fSRob Bradford- [v16.0](#v160)
2365ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
2375ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
2385ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
239*c9a39cf5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-30)
2405ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
241*c9a39cf5SBo Chen    - [Contributors](#contributors-30)
24230a01277SRob Bradford- [v15.0](#v150)
24330a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
24430a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
24530a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
246f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
24730a01277SRob Bradford    - [Bug fixes](#bug-fixes)
24822cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
249*c9a39cf5SBo Chen    - [Contributors](#contributors-31)
25030a01277SRob Bradford- [v0.14.1](#v0141)
25140c63dcfSRob Bradford- [v0.14.0](#v0140)
25240c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
25340c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
25440c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
25540c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
25640c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
25740c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
25822cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
259*c9a39cf5SBo Chen    - [Contributors](#contributors-32)
260f58b6f84SRob Bradford- [v0.13.0](#v0130)
261f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
26240c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
263f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
264f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
265f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
266f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
267*c9a39cf5SBo Chen    - [Contributors](#contributors-33)
268d42b5084SRob Bradford- [v0.12.0](#v0120)
269d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
270d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
271d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
272d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
273*c9a39cf5SBo Chen    - [Contributors](#contributors-34)
2747dcd3affSRob Bradford- [v0.11.0](#v0110)
2757dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2767dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2777dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
278d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2797dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2807dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2817dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2827dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
283f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2847dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
285*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-31)
286*c9a39cf5SBo Chen    - [Contributors](#contributors-35)
287198bd551SRob Bradford- [v0.10.0](#v0100)
288198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
289198bd551SRob Bradford    - [Memory Zones](#memory-zones)
290198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
291198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
292*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-32)
293*c9a39cf5SBo Chen    - [Contributors](#contributors-36)
294d714cf81SRob Bradford- [v0.9.0](#v090)
295d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
296d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
297d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
298d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
299d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
300d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
301d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
302d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
303d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
304d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
305198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
306*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-33)
307*c9a39cf5SBo Chen    - [Contributors](#contributors-37)
308d714cf81SRob Bradford- [v0.8.0](#v080)
309d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
310d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
311d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
312d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
313d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
314*c9a39cf5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-34)
315d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
316*c9a39cf5SBo Chen    - [Contributors](#contributors-38)
31796be8229SRob Bradford- [v0.7.0](#v070)
31896be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
31996be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
32096be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
32196be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
32296be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
32396be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
32496be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
32552b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
326*c9a39cf5SBo Chen    - [Contributors](#contributors-39)
32703cb26ccSSamuel Ortiz- [v0.6.0](#v060)
32803cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
32903cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
33003cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
33103cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
33203cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
333*c9a39cf5SBo Chen    - [Contributors](#contributors-40)
33494f2fc33SRob Bradford- [v0.5.1](#v051)
3352f395e60SSamuel Ortiz- [v0.5.0](#v050)
33694f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
33794f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
33894f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
33994f2fc33SRob Bradford    - [Development Tools](#development-tools)
34094f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
341*c9a39cf5SBo Chen    - [Contributors](#contributors-41)
342cec884e8SSamuel Ortiz- [v0.4.0](#v040)
34394f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
34494f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
34594f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
34694f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
34794f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
34894f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
34994f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
350*c9a39cf5SBo Chen    - [Contributors](#contributors-42)
3518e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
35294f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
35394f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
35494f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
35594f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
35694f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
35794f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
35894f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
35994f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3607688e6e2SSamuel Ortiz- [v0.2.0](#v020)
36194f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
36294f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
36394f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
36494f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
36594f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
36694f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3677688e6e2SSamuel Ortiz- [v0.1.0](#v010)
36894f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
36994f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
37094f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
37194f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
37294f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
37394f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
37494f2fc33SRob Bradford    - [Unit testing](#unit-testing)
37594f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
37694f2fc33SRob Bradford
377*c9a39cf5SBo Chen# v46.0
378*c9a39cf5SBo Chen
379*c9a39cf5SBo ChenThis release has been tracked in [v46.0
380*c9a39cf5SBo Chengroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+46%22)
381*c9a39cf5SBo Chenof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
382*c9a39cf5SBo Chen
383*c9a39cf5SBo Chen### File-level Locking Support with `--disk`
384*c9a39cf5SBo Chen
385*c9a39cf5SBo ChenNow file-level locking is enforced for disk images, provided by users
386*c9a39cf5SBo Chenwith `--disk`. This ensures that only a single Cloud Hypervisor instance
387*c9a39cf5SBo Chencan obtain write access to a given disk image at any time, preventing
388*c9a39cf5SBo Chenmisconfiguration and avoiding potential data corruption. (#6974)
389*c9a39cf5SBo Chen
390*c9a39cf5SBo Chen### Improved Error Reporting with VM Resizing
391*c9a39cf5SBo Chen
392*c9a39cf5SBo ChenInstead of returning a generic error `400` (e.g. `BadRequest`), users
393*c9a39cf5SBo Chennow get a more specific error `429` (e.g. `TooManyRequests`) when a
394*c9a39cf5SBo Chenpending VM resizing is not completed. This allows users to better handle
395*c9a39cf5SBo Chendifferent errors, say retrying the request when applicable. (#7043)
396*c9a39cf5SBo Chen
397*c9a39cf5SBo Chen### IPv6 Address Support with `--net`
398*c9a39cf5SBo Chen
399*c9a39cf5SBo ChenIt is now possible to specify an IPv6 address and mask when creating a
400*c9a39cf5SBo Chennetwork interface with `--net`. (#7048)
401*c9a39cf5SBo Chen
402*c9a39cf5SBo Chen### Experimental AArch64 Support with the MSHV Hypervisor
403*c9a39cf5SBo Chen
404*c9a39cf5SBo ChenIt is now possible to start VMs on AArch64 platforms when using MSHV
405*c9a39cf5SBo Chenhypervisor. (#7055)
406*c9a39cf5SBo Chen
407*c9a39cf5SBo Chen### Deprecated SGX Support
408*c9a39cf5SBo Chen
409*c9a39cf5SBo ChenThe SGX support now is deprecated with a warning message if it being
410*c9a39cf5SBo Chenused, with the intention to remove its support from our code base in two
411*c9a39cf5SBo Chenrelease cycles (e.g. v48.0). (#7090)
412*c9a39cf5SBo Chen
413*c9a39cf5SBo Chen### Notable Bug Fixes
414*c9a39cf5SBo Chen
415*c9a39cf5SBo Chen* Remove `path` as required for `DiskConfig` from the OpenAPI spec file
416*c9a39cf5SBo Chen  (#7017)
417*c9a39cf5SBo Chen* Properly parse PCI capabilities (#7018)
418*c9a39cf5SBo Chen* Reprogram PCI device BAR when its MSE bit is set (#7063)
419*c9a39cf5SBo Chen* Update IOMMU mappings of MMIO regions with BAR reprogram for VFIO
420*c9a39cf5SBo Chen  devices (#7064)
421*c9a39cf5SBo Chen* Avoid resizing VMs to zero vCPUs (#7086)
422*c9a39cf5SBo Chen* Fix extended topology enumeration leaf exposed to the guest (#7087)
423*c9a39cf5SBo Chen
424*c9a39cf5SBo Chen### Contributors
425*c9a39cf5SBo Chen
426*c9a39cf5SBo ChenMany thanks to everyone who has contributed to our release:
427*c9a39cf5SBo Chen
428*c9a39cf5SBo Chen* Bingxin Li <bl497@cam.ac.uk>
429*c9a39cf5SBo Chen* Bo Chen <bchen@crusoe.ai>
430*c9a39cf5SBo Chen* Fabiano Fidêncio <fidencio@northflank.com>
431*c9a39cf5SBo Chen* Gregory Anders <ganders@cloudflare.com>
432*c9a39cf5SBo Chen* Jinank Jain <jinankjain@microsoft.com>
433*c9a39cf5SBo Chen* Julian Stecklina <julian.stecklina@cyberus-technology.de>
434*c9a39cf5SBo Chen* Muminul Islam <muislam@microsoft.com>
435*c9a39cf5SBo Chen* Paolo Bonzini <pbonzini@redhat.com>
436*c9a39cf5SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
437*c9a39cf5SBo Chen* Rob Bradford <rbradford@rivosinc.com>
438*c9a39cf5SBo Chen* Ruoqing He <heruoqing@iscas.ac.cn>
439*c9a39cf5SBo Chen* Thomas Prescher <thomas.prescher@cyberus-technology.de>
440*c9a39cf5SBo Chen* abm-77 <andrewmiller77@protonmail.com>
441*c9a39cf5SBo Chen
4423d88996eSBo Chen# v45.0
4433d88996eSBo Chen
4443d88996eSBo ChenThis release has been tracked in [v45.0
4453d88996eSBo Chengroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v44.0%22)
4463d88996eSBo Chenof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
4473d88996eSBo Chen
4483d88996eSBo Chen### Experimental `riscv64` Architecture Support
4493d88996eSBo Chen
4503d88996eSBo ChenCloud Hypervisor now has experimental `riscv64` architecture
4513d88996eSBo Chensupport. Details can be found from the [riscv
4523d88996eSBo Chendocumentation](docs/riscv.md).
4533d88996eSBo Chen
4543d88996eSBo Chen### Alphabetically Sorted CLI Options
4553d88996eSBo Chen
4563d88996eSBo ChenTo improve the readability of CLI options, the output of the `--help`
4573d88996eSBo Chennow is alphabetically sorted. (#6988)
4583d88996eSBo Chen
4593d88996eSBo Chen### Improved Downtime of VM Live Migration
4603d88996eSBo Chen
4613d88996eSBo ChenThe downtime of VM live migration is reduced via delaying some of the
4623d88996eSBo Chentearing down process of the source VM after the destination VM is up and
4633d88996eSBo Chenrunning. (#6987)
4643d88996eSBo Chen
4653d88996eSBo Chen### Notable Bug Fixes
4663d88996eSBo Chen
4673d88996eSBo Chen* Fix seccomp filters related to http-api thread (#6967)
4683d88996eSBo Chen* Handle cross-page access in the emulator for mshv (#6968)
4693d88996eSBo Chen
4703d88996eSBo Chen### Contributors
4713d88996eSBo Chen
4723d88996eSBo ChenMany thanks to everyone who has contributed to our release:
4733d88996eSBo Chen
4743d88996eSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
4753d88996eSBo Chen* Andrew Consroe <aconz2@gmail.com>
4763d88996eSBo Chen* Bo Chen <bchen@crusoe.ai>
4773d88996eSBo Chen* Jinank Jain <jinankjain@microsoft.com>
4783d88996eSBo Chen* Jinrong Liang <cloudliang@tencent.com>
4793d88996eSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
4803d88996eSBo Chen* Ruoqing He <heruoqing@iscas.ac.cn>
4813d88996eSBo Chen* Stefan Kober <stefan.kober@cyberus-technology.de>
4823d88996eSBo Chen* Wei Liu <liuwe@microsoft.com>
4833d88996eSBo Chen
4843fa1e77aSBo Chen# v44.0
4853fa1e77aSBo Chen
4866fa7c84dSRuoqing HeThis release has been tracked in [v44.0
4876fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v44.0%22)
4886fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
4893fa1e77aSBo Chen
4903fa1e77aSBo Chen### Configurable `virtio-iommu` Address Width
4913fa1e77aSBo Chen
4923fa1e77aSBo ChenThe `iommu_address_width` option has been added to `--platform` to allow users
4933fa1e77aSBo Chento limit the `virtio-iommu` address space in the guest. (#6900)
4943fa1e77aSBo Chen
4953fa1e77aSBo Chen### Notable Performance Improvements
4963fa1e77aSBo Chen
4973fa1e77aSBo ChenThe `VIRTIO_BLK_F_SEG_MAX` feature has been enabled for `virtio-block` devices,
4983fa1e77aSBo Chenwhich brings significant performance improvements on throughput. (#6885)
4993fa1e77aSBo Chen
5003fa1e77aSBo ChenThe `io_uring` entries are no longer forced to use async helper workers,
5013fa1e77aSBo Chendelegating the decision to the kernel. This change resolved the issue of having
5023fa1e77aSBo Chenexcessive amount of worker threads when `io_uring` is being used, which is
5033fa1e77aSBo Chenexpected to improve performance, such as reducing memory usage and reduce CPU
5043fa1e77aSBo Chencontention.
5053fa1e77aSBo Chen
5063fa1e77aSBo Chen### New Fuzzers
5073fa1e77aSBo Chen
5083fa1e77aSBo ChenOur continuous fuzzing infrastructure is augmented with two new fuzzers to cover
5093fa1e77aSBo Chenx86 instruction emulator and `virtio-vsock`.
5103fa1e77aSBo Chen
5113fa1e77aSBo Chen### Notable Bug Fixes
5123fa1e77aSBo Chen
5133fa1e77aSBo Chen* Fix short read and short write that impact QCOW and VHDX support. (#6884)
5143fa1e77aSBo Chen* Various bug fixes on VHDX support. (#6890, #6899)
5153fa1e77aSBo Chen
5163fa1e77aSBo Chen### Contributors
5173fa1e77aSBo Chen
5183fa1e77aSBo ChenMany thanks to everyone who has contributed to our release:
5193fa1e77aSBo Chen
5203fa1e77aSBo Chen* Arvind Vasudev <avasudev@crusoeenergy.com>
5213fa1e77aSBo Chen* Bo Chen <bo.arvin.chen@gmail.com>
5223fa1e77aSBo Chen* Nikolay Edigaryev <edigaryev@gmail.com>
5233fa1e77aSBo Chen* Rob Bradford <rbradford@rivosinc.com>
5243fa1e77aSBo Chen* Ruoqing He <heruoqing@iscas.ac.cn>
5253fa1e77aSBo Chen* Wei Liu <liuwe@microsoft.com>
5263fa1e77aSBo Chen
52749a389ffSRob Bradford# v43.0
52849a389ffSRob Bradford
5296fa7c84dSRuoqing HeThis release has been tracked in [v43.0
5306fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v43.0%22)
5316fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
53249a389ffSRob Bradford
53349a389ffSRob Bradford### Live Migration over TCP Connections
53449a389ffSRob Bradford
53549a389ffSRob BradfordSupport has been added to enable direct live migration from two hosts via TCP
53649a389ffSRob Bradfordconnections. This supplements the existing support for migrating over a UNIX
53749a389ffSRob Bradfordsocket which can then be tunnelled as desired. The documentation has been
53849a389ffSRob Bradfordupdated. (#6850)
53949a389ffSRob Bradford
54049a389ffSRob Bradford### Notable Performance Improvements
54149a389ffSRob Bradford
54249a389ffSRob BradfordThe `VIRTIO_RING_F_INDIRECT_DESC` feature has been enabled for `virtio-block`
54349a389ffSRob Bradforddevices. This significantly increases the throughput of the devices with a
54449a389ffSRob Bradfordsmall negative impact on latency. (#6826)
54549a389ffSRob Bradford
54649a389ffSRob Bradford### Notable Bug Fixes
54749a389ffSRob Bradford
54849a389ffSRob Bradford* Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64
54949a389ffSRob Bradford  architectures. Whether they function depends on the host PCI host bridge
55049a389ffSRob Bradford  support - previously they would be rejected even if the driver did not use
55149a389ffSRob Bradford  these BARs. (#6871)
55249a389ffSRob Bradford* Command line groups were adjusted to ensure that at least one payload
55349a389ffSRob Bradford  parameter was provided if any other VM parameters provided. (#6832)
55449a389ffSRob Bradford
55549a389ffSRob Bradford### Contributors
55649a389ffSRob Bradford
55749a389ffSRob BradfordMany thanks to everyone who has contributed to our release:
55849a389ffSRob Bradford
55949a389ffSRob Bradford* Alyssa Ross <hi@alyssa.is>
56049a389ffSRob Bradford* Andrew Consroe <aconz2@gmail.com>
56149a389ffSRob Bradford* Bo Chen <bo.arvin.chen@gmail.com>
56249a389ffSRob Bradford* Jinrong Liang <cloudliang@tencent.com>
56349a389ffSRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
56449a389ffSRob Bradford* Muminul Islam <muislam@microsoft.com>
56549a389ffSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
56649a389ffSRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
56749a389ffSRob Bradford* Wojtek Czekalski <wczekalski@me.com>
56849a389ffSRob Bradford
56958850d26SRob Bradford# v42.0
57058850d26SRob Bradford
5716fa7c84dSRuoqing HeThis release has been tracked in [v42.0
5726fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v42.0%22)
5736fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
57458850d26SRob Bradford
57558850d26SRob Bradford### SVE/SVE2 Support on AArch64
57658850d26SRob Bradford
57758850d26SRob BradfordThe SVE and SVE2 feature bits are now propagated through to the guest on
57858850d26SRob BradfordAArch64. (#6678, #6691)
57958850d26SRob Bradford
58058850d26SRob Bradford### Notable Bug Fixes
58158850d26SRob Bradford
58258850d26SRob Bradford* Reduce latency notification when rate limited (#6672)
58358850d26SRob Bradford* Fix `virtio-console` resizing (#6704)
58458850d26SRob Bradford* Fix resizing when console uses TTY (#6754)
58558850d26SRob Bradford* Avoid deadlock in PCI BAR reprogramming that can occur when adding a new
58658850d26SRob Bradford  `virtio` device to a VM that has been restored (#6775)
58758850d26SRob Bradford* Fix console resizing after VM restore (#6748)
58858850d26SRob Bradford* Fix memory resize error due to incorrect bounds checks (#6736)
58958850d26SRob Bradford
59058850d26SRob Bradford### Sponsorships
59158850d26SRob Bradford
59258850d26SRob BradfordDuring this release cycle a new VFIO CI worker has been provided by Crusoe
59358850d26SRob BradfordEnergy and a new ARM64 CI worker has been provided by Ubicloud.
59458850d26SRob Bradford
59558850d26SRob Bradford### Contributors
59658850d26SRob Bradford
59758850d26SRob BradfordMany thanks to everyone who has contributed to our release:
59858850d26SRob Bradford
59958850d26SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
60058850d26SRob Bradford* Alyssa Ross <hi@alyssa.is>
60158850d26SRob Bradford* Anirudh Rayabharam <anrayabh@microsoft.com>
60258850d26SRob Bradford* BharatNarasimman <bharatn@microsoft.com>
60358850d26SRob Bradford* Bo Chen <chen.bo@intel.com>
60458850d26SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
60558850d26SRob Bradford* Jonas Scholz <Jonas.Scholz@bbscholz.de>
60658850d26SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
60758850d26SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
60858850d26SRob Bradford* Purna Pavan Chandra <paekkaladevi@microsoft.com>
60958850d26SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
61058850d26SRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
61158850d26SRob Bradford* Songqian Li <sionli@tencent.com>
61258850d26SRob Bradford* Tom Dohrmann <erbse.13@gmx.de>
61358850d26SRob Bradford* Wei Liu <liuwe@microsoft.com>
61458850d26SRob Bradford* Wenyu Huang <huangwenyuu@outlook.com>
61558850d26SRob Bradford* Yuhong Zhong <yz@cs.columbia.edu>
61658850d26SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
61758850d26SRob Bradford
618ea3e2ff6SRob Bradford# v41.0
619ea3e2ff6SRob Bradford
6206fa7c84dSRuoqing HeThis release has been tracked in [v41.0
6216fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v41.0%22)
6226fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
623ea3e2ff6SRob Bradford
624ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support
625ea3e2ff6SRob Bradford
626ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires
627ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its
628ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features.
629ea3e2ff6SRob Bradford(#6318, #6467)
630ea3e2ff6SRob Bradford
631ea3e2ff6SRob Bradford### Sandboxing With Landlock Support
632ea3e2ff6SRob Bradford
633ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API
634ea3e2ff6SRob Bradfordhas been added  - this can be used to restrict the files (and the read/write
635ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of
636ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be
637ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170)
638ea3e2ff6SRob Bradford
639ea3e2ff6SRob Bradford### Notable Performance Improvements
640ea3e2ff6SRob Bradford
641ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec`
642ea3e2ff6SRob Bradford  structures (#6636)
643ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to
644ea3e2ff6SRob Bradford  `virtio-block` giving a 60% improvement in single queue block throughput and
645ea3e2ff6SRob Bradford  IOPs performance (#6580)
646ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586)
647ea3e2ff6SRob Bradford
648ea3e2ff6SRob Bradford### Notable Bug Fixes
649ea3e2ff6SRob Bradford
650ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657)
651ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
652ea3e2ff6SRob Bradford  access (#6647)
653ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now
654ea3e2ff6SRob Bradford  included in the virtio-device seccomp filters for tests that use this (#6648)
655ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621)
656ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
657ea3e2ff6SRob Bradford
658ea3e2ff6SRob Bradford### Contributors
659ea3e2ff6SRob Bradford
660ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release:
661ea3e2ff6SRob Bradford
662ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is>
663ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com>
664ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com>
665ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
666ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
667ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com>
668ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
669ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
670ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
671ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com>
672ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com>
673ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com>
674ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com>
675ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
676ea3e2ff6SRob Bradford
677e9b26397SRob Bradford# v40.0
678e9b26397SRob Bradford
6796fa7c84dSRuoqing HeThis release has been tracked in [v40.0
6806fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v40.0%22)
6816fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
682e9b26397SRob Bradford
683e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices
684e9b26397SRob Bradford
685e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using
686e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices.
687e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or
688e9b26397SRob Bradfordother file descriptor backed network devices. (#6286)
689e9b26397SRob Bradford
690e9b26397SRob Bradford### Notable Bug Fixes
691e9b26397SRob Bradford
692e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata
693e9b26397SRob Bradford  (#6495)
694e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456)
695e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial`
696e9b26397SRob Bradford  (#6486)
697e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has
698e9b26397SRob Bradford  been introduced (#6482)
699e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding
700e9b26397SRob Bradford  `cpuid` instructions and by seeding the in kernel file descriptor table
701e9b26397SRob Bradford  (#6498, #6478)
702e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523)
703e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets
704e9b26397SRob Bradford  (#6504)
705e9b26397SRob Bradford
706e9b26397SRob Bradford### Contributors
707e9b26397SRob Bradford
708e9b26397SRob BradfordMany thanks to everyone who has contributed to our release:
709e9b26397SRob Bradford
710e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
711e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com>
712e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
713e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com>
714e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com>
715e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
716e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
717e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
718e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com>
719e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
720e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com>
721e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai>
722e9b26397SRob Bradford* Songqian Li <sionli@tencent.com>
723e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com>
724e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com>
725e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
726e9b26397SRob Bradford*
727e9b26397SRob Bradford
7284f96fa15SRob Bradford# v39.0
7294f96fa15SRob Bradford
7306fa7c84dSRuoqing HeThis release has been tracked in [v39.0
7316fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v39.0%22)
7326fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
7334f96fa15SRob Bradford
7344f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments
7354f96fa15SRob Bradford
7364f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that
7374f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
7384f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may
7394f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With
7404f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387)
7414f96fa15SRob Bradford
7424f96fa15SRob Bradford### Direct Booting with bzImages
7434f96fa15SRob Bradford
7444f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200)
7454f96fa15SRob Bradford
7464f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support
7474f96fa15SRob Bradford
7484f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the
7494f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235)
7504f96fa15SRob Bradford
7514f96fa15SRob Bradford### Guest NMI Injection Support
7524f96fa15SRob Bradford
7534f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the
7544f96fa15SRob Bradfordguest. (#6047)
7554f96fa15SRob Bradford
7564f96fa15SRob Bradford### Notable Bug Fixes
7574f96fa15SRob Bradford
7584f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
7594f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208)
7604f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247)
7614f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268)
7624f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock`
7634f96fa15SRob Bradford  (#6306)
7644f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359)
7654f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372)
7664f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
7674f96fa15SRob Bradford  #6319)
7684f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337,
7694f96fa15SRob Bradford  #6338)
7704f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across
7714f96fa15SRob Bradford  snapshot/restore (#6332, #6286)
7724f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274)
7734f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293)
7744f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230)
7754f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration
7764f96fa15SRob Bradford  (#6326, #6265)
7774f96fa15SRob Bradford
7784f96fa15SRob Bradford### Contributors
7794f96fa15SRob Bradford
7804f96fa15SRob BradfordMany thanks to everyone who has contributed to our release:
7814f96fa15SRob Bradford
7824f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
7834f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com>
7844f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com>
7854f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke>
7864f96fa15SRob Bradford* Chris Webb <chris@arachsys.com>
7874f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
7884f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com>
7894f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com>
7904f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
7914f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
7924f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
7934f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
7944f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de>
7954f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com>
7964f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com>
7974f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com>
7984f96fa15SRob Bradford
799ef4fbf08SBo Chen# v38.0
800ef4fbf08SBo Chen
8016fa7c84dSRuoqing HeThis release has been tracked in [v38.0
8026fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v38.0%22)
8036fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
804ef4fbf08SBo Chen
805ef4fbf08SBo Chen### Group Rate Limiter on Block Devices
806ef4fbf08SBo Chen
807ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new
808ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O
809ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md)
810ef4fbf08SBo Chen
811ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread
812ef4fbf08SBo Chen
813ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices
814ef4fbf08SBo Chento specific host cpus.
815ef4fbf08SBo Chen
816ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault
817ef4fbf08SBo Chen
818ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel
819ef4fbf08SBo Chenmemory prefault.
820ef4fbf08SBo Chen
821ef4fbf08SBo Chen### New 'debug-console' Device
822ef4fbf08SBo Chen
823ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug
824ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug
825ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md).
826ef4fbf08SBo Chen
827ef4fbf08SBo Chen### Improved VFIO Device Support
828ef4fbf08SBo Chen
829ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO
830ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same
831ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving
832ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU
833ef4fbf08SBo Chenand an IB device).
834ef4fbf08SBo Chen
835ef4fbf08SBo Chen### Extended CPU Affinity Support
836ef4fbf08SBo Chen
837ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger
838ef4fbf08SBo Chenthan 255.
839ef4fbf08SBo Chen
840ef4fbf08SBo Chen### Notable Bug Fixes
841ef4fbf08SBo Chen
842ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software
843ef4fbf08SBo Chensuch as hwloc in the guest (#6146)
844ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141)
845ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062)
846ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095)
847ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106)
848ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196)
849ef4fbf08SBo Chen
850ef4fbf08SBo Chen### Contributors
851ef4fbf08SBo Chen
852ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release:
853ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is>
854ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com>
855ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com>
856ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com>
857ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com>
858ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com>
859ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
860ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
861ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com>
862ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
863ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com>
864ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
865ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com>
866ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com>
867ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com>
868ef4fbf08SBo Chen
8695e702dcdSBo Chen# v37.0
8705e702dcdSBo Chen
8716fa7c84dSRuoqing HeThis release has been tracked in [v37.0
8726fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v37.0%22)
8736fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
8745e702dcdSBo Chen
8755e702dcdSBo Chen### Long Term Support (LTS) Release
8765e702dcdSBo Chen
8775e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
8785e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
8795e702dcdSBo Chensupported between the point releases of the LTS.
8805e702dcdSBo Chen
8815e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
8825e702dcdSBo Chen
8835e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
8845e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
8855e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
8865e702dcdSBo Chen
8875e702dcdSBo Chen### Configurable Named TAP Devices
8885e702dcdSBo Chen
8895e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
8905e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
8915e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
8925e702dcdSBo Chen
8935e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
8945e702dcdSBo Chen
8955e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
8965e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
8975e702dcdSBo Chenlegacy serial device without losing performance benefits of using
8985e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
8995e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
9005e702dcdSBo Chen
9015e702dcdSBo Chen### Faster VM Restoration from Snapshots
9025e702dcdSBo Chen
9035e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
9045e702dcdSBo Chenimplementation of deserializing JSON files.
9055e702dcdSBo Chen
9065e702dcdSBo Chen### Notable Bug Fixes
9075e702dcdSBo Chen
9085e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
9095e702dcdSBo Chen  disabled (#5930)
9105e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
9115e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
9125e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
9135e702dcdSBo Chen
9145e702dcdSBo Chen### Contributors
9155e702dcdSBo Chen
9165e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
9175e702dcdSBo Chen
9185e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
9195e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
9205e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
9215e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
9225e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
9235e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
9245e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
9255e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
9265e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
9275e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
9285e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
9295e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
9305e702dcdSBo Chen
931f5899d15SBo Chen# v36.0
932f5899d15SBo Chen
9336fa7c84dSRuoqing HeThis release has been tracked in [v36.0
9346fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v36.0%22)
9356fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
936f5899d15SBo Chen
937f5899d15SBo Chen### Command Line Changes
938f5899d15SBo Chen
939f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
940f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
941f5899d15SBo Chenchanges:
942f5899d15SBo Chen
943f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
944f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
945f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
946f5899d15SBo Chen
947f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
948f5899d15SBo Chen
949f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
950f5899d15SBo Chen
951f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
952f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
953f5899d15SBo Chen(`--version -v`).
954f5899d15SBo Chen
955f5899d15SBo Chen### NUMA Support for PCI segments
956f5899d15SBo Chen
957f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
958f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
959f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
960f5899d15SBo Chen
961f5899d15SBo Chen### CPU Topology Support on AMD Platforms
962f5899d15SBo Chen
963f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
964f5899d15SBo Chen
965f5899d15SBo Chen### Unix Socket Backend for Serial Port
966f5899d15SBo Chen
967f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
968f5899d15SBo Chenusers to access the serial port using a Unix socket.
969f5899d15SBo Chen
970f5899d15SBo Chen### AIO Backend for Block Devices
971f5899d15SBo Chen
972f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
973f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
974f5899d15SBo Chenhost Operating System.
975f5899d15SBo Chen
976f5899d15SBo Chen### Documentation Improvements
977f5899d15SBo Chen
978f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
979f5899d15SBo Chen* Various typo fixes
980f5899d15SBo Chen
981f5899d15SBo Chen### Notable Bug Fixes
982f5899d15SBo Chen
983f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
984f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
985f5899d15SBo Chen  enabled (#5834)
986f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
987f5899d15SBo Chen
988f5899d15SBo Chen### Contributors
989f5899d15SBo Chen
990f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
991f5899d15SBo Chen
992f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
993f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
994f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
995f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
996f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
997f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
998f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
999f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1000f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
1001f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
1002f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
1003f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
1004f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
1005f5899d15SBo Chen
1006339912a5SBo Chen# v35.0
1007339912a5SBo Chen
10086fa7c84dSRuoqing HeThis release has been tracked in [v35.0
10096fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v35.0%22)
10106fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1011339912a5SBo Chen
1012339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
1013339912a5SBo Chen
1014339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
1015339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
1016339912a5SBo Chennow support both situations.
1017339912a5SBo Chen
1018339912a5SBo Chen### User Specified Serial Number for `virtio-block`
1019339912a5SBo Chen
1020339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
1021339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
1022339912a5SBo Chen
1023339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
1024339912a5SBo Chen
1025339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
1026339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
1027339912a5SBo Chen
1028339912a5SBo Chen### Notable Bug Fixes
1029339912a5SBo Chen
1030339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
1031339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
1032339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
1033339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
1034339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
1035339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
1036339912a5SBo Chen  (#5712, #5750, #5762, #5763)
1037339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
1038339912a5SBo Chen
1039339912a5SBo Chen### Contributors
1040339912a5SBo Chen
1041339912a5SBo ChenMany thanks to everyone who has contributed to our release:
1042339912a5SBo Chen
1043339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
1044339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
1045339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
1046339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
1047339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
1048339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
1049339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
1050339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
1051339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
1052339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
1053339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
1054339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
1055339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
1056339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
1057339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
1058339912a5SBo Chen
1059487a43cdSRob Bradford# v34.0
1060487a43cdSRob Bradford
10616fa7c84dSRuoqing HeThis release has been tracked in [v34.0
10626fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v34.0%22)
10636fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1064487a43cdSRob Bradford
1065487a43cdSRob Bradford### Paravirtualised Panic Device Support
1066487a43cdSRob Bradford
1067487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
1068487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
1069487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
1070487a43cdSRob Bradford
1071487a43cdSRob Bradford### Improvements to VM Core Dump
1072487a43cdSRob Bradford
1073487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
1074487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
1075487a43cdSRob Bradford
1076487a43cdSRob Bradford### QCOW2 Support for Backing Files
1077487a43cdSRob Bradford
1078487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
1079487a43cdSRob Bradfordbacking files. (#5573)
1080487a43cdSRob Bradford
1081487a43cdSRob Bradford### Minimum Host Kernel Bump
1082487a43cdSRob Bradford
1083487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
1084487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
1085487a43cdSRob Bradford
1086487a43cdSRob Bradford### Notable Bug Fixes
1087487a43cdSRob Bradford
1088487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
1089487a43cdSRob Bradford  carries out this job with KVM) (#5561).
1090487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
1091487a43cdSRob Bradford  than MSI-X (#5658).
1092487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
1093487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
1094487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
1095487a43cdSRob Bradford  when all vCPUs are paused (#5611).
1096487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
1097487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
1098487a43cdSRob Bradford
1099487a43cdSRob Bradford### Contributors
1100487a43cdSRob Bradford
1101487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
1102487a43cdSRob Bradford
1103487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
1104487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1105487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
1106487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
1107487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
1108487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
1109487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
1110487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1111487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
1112487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
1113487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
1114487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
1115487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
1116487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1117487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
1118487a43cdSRob Bradford
11196e0e6323SBo Chen# v33.0
11206e0e6323SBo Chen
11216fa7c84dSRuoqing HeThis release has been tracked in [v33.0
11226fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v33.0%22)
11236fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
11246e0e6323SBo Chen
11256e0e6323SBo Chen### D-Bus based API
11266e0e6323SBo Chen
11276e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
11286e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
11296e0e6323SBo Chenfound in the [API documentation](docs/api.md).
11306e0e6323SBo Chen
11316e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
11326e0e6323SBo Chen
11336e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
11346e0e6323SBo Chenguest on AArch64.
11356e0e6323SBo Chen
11366e0e6323SBo Chen### Notable Bug Fixes
11376e0e6323SBo Chen
11386e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
11396e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
11406e0e6323SBo Chen* Fix TDX initialization (#5454)
11416e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
11426e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
11436e0e6323SBo Chen  (#5506, #5524)
11446e0e6323SBo Chen* Populate APIC ID properly (#5512)
11456e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
11466e0e6323SBo Chen
11476e0e6323SBo Chen### Contributors
11486e0e6323SBo Chen
11496e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
11506e0e6323SBo Chen
11516e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
11526e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
11536e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
11546e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
11556e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
11566e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
11576e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
11586e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
11596e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
11606e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
11616e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
11626e0e6323SBo Chen
116342ca292dSRob Bradford# v32.0
116442ca292dSRob Bradford
11656fa7c84dSRuoqing HeThis release has been tracked in [v32.0
11666fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v32.0%22)
11676fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
116842ca292dSRob Bradford
116942ca292dSRob Bradford### Increased PCI Segment Limit
117042ca292dSRob Bradford
117142ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
117242ca292dSRob Bradford
117342ca292dSRob Bradford### API Changes
117442ca292dSRob Bradford
117542ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
117642ca292dSRob Bradford  (#5348)
117742ca292dSRob Bradford
117842ca292dSRob Bradford### Notable Bug Fixes
117942ca292dSRob Bradford
118042ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
118142ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
118242ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
118342ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
118442ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
118542ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
118642ca292dSRob Bradford* Fixes for TTY reset (#5414)
118742ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
118842ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
118942ca292dSRob Bradford
119042ca292dSRob Bradford### Contributors
119142ca292dSRob Bradford
119242ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
119342ca292dSRob Bradford
119442ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
119542ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
119642ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
119742ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
119842ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
119942ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
120042ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
120142ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
120242ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
120342ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
120442ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
120542ca292dSRob Bradford
120642ca292dSRob Bradford# v31.1
120742ca292dSRob Bradford
120842ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
120942ca292dSRob Bradford
121042ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
121142ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
121242ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
121342ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
121442ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
121542ca292dSRob Bradford
1216f3522e85SMichael Zhao# v31.0
1217f3522e85SMichael Zhao
12186fa7c84dSRuoqing HeThis release has been tracked in [v31.0
12196fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v31.0%22)
12206fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1221f3522e85SMichael Zhao
1222f3522e85SMichael Zhao### Update to Latest `acpi_tables`
1223f3522e85SMichael Zhao
1224f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
1225f3522e85SMichael ZhaoThere has been significant API changes in the crate.
1226f3522e85SMichael Zhao
1227f3522e85SMichael Zhao### Update Reference Kernel to 6.2
1228f3522e85SMichael Zhao
1229f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
1230f3522e85SMichael Zhao
1231f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
1232f3522e85SMichael Zhao
1233f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
1234f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
1235f3522e85SMichael Zhao
1236f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
1237f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
1238f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
1239f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
1240f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
1241f3522e85SMichael Zhao
1242f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
1243f3522e85SMichael Zhao
1244f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
1245f3522e85SMichael Zhao
1246f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
1247f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
1248f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
1249f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
1250f3522e85SMichael Zhao
1251f3522e85SMichael Zhao### Documentation Improvements
1252f3522e85SMichael Zhao
1253f3522e85SMichael Zhao* Various improvements in API document
1254f3522e85SMichael Zhao* Improvements in Doc comments
1255f3522e85SMichael Zhao* Updated Slack channel information in README
1256f3522e85SMichael Zhao
1257f3522e85SMichael Zhao### Notable Bug Fixes
1258f3522e85SMichael Zhao
1259f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
1260f3522e85SMichael Zhao  client.
1261f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
1262f3522e85SMichael Zhao  endpoint.
1263f3522e85SMichael Zhao
1264f3522e85SMichael Zhao### Contributors
1265f3522e85SMichael Zhao
1266f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
1267f3522e85SMichael Zhao
1268f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
1269f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
1270f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
1271f3522e85SMichael Zhao* Dom <peng6662001@163.com>
1272f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
1273f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
1274f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
1275f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1276f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
1277f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
1278f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
1279f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
1280f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
1281f3522e85SMichael Zhao
1282ece0e6faSBo Chen# v30.0
1283ece0e6faSBo Chen
12846fa7c84dSRuoqing HeThis release has been tracked in [v30.0
12856fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v30.0%22)
12866fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1287ece0e6faSBo Chen
1288ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
1289ece0e6faSBo Chen
1290ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
1291ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
1292ece0e6faSBo Chenwere several syntax changes:
1293ece0e6faSBo Chen
1294ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
1295ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
1296ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
1297ece0e6faSBo Chen
1298ece0e6faSBo Chen### Basic vfio-user Server Support
1299ece0e6faSBo Chen
1300ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
1301ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
1302ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
1303ece0e6faSBo Chen`rust-vmm` organization.
1304ece0e6faSBo Chen
1305ece0e6faSBo Chen### Heap Profiling Support
1306ece0e6faSBo Chen
1307ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
1308ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
1309ece0e6faSBo Chen
1310ece0e6faSBo Chen### Documentation Improvements
1311ece0e6faSBo Chen
1312ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
1313ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
1314abcbf434SRuoqing Hereferences to [TDX Linux](https://github.com/intel/tdx-linux), and
1315ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
1316ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
1317ece0e6faSBo Chenexisting 'profiling' documentation.
1318ece0e6faSBo Chen
1319ece0e6faSBo Chen### Notable Bug Fixes
1320ece0e6faSBo Chen
1321ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
1322ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
1323ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
1324ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
1325ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
1326ece0e6faSBo Chen
1327ece0e6faSBo Chen### Contributors
1328ece0e6faSBo Chen
1329ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
1330ece0e6faSBo Chen
1331ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
1332ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
1333ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
1334ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
1335ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
1336ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
1337ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
1338ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1339ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
1340ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1341ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
1342ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
1343ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
1344ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
1345ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
1346ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
1347ece0e6faSBo Chen
1348ece0e6faSBo Chen# v28.2
1349ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
1350ece0e6faSBo Chen
1351ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
1352ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
1353ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
1354ece0e6faSBo Chen
135522cf8c97SRob Bradford# v29.0
135622cf8c97SRob Bradford
13576fa7c84dSRuoqing HeThis release has been tracked in [v29.0
13586fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v29.0%22)
13596fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
136022cf8c97SRob Bradford
136122cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
136222cf8c97SRob Bradford
136322cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
136422cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
136522cf8c97SRob Bradford
136622cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
136722cf8c97SRob Bradford
136822cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
136922cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
137022cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
137122cf8c97SRob Bradfordsupported but has worked for some versions.)
137222cf8c97SRob Bradford
137322cf8c97SRob Bradford### Heap Allocation Improvements
137422cf8c97SRob Bradford
137522cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
137622cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
137722cf8c97SRob Bradford
137822cf8c97SRob Bradford### `ch-remote` Improvements
137922cf8c97SRob Bradford
138022cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
138122cf8c97SRob Bradford`ch-remote`.
138222cf8c97SRob Bradford
138322cf8c97SRob Bradford### `AArch64` Documentation Integration
138422cf8c97SRob Bradford
138522cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
138622cf8c97SRob BradfordREADME.
138722cf8c97SRob Bradford
138822cf8c97SRob Bradford### `virtio-block` Counters Enhancement
138922cf8c97SRob Bradford
139022cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
139122cf8c97SRob Bradfordlatency counters.
139222cf8c97SRob Bradford
139322cf8c97SRob Bradford### TCP Offload Control
139422cf8c97SRob Bradford
139522cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
139622cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
139722cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
139822cf8c97SRob Bradford
139922cf8c97SRob Bradford### Notable Bug Fixes
140022cf8c97SRob Bradford
140122cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
140222cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
140322cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
140422cf8c97SRob Bradford  (#4924, #4949)
140522cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
140622cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
140722cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
140822cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
140922cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
141022cf8c97SRob Bradford
141122cf8c97SRob Bradford### Removals
141222cf8c97SRob Bradford
141322cf8c97SRob BradfordNo functionality has been removed in this release.
141422cf8c97SRob Bradford
141522cf8c97SRob Bradford### Deprecations
141622cf8c97SRob Bradford
141722cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
141822cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
141922cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
142022cf8c97SRob Bradford  (#5085)
142122cf8c97SRob Bradford
142222cf8c97SRob Bradford### Contributors
142322cf8c97SRob Bradford
142422cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
142522cf8c97SRob Bradford
142622cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
142722cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
142822cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
142922cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
143022cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
143122cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
143222cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
143322cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
143422cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
143522cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
143622cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
143722cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
143822cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
143922cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
144022cf8c97SRob Bradford
144122cf8c97SRob Bradford
144222cf8c97SRob Bradford# v28.1
144322cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
144422cf8c97SRob Bradford
144522cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
144622cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
144722cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
144822cf8c97SRob Bradford  (#4924, #4949)
144922cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
145022cf8c97SRob Bradford* Improve README and documentation
145122cf8c97SRob Bradford
145266460765SRob Bradford# v28.0
145366460765SRob Bradford
14546fa7c84dSRuoqing HeThis release has been tracked in [v28.0
14556fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v28.0%22)
14566fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
145766460765SRob Bradford
145866460765SRob Bradford### Community Engagement (Reminder)
145966460765SRob Bradford
146066460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
146166460765SRob Bradforddiscussions.  Please consider
146266460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
146366460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
146466460765SRob BradfordHypervisor development.
146566460765SRob Bradford
146666460765SRob Bradford### Long Term Support (LTS) Release
146766460765SRob Bradford
146866460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
146966460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
147066460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
147166460765SRob Bradfordreleases of the LTS.
147266460765SRob Bradford
147366460765SRob Bradford### Virtualised TPM Support
147466460765SRob Bradford
147542e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM
147666460765SRob Bradforddocumentation](docs/tpm.md).
147766460765SRob Bradford
147866460765SRob Bradford### Transparent Huge Page Support
147966460765SRob Bradford
148066460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
148166460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
148266460765SRob Bradfordthen this will be used resulting in improved boot performance.
148366460765SRob Bradford
148466460765SRob Bradford### README Quick Start Improved
148566460765SRob Bradford
148666460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
148766460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
148866460765SRob Bradford
148966460765SRob Bradford### Notable Bug Fixes
149066460765SRob Bradford
149166460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
149266460765SRob Bradford  memory consumption (#4835)
149366460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
149466460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
149566460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
149666460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
149766460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
149866460765SRob Bradford  newer Linux kernels (#4744)
149966460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
150066460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
150166460765SRob Bradford
150266460765SRob Bradford### Removals
150366460765SRob Bradford
150466460765SRob BradfordThe following functionality has been removed:
150566460765SRob Bradford
150666460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
150766460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
150866460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
150966460765SRob Bradford
151066460765SRob Bradford### Contributors
151166460765SRob Bradford
151266460765SRob BradfordMany thanks to everyone who has contributed to our release:
151366460765SRob Bradford
151466460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
151566460765SRob Bradford* Bo Chen <chen.bo@intel.com>
151666460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
151766460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
151866460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
151966460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
152066460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
152166460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
152266460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
152366460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
152466460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
152566460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
152666460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
152766460765SRob Bradford
15282ba6a9bfSRob Bradford# v27.0
15292ba6a9bfSRob Bradford
15306fa7c84dSRuoqing HeThis release has been tracked in [v27.0
15316fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v27.0%22)
15326fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
15332ba6a9bfSRob Bradford
15342ba6a9bfSRob Bradford### Community Engagement
15352ba6a9bfSRob Bradford
15362ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
15372ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
15382ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
15392ba6a9bfSRob Bradford
15402ba6a9bfSRob Bradford### Prebuilt Packages
15412ba6a9bfSRob Bradford
15422ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
15432ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
15442ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
15452ba6a9bfSRob Bradfordfirmware options available.
15462ba6a9bfSRob Bradford
15472ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
15482ba6a9bfSRob Bradford
15492ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
15502ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
15512ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
15522ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
15532ba6a9bfSRob Bradford(#4658, #4676.)
15542ba6a9bfSRob Bradford
15552ba6a9bfSRob Bradford### Boot Tracing
15562ba6a9bfSRob Bradford
15572ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
15582ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
15592ba6a9bfSRob Bradford
15602ba6a9bfSRob Bradford### Simplified Build Feature Flags
15612ba6a9bfSRob Bradford
15622ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
15632ba6a9bfSRob Bradford
15642ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
15652ba6a9bfSRob Bradford  (with `kvm` enabled by default),
15662ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
15672ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
15682ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
15692ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
15702ba6a9bfSRob Bradford  feature) and dumping guest memory.
15712ba6a9bfSRob Bradford
15722ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
15732ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
15742ba6a9bfSRob Bradford
15752ba6a9bfSRob Bradford### Asynchronous Kernel Loading
15762ba6a9bfSRob Bradford
15772ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
15782ba6a9bfSRob Bradfordx86-64. (#4538)
15792ba6a9bfSRob Bradford
15802ba6a9bfSRob Bradford### GDB Support for AArch64
15812ba6a9bfSRob Bradford
15822ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
15832ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
15842ba6a9bfSRob Bradford
15852ba6a9bfSRob Bradford### Notable Bug Fixes
15862ba6a9bfSRob Bradford
15872ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
15882ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
15892ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
15902ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
15912ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
15922ba6a9bfSRob Bradford
15932ba6a9bfSRob Bradford### Deprecations
15942ba6a9bfSRob Bradford
15952ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
15962ba6a9bfSRob Bradfordplan to use alternatives.
15972ba6a9bfSRob Bradford
15982ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
15992ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
16002ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
16012ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
16022ba6a9bfSRob Bradford
16032ba6a9bfSRob Bradford### Contributors
16042ba6a9bfSRob Bradford
16052ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
16062ba6a9bfSRob Bradford
16072ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
16082ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
16092ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
16102ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16112ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
16122ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
16132ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
16142ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
16152ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16162ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
16172ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
16182ba6a9bfSRob Bradford
1619ed9e54d6SRob Bradford# v26.0
1620ed9e54d6SRob Bradford
1621ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1622ed9e54d6SRob Bradford
1623ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1624ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1625ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1626ed9e54d6SRob Bradford
1627ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1628ed9e54d6SRob Bradford
1629ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1630ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1631ed9e54d6SRob Bradford
1632ed9e54d6SRob Bradford### Notable Bug Fixes
1633ed9e54d6SRob Bradford
1634ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
16357bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1636ed9e54d6SRob Bradford  out (#4456)
1637ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1638ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1639ed9e54d6SRob Bradford  (#4269, #4293)
1640ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1641ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1642ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1643ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1644ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1645ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1646ed9e54d6SRob Bradford
1647ed9e54d6SRob Bradford### Deprecations
1648ed9e54d6SRob Bradford
1649ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1650ed9e54d6SRob Bradfordplan to use alternatives.
1651ed9e54d6SRob Bradford
1652ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1653ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1654ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1655ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1656ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1657ed9e54d6SRob Bradford
1658ed9e54d6SRob Bradford### Removals
1659ed9e54d6SRob Bradford
1660ed9e54d6SRob BradfordThe following functionality has been removed:
1661ed9e54d6SRob Bradford
1662ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
166342e9632cSJosh Soref  equivalent. This was residual from the removal of the `vhost-user-block`
1664ed9e54d6SRob Bradford  spawning feature (#4402.)
1665ed9e54d6SRob Bradford
1666ed9e54d6SRob Bradford### Contributors
1667ed9e54d6SRob Bradford
1668ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1669ed9e54d6SRob Bradford
1670ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1671ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1672ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1673ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1674ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1675ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1676ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1677ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1678ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1679ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1680ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1681ed9e54d6SRob Bradford
1682b132cd21SRob Bradford# v25.0
1683b132cd21SRob Bradford
1684b132cd21SRob Bradford### `ch-remote` Improvements
1685b132cd21SRob Bradford
1686b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1687b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1688b132cd21SRob Bradford
1689b132cd21SRob Bradford### VM "Coredump" Support
1690b132cd21SRob Bradford
1691b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1692b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1693b132cd21SRob Bradford
1694b132cd21SRob Bradford### Notable Bug Fixes
1695b132cd21SRob Bradford
1696b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1697b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1698b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1699b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1700b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1701b132cd21SRob Bradford  5.16 (#4156)
1702b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1703b132cd21SRob Bradford  Linux guest
1704b132cd21SRob Bradford
1705b132cd21SRob Bradford### Removals
1706b132cd21SRob Bradford
1707b132cd21SRob BradfordThe following functionality has been removed:
1708b132cd21SRob Bradford
1709b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1710b132cd21SRob Bradford  (#3968)
1711b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1712b132cd21SRob Bradford
1713b132cd21SRob Bradford### Contributors
1714b132cd21SRob Bradford
1715b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1716b132cd21SRob Bradford
1717b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1718b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1719b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1720b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1721b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1722b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1723b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1724b132cd21SRob Bradford
17250150de55SSebastien Boeuf# v24.0
17260150de55SSebastien Boeuf
17270150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
17280150de55SSebastien Boeuf
17290150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
17300150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
17310150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
17320150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
17330150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
17340150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
17350150de55SSebastien Boeuf
17360150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
17370150de55SSebastien Boeuf
17380150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
17390150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
17400150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
17410150de55SSebastien Boeuf
17420150de55SSebastien Boeuf### Sparse Mmap support
17430150de55SSebastien Boeuf
17440150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
17450150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
17460150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
17470150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
17480150de55SSebastien Boeufimpacts the performance related to this device.
17490150de55SSebastien Boeuf
17500150de55SSebastien Boeuf### Expose Platform Serial Number
17510150de55SSebastien Boeuf
17520150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
17530150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
17540150de55SSebastien Boeufguest through the SMBIOS.
17550150de55SSebastien Boeuf
17560150de55SSebastien Boeuf### Notable Bug Fixes
17570150de55SSebastien Boeuf
17580150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
17590150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
17600150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
17610150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
17620150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
17630150de55SSebastien Boeuf
17640150de55SSebastien Boeuf### Notable Improvements
17650150de55SSebastien Boeuf
17660150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
17670150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
17680150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
17690150de55SSebastien Boeuf
17700150de55SSebastien Boeuf### Deprecations
17710150de55SSebastien Boeuf
17720150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
17730150de55SSebastien Boeufplan to use alternatives
17740150de55SSebastien Boeuf
17750150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
17760150de55SSebastien Boeuf  (#3968)
17770150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
17780150de55SSebastien Boeuf
17790150de55SSebastien Boeuf### New on the Website
17800150de55SSebastien Boeuf
17810150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
17820150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
17830150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
17840150de55SSebastien Boeuf
17850150de55SSebastien Boeuf### Contributors
17860150de55SSebastien Boeuf
17870150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
17880150de55SSebastien Boeuf
17890150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
17900150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
17910150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17920150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
17930150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
17940150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
17950150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
17960150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
17970150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
17980150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
17990150de55SSebastien Boeuf
18000150de55SSebastien Boeuf# v23.1
18010150de55SSebastien Boeuf
18020150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
18030150de55SSebastien Boeuf
18040150de55SSebastien Boeuf* Add some missing seccomp rules
18050150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
18060150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
18070150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
18080150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
18090150de55SSebastien Boeuf
18100c9c56f5SRob Bradford# v23.0
18110c9c56f5SRob Bradford
18120c9c56f5SRob Bradford### vDPA Support
18130c9c56f5SRob Bradford
18140c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
18150c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
18160c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
18170c9c56f5SRob Bradford
18180c9c56f5SRob Bradford### Updated OS Support list
18190c9c56f5SRob Bradford
18200c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
18210c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
18220c9c56f5SRob Bradford
18230c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
18240c9c56f5SRob Bradford
18250c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
18260c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
18270c9c56f5SRob Bradfordallocated RAM. (#3938)
18280c9c56f5SRob Bradford
18290c9c56f5SRob Bradford### `AMX` Support
18300c9c56f5SRob Bradford
18310c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
18320c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
18330c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
18340c9c56f5SRob Bradford
18350c9c56f5SRob Bradford### Notable Bug Fixes
18360c9c56f5SRob Bradford
18370c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
18380c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
18390c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
18400c9c56f5SRob Bradford  `virtio-mem` (#3883)
18410c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
18420c9c56f5SRob Bradford  vIOMMU (#3870)
18430c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
18440c9c56f5SRob Bradford  (#3848)
18450c9c56f5SRob Bradford
18460c9c56f5SRob Bradford### Deprecations
18470c9c56f5SRob Bradford
18480c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
18490c9c56f5SRob Bradfordplan to use alternatives
18500c9c56f5SRob Bradford
18510c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
18520c9c56f5SRob Bradford  (#3968)
18530c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
18540c9c56f5SRob Bradford
18550c9c56f5SRob Bradford### Contributors
18560c9c56f5SRob Bradford
18570c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
18580c9c56f5SRob Bradford
18590c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
18600c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
18610c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
18620c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
18630c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
18640c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
18650c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
18660c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
18670c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
18680c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
18690c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
18700c9c56f5SRob Bradford
18710c9c56f5SRob Bradford# v22.1
18720c9c56f5SRob Bradford
18730c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
18740c9c56f5SRob Bradford
18750c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
18760c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
18770c9c56f5SRob Bradford
18786aa10938SRob Bradford# v22.0
18796aa10938SRob Bradford
18806aa10938SRob Bradford### GDB Debug Stub Support
18816aa10938SRob Bradford
18826aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
18836aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
18846aa10938SRob Bradfordthe [gdb
18856aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
18866aa10938SRob Bradford
18876aa10938SRob Bradford### `virtio-iommu` Backed Segments
18886aa10938SRob Bradford
18896aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
18906aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
18916aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
18926aa10938SRob Bradford
18936aa10938SRob Bradford### Before Boot Configuration Changes
18946aa10938SRob Bradford
18956aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
18966aa10938SRob Bradfordresize) before the VM is booted.
18976aa10938SRob Bradford
18986aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
18996aa10938SRob Bradford
19006aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
19016aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
19026aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
19036aa10938SRob Bradfordmemory density.
19046aa10938SRob Bradford
19056aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
19066aa10938SRob Bradford
19076aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
19086aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
19096aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
19106aa10938SRob Bradfordhas been updated for this usage.
19116aa10938SRob Bradford
19126aa10938SRob Bradford### PMU Support for AArch64
19136aa10938SRob Bradford
19146aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
19156aa10938SRob Bradfordexposed automatically if available from the host.
19166aa10938SRob Bradford
19170c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
19186aa10938SRob Bradford
19196aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
19206aa10938SRob BradfordInternational" license which is aligned with the project charter under the
19216aa10938SRob BradfordLinux Foundation.
19226aa10938SRob Bradford
19236aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
19246aa10938SRob Bradford
19256aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
19266aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
19276aa10938SRob Bradfordversion.
19286aa10938SRob Bradford
19296aa10938SRob Bradford### Notable Bug Fixes
19306aa10938SRob Bradford
19316aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
19326aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
19336aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
19346aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
19356aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
19366aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
19376aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
19386aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
19396aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
19406aa10938SRob Bradford
19416aa10938SRob Bradford### Contributors
19426aa10938SRob Bradford
19436aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
19446aa10938SRob Bradford
19456aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
19466aa10938SRob Bradford* Barret Rhoden <brho@google.com>
19476aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
19486aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
19496aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
19506aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
19516aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
19526aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
19536aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
19546aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
19556aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
19566aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
19576aa10938SRob Bradford
195895ca7997SRob Bradford# v21.0
195995ca7997SRob Bradford
196095ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
196195ca7997SRob Bradford
19626aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
19636aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
19646aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
19656aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
19666aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
196795ca7997SRob Bradford
196895ca7997SRob Bradford### Recommended Kernel is Now 5.15
196995ca7997SRob Bradford
19706aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
19716aa10938SRob Bradfordis now 5.15. (#3530)
197295ca7997SRob Bradford
197395ca7997SRob Bradford### Notable Bug fixes
197495ca7997SRob Bradford
19757bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
197695ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
197795ca7997SRob Bradford* Support live migration within firmware (#3586)
19787bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
197995ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
198095ca7997SRob Bradford
198195ca7997SRob Bradford### Contributors
198295ca7997SRob Bradford
198395ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
198495ca7997SRob Bradford
198595ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
198695ca7997SRob Bradford* Barret Rhoden <brho@google.com>
198795ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
198895ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
198995ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
199095ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
199195ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
199295ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
199395ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
199495ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
199595ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
199695ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
199795ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
199895ca7997SRob Bradford
199995ca7997SRob Bradford# v20.2
200095ca7997SRob Bradford
200195ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
200295ca7997SRob Bradford
200395ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
200495ca7997SRob Bradford  when this fails due to older kernel (#3456)
200595ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
200695ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
200795ca7997SRob Bradford  (#3496)
200895ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
200995ca7997SRob Bradford
201095ca7997SRob Bradford# v20.1
201195ca7997SRob Bradford
201295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
201395ca7997SRob Bradford
201495ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
201595ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
201695ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
201795ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
201895ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
201995ca7997SRob Bradford
20207fc0776aSSebastien Boeuf# v20.0
20217fc0776aSSebastien Boeuf
20227fc0776aSSebastien Boeuf### Multiple PCI segments support
20237fc0776aSSebastien Boeuf
20247fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
20257fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
20267fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
20277fc0776aSSebastien Boeuf
20287fc0776aSSebastien Boeuf### CPU pinning
20297fc0776aSSebastien Boeuf
20307fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
20317fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
20327fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
20337fc0776aSSebastien Boeuf
20347fc0776aSSebastien Boeuf### Improved VFIO support
20357fc0776aSSebastien Boeuf
20367fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
20377fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
20387fc0776aSSebastien Boeufthe passthrough device.
20397fc0776aSSebastien Boeuf
20407fc0776aSSebastien Boeuf### Safer code
20417fc0776aSSebastien Boeuf
20427fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
20437fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
20447fc0776aSSebastien Boeufunsafe sections are safe to use.
20457fc0776aSSebastien Boeuf
20467fc0776aSSebastien Boeuf### Extended documentation
20477fc0776aSSebastien Boeuf
20487fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
20497fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
20507fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
20517fc0776aSSebastien Boeuf
20527fc0776aSSebastien Boeuf### Notable bug fixes
20537fc0776aSSebastien Boeuf
20547fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
20557fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
20567fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
20577fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
20587fc0776aSSebastien Boeuf
20597fc0776aSSebastien Boeuf### Contributors
20607fc0776aSSebastien Boeuf
20617fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
20627fc0776aSSebastien Boeuf
20637fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
20647fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
20657fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
20667fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
20677fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
20687fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
20697fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
20707fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
20717fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
20727fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
20737fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
20747fc0776aSSebastien Boeuf
2075d00eb4aaSRob Bradford# v19.0
2076d00eb4aaSRob Bradford
2077d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
2078d00eb4aaSRob Bradford
2079d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
2080d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
2081d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
2082d00eb4aaSRob Bradford
2083d00eb4aaSRob Bradford### PCI boot time optimisations
2084d00eb4aaSRob Bradford
2085d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
2086d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
2087d00eb4aaSRob Bradford
2088d00eb4aaSRob Bradford### Improved TDX support
2089d00eb4aaSRob Bradford
2090d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
2091d00eb4aaSRob Bradfordexposed via the firmware to the guest.
2092d00eb4aaSRob Bradford
2093d00eb4aaSRob Bradford### Live migration enhancements
2094d00eb4aaSRob Bradford
2095d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
2096d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
2097d00eb4aaSRob Bradfordmigration.
2098d00eb4aaSRob Bradford
2099d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
2100d00eb4aaSRob Bradford
2101d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
2102d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
2103d00eb4aaSRob Bradford
2104d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
2105d00eb4aaSRob Bradford
2106d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
2107d00eb4aaSRob Bradford
2108d00eb4aaSRob Bradford### Notable bug fixes
2109d00eb4aaSRob Bradford
2110d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
2111d00eb4aaSRob Bradford  snapshot/restore (#3165)
2112d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
2113d00eb4aaSRob Bradford  (#3078 #3113)
2114d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
2115d00eb4aaSRob Bradford  the underlying crate (#3157)
2116d00eb4aaSRob Bradford
2117d00eb4aaSRob Bradford### Contributors
2118d00eb4aaSRob Bradford
2119d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
2120d00eb4aaSRob Bradford
2121d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
2122d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
2123d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
2124d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
2125d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2126d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
2127d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
2128d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
2129d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
2130d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2131d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
2132d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
2133d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2134d00eb4aaSRob Bradford
21352c4f8d22SRob Bradford# v18.0
21362c4f8d22SRob Bradford
21372c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
21382c4f8d22SRob Bradford
21392c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
21402c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
21412c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
21422c4f8d22SRob Bradford
21432c4f8d22SRob Bradford### Migration support for `vhost-user` devices
21442c4f8d22SRob Bradford
21452c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
21462c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
21472c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
21482c4f8d22SRob Bradford
21492c4f8d22SRob Bradford### VHDX disk image support
21502c4f8d22SRob Bradford
21512c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
21522c4f8d22SRob Bradford
21532c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
21542c4f8d22SRob Bradford
21552c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
21562c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
21572c4f8d22SRob Bradford
21582c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
21592c4f8d22SRob Bradford
21602c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
21612c4f8d22SRob Bradford
21622c4f8d22SRob Bradford### Live migration on MSHV hypervisor
21632c4f8d22SRob Bradford
21642c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
21652c4f8d22SRob Bradfordefficient tracking of dirty pages.
21662c4f8d22SRob Bradford
21672c4f8d22SRob Bradford### AArch64 CPU topology support
21682c4f8d22SRob Bradford
21692c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
21702c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
21712c4f8d22SRob Bradfordtree.
21722c4f8d22SRob Bradford
21732c4f8d22SRob Bradford### Power button support on AArch64
21742c4f8d22SRob Bradford
21752c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
21762c4f8d22SRob Bradfordis now supported when running on AArch64.
21772c4f8d22SRob Bradford
21782c4f8d22SRob Bradford### Notable bug fixes
21792c4f8d22SRob Bradford
21802c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
21812c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
21822c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
21832c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
21842c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
21852c4f8d22SRob Bradford
21862c4f8d22SRob Bradford### Contributors
21872c4f8d22SRob Bradford
21882c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
21892c4f8d22SRob Bradford
21902c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
21912c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
21922c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
21932c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
21942c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
21952c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
21962c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
21972c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
21982c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
21992c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
22002c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
22012c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
22022c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
22032c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2204e6db5999SRob Bradford
2205e6db5999SRob Bradford# v17.0
2206e6db5999SRob Bradford
2207e6db5999SRob Bradford### ARM64 NUMA support using ACPI
2208e6db5999SRob Bradford
2209e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
2210e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
2211e6db5999SRob Bradford
2212e6db5999SRob Bradford### `Seccomp` support for MSHV backend
2213e6db5999SRob Bradford
2214e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
2215e6db5999SRob Bradfordhypervisor backend.
2216e6db5999SRob Bradford
2217e6db5999SRob Bradford### Hotplug of `macvtap` devices
2218e6db5999SRob Bradford
2219e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
2220e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
2221e6db5999SRob Bradfordtool supports this functionality when adding a network device.
2222e6db5999SRob Bradford
2223e6db5999SRob Bradford### Improved SGX support
2224e6db5999SRob Bradford
2225e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
2226e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
2227e6db5999SRob Bradford
2228e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
2229e6db5999SRob Bradford
2230e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
2231e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
2232e6db5999SRob Bradford
2233e6db5999SRob Bradford### Notable bug fixes
2234e6db5999SRob Bradford
2235e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
2236e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
2237e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
2238e6db5999SRob Bradford(#2833).
2239e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
2240e6db5999SRob Bradford
2241e6db5999SRob Bradford### Contributors
2242e6db5999SRob Bradford
2243e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
2244e6db5999SRob Bradford
2245e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2246e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
2247e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
2248e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
2249e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2250e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
2251e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2252e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
2253e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2254e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
2255e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2256e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2257e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
2258e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
2259e6db5999SRob Bradford
22605ed8e01fSRob Bradford# v16.0
22615ed8e01fSRob Bradford
22625ed8e01fSRob Bradford### Improved live migration support
22635ed8e01fSRob Bradford
22645ed8e01fSRob 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.
22655ed8e01fSRob Bradford
22665ed8e01fSRob Bradford### Improved `vhost-user` support
22675ed8e01fSRob Bradford
22685ed8e01fSRob 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.
22695ed8e01fSRob Bradford
22705ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
22715ed8e01fSRob Bradford
22725ed8e01fSRob 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.
22735ed8e01fSRob Bradford
22745ed8e01fSRob Bradford### Notable bug fixes
22755ed8e01fSRob Bradford
22765ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
22775ed8e01fSRob 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).
22785ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
22795ed8e01fSRob Bradford
22805ed8e01fSRob Bradford### Removed functionality
22815ed8e01fSRob Bradford
22825ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
22835ed8e01fSRob Bradford
22845ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
22855ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
22865ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
22875ed8e01fSRob Bradford
22885ed8e01fSRob Bradford### Contributors
22895ed8e01fSRob Bradford
22905ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
22915ed8e01fSRob Bradford
22925ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
22935ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
22945ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
22955ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
22965ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
22975ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
22985ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
22995ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
23005ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
23015ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
23025ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
23035ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
23045ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
23055ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
23065ed8e01fSRob Bradford
230730a01277SRob Bradford# v15.0
230830a01277SRob Bradford
230930a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
231030a01277SRob Bradford
231130a01277SRob Bradford### Version numbering and stability guarantees
231230a01277SRob Bradford
231330a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
231430a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
231530a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
231630a01277SRob Bradford
231730a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
231830a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
231930a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
232030a01277SRob Bradford  will be documented in the release notes.
232130a01277SRob Bradford* Point releases will be made between individual releases where there are
232230a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
232330a01277SRob Bradford
232430a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
232530a01277SRob Bradford
232630a01277SRob Bradford* Snapshot/restore is not supported across different versions
232730a01277SRob Bradford* Live migration is not supported across different versions
232830a01277SRob Bradford* The following features are considered experimental and may change
232930a01277SRob Bradford  substantially between releases: TDX, SGX.
233030a01277SRob Bradford
233130a01277SRob Bradford### Network device rate limiting
233230a01277SRob Bradford
233330a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
233430a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
233530a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
233630a01277SRob Bradford
233730a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
233830a01277SRob Bradford
233930a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
234030a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
234130a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
234230a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
234330a01277SRob Bradford
234430a01277SRob Bradford### `--api-socket` supports file descriptor parameter
234530a01277SRob Bradford
234630a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
234730a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
234830a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
234930a01277SRob Bradford
235030a01277SRob Bradford### Bug fixes
235130a01277SRob Bradford
235230a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
235330a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
235430a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
235530a01277SRob Bradford  reprogram them (#1797,#1798)
235630a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
235730a01277SRob Bradford  exhaustion on the host) (#2517)
235830a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
235930a01277SRob Bradford  prevents snapshot & restore working (#2535)
236030a01277SRob Bradford
236130a01277SRob Bradford### Deprecations
236230a01277SRob Bradford
236330a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
236430a01277SRob Bradford
236530a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
236630a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
236730a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
236830a01277SRob Bradford
236930a01277SRob Bradford### Contributors
237030a01277SRob Bradford
237130a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
237230a01277SRob Bradford
237330a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
237430a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
237530a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
237630a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
237730a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
237830a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
237930a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
238030a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
238130a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
238230a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
238330a01277SRob Bradford* William Douglas <william.douglas@intel.com>
238430a01277SRob Bradford
238530a01277SRob Bradford# v0.14.1
238630a01277SRob Bradford
238730a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
238830a01277SRob Bradfordin this release:
238930a01277SRob Bradford
239030a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
239130a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
239230a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
239330a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
239430a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
239530a01277SRob Bradford
239640c63dcfSRob Bradford# v0.14.0
239740c63dcfSRob Bradford
239840c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
239940c63dcfSRob Bradford
240040c63dcfSRob Bradford### Structured event monitoring
240140c63dcfSRob Bradford
240240c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
240340c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
240440c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
240540c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
240640c63dcfSRob BradfordHypervisor API surface.
240740c63dcfSRob Bradford
240840c63dcfSRob Bradford### MSHV improvements
240940c63dcfSRob Bradford
241040c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
241140c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
241240c63dcfSRob Bradfordthe MSHV support.
241340c63dcfSRob Bradford
241440c63dcfSRob Bradford### Improved aarch64 platform
241540c63dcfSRob Bradford
241640c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
241740c63dcfSRob BradfordVM including an enhanced serial UART.
241840c63dcfSRob Bradford
241940c63dcfSRob Bradford### Updated hotplug documentation
242040c63dcfSRob Bradford
242140c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
242240c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
242340c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
242440c63dcfSRob Bradford
242540c63dcfSRob Bradford### PTY control for serial and `virtio-console`
242640c63dcfSRob Bradford
242740c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
242840c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
242940c63dcfSRob BradfordPTY subsystem.
243040c63dcfSRob Bradford
243140c63dcfSRob Bradford### Block device rate limiting
243240c63dcfSRob Bradford
243340c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
243440c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
243530a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
243640c63dcfSRob Bradford
243740c63dcfSRob Bradford
243840c63dcfSRob Bradford### Deprecations
243940c63dcfSRob Bradford
244040c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
244140c63dcfSRob Bradford
244240c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
244340c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
244440c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
244540c63dcfSRob Bradford
244640c63dcfSRob Bradford
244740c63dcfSRob Bradford### Contributors
244840c63dcfSRob Bradford
244940c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
245040c63dcfSRob Bradfordsome new faces.
245140c63dcfSRob Bradford
245242e9632cSJosh Soref* Bo Chen <chen.bo@intel.com>
245342e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com>
245442e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com>
245542e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
245642e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com>
245742e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com>
245842e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com>
245942e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com>
246042e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com>
246142e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com>
246242e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com>
246342e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com>
246442e9632cSJosh Soref* Zide Chen <zide.chen@intel.com>
246540c63dcfSRob Bradford
2466f58b6f84SRob Bradford# v0.13.0
2467f58b6f84SRob Bradford
2468f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
2469f58b6f84SRob Bradford
2470f58b6f84SRob Bradford### Wider VFIO device support
2471f58b6f84SRob Bradford
2472f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
2473f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
2474f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
2475f58b6f84SRob Bradforddrivers.
2476f58b6f84SRob Bradford
247740c63dcfSRob Bradford### Improved huge page support
2478f58b6f84SRob Bradford
2479f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
2480f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
2481f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
2482f58b6f84SRob Bradforddesired size in their pool.
2483f58b6f84SRob Bradford
2484f58b6f84SRob Bradford### MACvTAP support
2485f58b6f84SRob Bradford
2486f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
2487f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
2488f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
2489f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
2490f58b6f84SRob Bradford
2491f58b6f84SRob Bradford### VHD disk image support
2492f58b6f84SRob Bradford
2493f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
2494f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
2495f58b6f84SRob Bradford
2496f58b6f84SRob Bradford### Improved Virtio device threading
2497f58b6f84SRob Bradford
2498f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
2499f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
2500f58b6f84SRob Bradfordpredictable name derived from the device id.
2501f58b6f84SRob Bradford
2502f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
2503f58b6f84SRob Bradford
2504f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
2505f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
2506f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
2507f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
2508f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
2509f58b6f84SRob Bradford
2510f58b6f84SRob Bradford### Contributors
2511f58b6f84SRob Bradford
2512f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2513f58b6f84SRob Bradfordsome new faces.
2514f58b6f84SRob Bradford
2515f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2516f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2517f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2518f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2519f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2520f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2521f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2522f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2523f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2524f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2525f58b6f84SRob Bradford
2526d42b5084SRob Bradford# v0.12.0
2527d42b5084SRob Bradford
2528d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2529d42b5084SRob Bradford
2530d42b5084SRob Bradford### ARM64 enhancements
2531d42b5084SRob Bradford
2532d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2533d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2534d42b5084SRob Bradford
2535d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2536d42b5084SRob Bradford
2537d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2538d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2539d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2540d42b5084SRob Bradfordremoved.
2541d42b5084SRob Bradford
2542d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2543d42b5084SRob Bradford
2544d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
254542e9632cSJosh Sorefinstead hosted in [its own
2546d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2547d42b5084SRob Bradford
2548d42b5084SRob Bradford### Enhanced "info" API
2549d42b5084SRob Bradford
2550d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2551d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2552d42b5084SRob Bradford
2553d42b5084SRob Bradford### Contributors
2554d42b5084SRob Bradford
2555d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2556d42b5084SRob Bradford
2557d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2558d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2559d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2560d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2561d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2562d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2563d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2564d42b5084SRob Bradford
25657dcd3affSRob Bradford# v0.11.0
25667dcd3affSRob Bradford
25677dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
25687dcd3affSRob Bradford
25697dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
25707dcd3affSRob Bradford
25717dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
25727dcd3affSRob Bradfordbe used for a significantly higher performance block device.
25737dcd3affSRob Bradford
25747dcd3affSRob Bradford### Windows Guest Support
25757dcd3affSRob Bradford
25767dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
25777dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
25787dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
25797dcd3affSRob Bradforddocumentation](docs/windows.md).
25807dcd3affSRob Bradford
25817dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
25827dcd3affSRob Bradford
25837dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
25847dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
25857dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
25867dcd3affSRob Bradford
2587d00eb4aaSRob Bradford### `virtio-mmio` Removal
25887dcd3affSRob Bradford
25897dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
25907dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
25917dcd3affSRob Bradfordreduce the testing burden of the project.
25927dcd3affSRob Bradford
25937dcd3affSRob Bradford### Snapshot/Restore support for ARM64
25947dcd3affSRob Bradford
25957dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
25967dcd3affSRob Bradfordimplemented.
25977dcd3affSRob Bradford
25987dcd3affSRob Bradford### Improved Linux Boot Time
25997dcd3affSRob Bradford
26007dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
26017dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
26027dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
26037dcd3affSRob Bradford
26047dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
26057dcd3affSRob Bradford
26067dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
26077dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
26087dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
26097dcd3affSRob Bradfordresources.
26107dcd3affSRob Bradford
26117dcd3affSRob Bradford### Default Log Level Changed
26127dcd3affSRob Bradford
26137dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
26147dcd3affSRob Bradfordeasier to see potential issues. New [logging
26159988379fSRuoqing Hedocumentation](docs/logging.md) was also added.
26167dcd3affSRob Bradford
26177dcd3affSRob Bradford### New `--balloon` Parameter Added
26187dcd3affSRob Bradford
26197dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
26207dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
26217dcd3affSRob Bradfordcontrols without overloading `--memory`.
26227dcd3affSRob Bradford
26237dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
26247dcd3affSRob Bradford
26257dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
26267dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
26277dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
26287dcd3affSRob Bradford
26297dcd3affSRob Bradford### Notable Bug Fixes
26307dcd3affSRob Bradford
26317dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
26327dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
26337dcd3affSRob Bradford* CPU identification string is now exposed to the guest
26347dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
26357dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
26367dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
26377dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
26387dcd3affSRob Bradford  can be used (#1803)
26397dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
26407dcd3affSRob Bradford  correctly
26417dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
26427dcd3affSRob Bradford  correctly
26437dcd3affSRob Bradford
26447dcd3affSRob Bradford### Contributors
26457dcd3affSRob Bradford
26467dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
26477dcd3affSRob Bradford
26487dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
26497dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
26507dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
26517dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
26527dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
26537dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
26547dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
26557dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
26567dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
26577dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
26587dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
26597dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
26607dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
26617dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
26627dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
26637dcd3affSRob Bradford
26647dcd3affSRob Bradford
2665198bd551SRob Bradford# v0.10.0
2666198bd551SRob Bradford
2667198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2668198bd551SRob Bradford
2669198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2670198bd551SRob Bradford
2671198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2672198bd551SRob Bradford
2673198bd551SRob Bradford### Memory Zones
2674198bd551SRob Bradford
267542e9632cSJosh SorefSupport has been added for fine-grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
2676198bd551SRob Bradford
2677198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2678198bd551SRob Bradford
2679198bd551SRob 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`.
2680198bd551SRob Bradford
2681198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2682198bd551SRob Bradford
2683198bd551SRob 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.
2684198bd551SRob Bradford
2685198bd551SRob Bradford### Notable Bug Fixes
2686198bd551SRob Bradford
2687198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2688198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2689198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2690198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2691198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2692198bd551SRob Bradford
2693198bd551SRob Bradford### Contributors
2694198bd551SRob Bradford
2695198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2696198bd551SRob Bradford
2697198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2698198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2699198bd551SRob Bradford* Anatol Belski <ab@php.net>
2700198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2701198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2702198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2703198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2704198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2705198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2706198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2707198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2708198bd551SRob Bradford
2709d714cf81SRob Bradford# v0.9.0
2710d714cf81SRob Bradford
2711d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2712d714cf81SRob Bradford
2713d714cf81SRob Bradford### `io_uring` Based Block Device Support
2714d714cf81SRob Bradford
2715d714cf81SRob 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.
2716d714cf81SRob Bradford
2717d714cf81SRob Bradford### Block and Network Device Statistics
2718d714cf81SRob Bradford
2719d714cf81SRob 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.
2720d714cf81SRob Bradford
2721d714cf81SRob Bradford### HTTP API Responses
2722d714cf81SRob Bradford
2723d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2724d714cf81SRob Bradford
2725d714cf81SRob Bradford### CPU Topology
2726d714cf81SRob Bradford
2727d714cf81SRob 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.
2728d714cf81SRob Bradford
2729d714cf81SRob Bradford### Release Build Optimization
2730d714cf81SRob Bradford
2731d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2732d714cf81SRob Bradford
2733d714cf81SRob Bradford### Hypervisor Abstraction
2734d714cf81SRob Bradford
2735d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2736d714cf81SRob Bradford
2737d714cf81SRob Bradford### Snapshot/Restore Improvements
2738d714cf81SRob Bradford
2739d714cf81SRob 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.
2740d714cf81SRob Bradford
2741d714cf81SRob Bradford### Virtio Memory Ballooning Support
2742d714cf81SRob Bradford
2743d714cf81SRob 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.
2744d714cf81SRob Bradford
2745d714cf81SRob Bradford### Enhancements to ARM64 Support
2746d714cf81SRob Bradford
2747d714cf81SRob 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.
2748d714cf81SRob Bradford
2749d714cf81SRob Bradford### Intel SGX Support
2750d714cf81SRob Bradford
2751d714cf81SRob 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).
2752d714cf81SRob Bradford
2753d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2754d714cf81SRob Bradford
2755d714cf81SRob 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.
2756d714cf81SRob Bradford
2757d714cf81SRob Bradford### Notable Bug Fixes
2758d714cf81SRob Bradford
2759d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2760d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2761d714cf81SRob 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).
2762d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2763d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2764d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2765d714cf81SRob Bradford
2766d714cf81SRob Bradford### Contributors
2767d714cf81SRob Bradford
2768d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2769d714cf81SRob Bradford
2770d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2771d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2772d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2773d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2774d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2775d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2776d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2777d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2778d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2779d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2780d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2781d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2782d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2783d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2784d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2785d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2786d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2787d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2788d714cf81SRob Bradford
2789d714cf81SRob Bradford
279052b83969SRob Bradford# v0.8.0
279152b83969SRob Bradford
279252b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
279352b83969SRob Bradford
279452b83969SRob Bradford### Experimental Snapshot and Restore Support
279552b83969SRob Bradford
279652b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
279752b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
279852b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
279952b83969SRob Bradfordoriginal VM at the point it was paused.
280052b83969SRob Bradford
280152b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
280252b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
280352b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
280452b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
280552b83969SRob Bradford(#1176).
280652b83969SRob Bradford
280752b83969SRob Bradford### Experimental ARM64 Support
280852b83969SRob Bradford
280952b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
281052b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
2811dfebc892SRuoqing Hedetails can be found in the [ARM64 documentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/8ab15b9a984a448006f97b1211498c1bb583de3b/docs/arm64.md).
281252b83969SRob Bradford
281352b83969SRob Bradford### Support for Using 5-level Paging in Guests
281452b83969SRob Bradford
281552b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
281652b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
281752b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
281852b83969SRob Bradfordwork due to current limitations in the PVH boot process.
281952b83969SRob Bradford
282052b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
282152b83969SRob Bradford
282252b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
282352b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
282452b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
282552b83969SRob Bradfordthe guest must service.
282652b83969SRob Bradford
282752b83969SRob Bradford### `vhost_user_fs` Improvements
282852b83969SRob Bradford
282952b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
283052b83969SRob Bradford
283152b83969SRob Bradford
283252b83969SRob Bradford### Notable Bug Fixes
283352b83969SRob Bradford
283452b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
283552b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
283652b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
283752b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
283852b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
283952b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
284052b83969SRob Bradford  #1216).
284152b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
284252b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
284352b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
284452b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
284552b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
284652b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
284752b83969SRob Bradford  (#751).
284852b83969SRob Bradford
284952b83969SRob Bradford### Command Line and API Changes
285052b83969SRob Bradford
285152b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
285252b83969SRob Bradford
285352b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
285452b83969SRob Bradford  rather than `sock` in some cases.
285552b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
285652b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
285752b83969SRob Bradford  offered for negotiation.
285852b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
285952b83969SRob Bradford  address for the `tap` device on the host.
286052b83969SRob Bradford
286152b83969SRob Bradford### Contributors
286252b83969SRob Bradford
286352b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
286452b83969SRob Bradford
286552b83969SRob Bradford* Anatol Belski <ab@php.net>
286652b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
286752b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
286852b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
286952b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
287052b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
287152b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
287252b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
287352b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
287452b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
287552b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
287652b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
287752b83969SRob Bradford
287896be8229SRob Bradford# v0.7.0
287996be8229SRob Bradford
288096be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
288196be8229SRob Bradford
288296be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
288396be8229SRob Bradford
288496be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
288596be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
288696be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
28875c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
288896be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
288996be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
289096be8229SRob Bradforddevices to ease their removal.
289196be8229SRob Bradford
289296be8229SRob Bradford### Alternative `libc` Support
289396be8229SRob Bradford
289496be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
289596be8229SRob Bradfordcontains a static binary compiled using that toolchain.
289696be8229SRob Bradford
289796be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
289896be8229SRob Bradford
289996be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
290096be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
290196be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
290296be8229SRob Bradfordis passed when the devices are created.
290396be8229SRob Bradford
290496be8229SRob Bradford### Initial RamFS Support
290596be8229SRob Bradford
290696be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
290796be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
290896be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
290996be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
291096be8229SRob Bradfordminimal image.
291196be8229SRob Bradford
291296be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
291396be8229SRob Bradford
291496be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
291596be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
291696be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
291796be8229SRob Bradfordrequires kernel patches to be able to support it.
291896be8229SRob Bradford
291996be8229SRob Bradford### `Seccomp` Sandboxing
292096be8229SRob Bradford
292196be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
292296be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
292396be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
292496be8229SRob Bradford
292596be8229SRob Bradford### Updated Distribution Support
292696be8229SRob Bradford
292796be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
292896be8229SRob Bradforddistributions and is part of our regular testing programme.
292996be8229SRob Bradford
293096be8229SRob Bradford### Command Line and API Changes
293196be8229SRob Bradford
293296be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
293396be8229SRob Bradford
293496be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
293596be8229SRob Bradford  If no name is specified the VMM chooses one.
293696be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
293796be8229SRob Bradford  memory instead of providing a path.
293896be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
293996be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
294096be8229SRob Bradford  option and replaced it with a single optional field.
294196be8229SRob Bradford* There is enhanced validation of the command line and API provided
294296be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
294396be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
294496be8229SRob Bradford  device.
294596be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
294696be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
294796be8229SRob Bradford  has appropriate new HTTP endpoints too.
294896be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
294996be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
295096be8229SRob Bradford  to provide the equivalent of a read-only file.
295196be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
295296be8229SRob Bradford  with those used by `--disk`.
295396be8229SRob Bradford
295496be8229SRob Bradford### Contributors
295596be8229SRob Bradford
295696be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
295796be8229SRob Bradford
295896be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
295996be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
296096be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
296196be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
296296be8229SRob Bradford* Dean Sheather <dean@coder.com>
296396be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
296496be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
296596be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
296696be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
296796be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
296896be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
296996be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
297096be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
297196be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
297296be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
297396be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
297496be8229SRob Bradford
297503cb26ccSSamuel Ortiz# v0.6.0
297603cb26ccSSamuel Ortiz
297703cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
297803cb26ccSSamuel Ortiz
297903cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
298003cb26ccSSamuel Ortiz
298103cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
298203cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
298303cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
298403cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
298503cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
298603cb26ccSSamuel Ortiz
298703cb26ccSSamuel Ortiz### Shared Filesystem Improvements
298803cb26ccSSamuel Ortiz
298903cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
299003cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
299103cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
299203cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
299303cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
299403cb26ccSSamuel Ortiz
299503cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
299603cb26ccSSamuel Ortiz
299703cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
299803cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
299903cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
300003cb26ccSSamuel Ortizinto their own, separate processes.
30015c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
300203cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
300303cb26ccSSamuel Ortiz
300403cb26ccSSamuel Ortiz### Command Line Interface
300503cb26ccSSamuel Ortiz
300603cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
300737a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
300837a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
300937a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
301037a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
301137a2c13aSAlyssa Rossis created with each build and available e.g. at
301203cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
301303cb26ccSSamuel Ortiz
301403cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
301503cb26ccSSamuel Ortizcommands.
301603cb26ccSSamuel Ortiz
301703cb26ccSSamuel Ortiz### PVH Boot
301803cb26ccSSamuel Ortiz
301903cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
302003cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
302103cb26ccSSamuel Ortiz
302203cb26ccSSamuel Ortiz### Contributors
302303cb26ccSSamuel Ortiz
302403cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
302503cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
302603cb26ccSSamuel Ortiz
302703cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
302803cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
302903cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
303003cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
303103cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
303203cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
303303cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
303403cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
303503cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
303603cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
303703cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
303803cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
303903cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
304003cb26ccSSamuel Ortiz
304194f2fc33SRob Bradford# v0.5.1
304294f2fc33SRob Bradford
304394f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
304494f2fc33SRob Bradford
304594f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
304694f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
304794f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
304894f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
304994f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
30508e8a7b6dSSamuel Ortiz
30512f395e60SSamuel Ortiz# v0.5.0
30522f395e60SSamuel Ortiz
30532f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
30542f395e60SSamuel Ortiz
30552f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
30562f395e60SSamuel Ortiz
30572f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
30582f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
30592f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
30602f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
30612f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
30622f395e60SSamuel Ortiz
30632f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
30642f395e60SSamuel Ortiz
30652f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
30662f395e60SSamuel Ortiz
30672f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
30682f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
30692f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
30702f395e60SSamuel Ortiz
30712f395e60SSamuel Ortiz### New Interrupt Management Framework
30722f395e60SSamuel Ortiz
30732f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
30742f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
30752f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
30762f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
30772f395e60SSamuel Ortizvirtio ones.
30782f395e60SSamuel Ortiz
30792f395e60SSamuel Ortiz### Development Tools
30802f395e60SSamuel Ortiz
30812f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
30822f395e60SSamuel Ortizbuild, development and testing tools.
30832f395e60SSamuel OrtizSomehow similar to the excellent
30842f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
308537a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
30862f395e60SSamuel Ortiz
30872f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
30882f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
30892f395e60SSamuel Ortiz
30902f395e60SSamuel Ortiz### Kata Containers Integration
30912f395e60SSamuel Ortiz
30922f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
30932f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
30942f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
30952f395e60SSamuel Ortizintegrated into the project's CI.
30962f395e60SSamuel Ortiz
30972f395e60SSamuel Ortiz### Contributors
30982f395e60SSamuel Ortiz
30992f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
31002f395e60SSamuel Ortiz
31012f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
31022f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
31032f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
31042f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
31052f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
31062f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
31072f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
31082f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
31092f395e60SSamuel Ortiz
3110cec884e8SSamuel Ortiz# v0.4.0
3111cec884e8SSamuel Ortiz
3112cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
3113cec884e8SSamuel Ortiz
3114cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
3115cec884e8SSamuel Ortiz
3116e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
3117cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
3118cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
3119cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
312037a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
3121cec884e8SSamuel Ortiz
3122cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
3123cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
3124cec884e8SSamuel Ortiz
3125cec884e8SSamuel Ortiz### Programmatic firmware tables generation
3126cec884e8SSamuel Ortiz
3127cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
3128cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
3129cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
3130cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
3131cec884e8SSamuel Ortiztables based on the VMM device model and topology.
3132cec884e8SSamuel Ortiz
3133cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
3134cec884e8SSamuel Ortiz
3135cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
3136cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
3137cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
3138cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
3139cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
3140cec884e8SSamuel Ortiz
3141cec884e8SSamuel Ortiz### Guest pause and resume
3142cec884e8SSamuel Ortiz
31435c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
3144cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
3145cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
3146cec884e8SSamuel Ortizand resume capabilities.
3147cec884e8SSamuel Ortiz
3148cec884e8SSamuel Ortiz### Userspace IOAPIC by default
3149cec884e8SSamuel Ortiz
3150cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
3151cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
3152cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
3153cec884e8SSamuel Ortizdefault.
3154cec884e8SSamuel Ortiz
3155cec884e8SSamuel Ortiz### PCI BAR reprogramming
3156cec884e8SSamuel Ortiz
3157cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
3158cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
3159cec884e8SSamuel Ortizreprogramming.
3160cec884e8SSamuel Ortiz
3161cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
3162cec884e8SSamuel Ortiz
3163cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
3164cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
3165cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
3166cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
3167cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3168cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
3169cec884e8SSamuel Ortiztemporarily fork.
3170cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
3171cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
3172cec884e8SSamuel Ortiz
3173cec884e8SSamuel Ortiz### Contributors
3174cec884e8SSamuel Ortiz
3175cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
3176cec884e8SSamuel Ortiz
3177cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
3178cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
3179cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
3180cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
3181cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
3182cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
3183cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
3184cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
3185cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
3186cec884e8SSamuel Ortiz
31878e8a7b6dSSamuel Ortiz# v0.3.0
31888e8a7b6dSSamuel Ortiz
31898e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
31908e8a7b6dSSamuel Ortiz
31918e8a7b6dSSamuel Ortiz### Block device offloading
31928e8a7b6dSSamuel Ortiz
31938e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
31948e8a7b6dSSamuel Ortizand we added support for
31958e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
31968e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
31978e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
31988e8a7b6dSSamuel Ortizbackend.
31998e8a7b6dSSamuel Ortiz
32008e8a7b6dSSamuel Ortiz### Network device backend
32018e8a7b6dSSamuel Ortiz
32028e8a7b6dSSamuel OrtizThe previous release provided support for
32038e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
32048e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
32058e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
32068e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
32078e8a7b6dSSamuel Ortiz
32088e8a7b6dSSamuel Ortiz### Virtual sockets
32098e8a7b6dSSamuel Ortiz
32108e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
32118e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
32128e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
32138e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
32148e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
32158e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
32168e8a7b6dSSamuel Ortiz
32178e8a7b6dSSamuel Ortiz### HTTP based API
32188e8a7b6dSSamuel Ortiz
32198e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
32208e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
32218e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
32228e8a7b6dSSamuel Ortiznext release cycle.
32238e8a7b6dSSamuel Ortiz
32248e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
32258e8a7b6dSSamuel Ortiz
32268e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
32278e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
32288e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
32298e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
32308e8a7b6dSSamuel Ortiz
32318e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
32328e8a7b6dSSamuel Ortiz
32338e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
323437a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
323537a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
32368e8a7b6dSSamuel Ortiz
32378e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
32388e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
32398e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
32408e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
32418e8a7b6dSSamuel Ortizsetting.
32428e8a7b6dSSamuel Ortiz
32438e8a7b6dSSamuel Ortiz### Ubuntu 19.10
32448e8a7b6dSSamuel Ortiz
32458ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
32468e8a7b6dSSamuel Ortizwe can now support the latest
32478e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
32488e8a7b6dSSamuel Ortiz
32498e8a7b6dSSamuel Ortiz### Large memory guests
32508e8a7b6dSSamuel Ortiz
32518e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
32528e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
32537688e6e2SSamuel Ortiz
3254d784ac29SSamuel Ortiz# v0.2.0
3255d784ac29SSamuel Ortiz
3256d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
3257d784ac29SSamuel Ortiz
3258d784ac29SSamuel Ortiz### Network device offloading
3259d784ac29SSamuel Ortiz
3260d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
3261d784ac29SSamuel Ortizprocesses, we added support for
3262d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
3263d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
32641c22c4a5SMuminul Islam(e.g. [DPDK](https://www.dpdk.org)) into the VMM as their virtio network backend.
3265d784ac29SSamuel Ortiz
3266d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
3267d784ac29SSamuel Ortiz
3268d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
3269d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
3270d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
3271d784ac29SSamuel Ortizcleanly reboot and shutdown.
3272d784ac29SSamuel Ortiz
3273d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
3274d784ac29SSamuel Ortizenabled by default.
3275d784ac29SSamuel Ortiz
3276d784ac29SSamuel Ortiz### Debug I/O port
3277d784ac29SSamuel Ortiz
3278d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
3279d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
3280730cf1e9SRuoqing He[0x80](https://web.archive.org/web/20211028033025/https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
3281d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
328237a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
328337a2c13aSAlyssa Rossdetails.
3284d784ac29SSamuel Ortiz
3285d784ac29SSamuel Ortiz### Improved direct device assignment
3286d784ac29SSamuel Ortiz
3287d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
3288d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
3289d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
3290d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
3291d784ac29SSamuel Ortizdirectly assigned devices.
3292d784ac29SSamuel Ortiz
3293d784ac29SSamuel Ortiz### Improved shared filesystem
3294d784ac29SSamuel Ortiz
3295d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
3296d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
3297d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
3298d784ac29SSamuel Ortizmemory footprint.
3299d784ac29SSamuel Ortiz
3300d784ac29SSamuel Ortiz### Ubuntu bionic based CI
3301d784ac29SSamuel Ortiz
33028ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3303d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
3304d784ac29SSamuel Ortizour CI pipeline.
3305d784ac29SSamuel Ortiz
330693b77530SSamuel Ortiz# v0.1.0
330793b77530SSamuel Ortiz
330893b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
330993b77530SSamuel Ortiz
331093b77530SSamuel Ortiz### Shared filesystem
331193b77530SSamuel Ortiz
331293b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
331393b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
331493b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
331593b77530SSamuel Ortiz
331637a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
331737a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
331893b77530SSamuel Ortiz
331993b77530SSamuel Ortiz### Initial direct device assignment support
332093b77530SSamuel Ortiz
332193b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
332293b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
332393b77530SSamuel Ortizphysical devices into its guest.
332493b77530SSamuel Ortiz
332537a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
332637a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
332793b77530SSamuel Ortiz
332893b77530SSamuel Ortiz### Userspace IOAPIC
332993b77530SSamuel Ortiz
333093b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
333193b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
333293b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
333393b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
333493b77530SSamuel Ortiz
333593b77530SSamuel Ortiz### Virtual persistent memory
333693b77530SSamuel Ortiz
333793b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
333893b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
333993b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
334093b77530SSamuel Ortiz
334193b77530SSamuel Ortiz### Linux kernel bzImage
334293b77530SSamuel Ortiz
334393b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
334493b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
334593b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
334693b77530SSamuel Ortizdistribution kernel image.
334793b77530SSamuel Ortiz
334893b77530SSamuel Ortiz### Console over virtio
334993b77530SSamuel Ortiz
335093b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
335193b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
335293b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
335393b77530SSamuel Ortizimplementation.
335493b77530SSamuel Ortiz
335593b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
335693b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
335793b77530SSamuel Ortiz`--serial tty --console off` from the command line.
335893b77530SSamuel Ortiz
335993b77530SSamuel Ortiz### Unit testing
336093b77530SSamuel Ortiz
336193b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
336293b77530SSamuel Ortiz
336393b77530SSamuel Ortiz### Integration tests parallelization
336493b77530SSamuel Ortiz
336593b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
336693b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
3367