xref: /cloud-hypervisor/release-notes.md (revision 49a389ff12b0cde80d995bd6a6a76b7bddb8f01f)
1*49a389ffSRob Bradford- [v43.0](#v430)
2*49a389ffSRob Bradford    - [Live Migration over TCP Connections](#live-migration-over-tcp-connections)
3*49a389ffSRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements)
4*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
5*49a389ffSRob Bradford    - [Contributors](#contributors)
658850d26SRob Bradford- [v42.0](#v420)
758850d26SRob Bradford    - [SVE/SVE2 Support on AArch64](#svesve2-support-on-aarch64)
8*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
958850d26SRob Bradford    - [Sponsorships](#sponsorships)
10*49a389ffSRob Bradford    - [Contributors](#contributors-1)
11ea3e2ff6SRob Bradford- [v41.0](#v410)
12ea3e2ff6SRob Bradford    - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support)
13ea3e2ff6SRob Bradford    - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support)
14*49a389ffSRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements-1)
1558850d26SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
1658850d26SRob Bradford    - [Contributors](#contributors-2)
17*49a389ffSRob Bradford- [v40.0](#v400)
18*49a389ffSRob Bradford    - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices)
19*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
20*49a389ffSRob Bradford    - [Contributors](#contributors-3)
214f96fa15SRob Bradford- [v39.0](#v390)
224f96fa15SRob Bradford    - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments)
234f96fa15SRob Bradford    - [Direct Booting with bzImages](#direct-booting-with-bzimages)
244f96fa15SRob Bradford    - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support)
254f96fa15SRob Bradford    - [Guest NMI Injection Support](#guest-nmi-injection-support)
26*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
27*49a389ffSRob Bradford    - [Contributors](#contributors-4)
28ef4fbf08SBo Chen- [v38.0](#v380)
29ef4fbf08SBo Chen    - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices)
30ef4fbf08SBo Chen    - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread)
31ef4fbf08SBo Chen    - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault)
32ef4fbf08SBo Chen    - [New 'debug-console' Device](#new-debug-console-device)
33ef4fbf08SBo Chen    - [Improved VFIO Device Support](#improved-vfio-device-support)
34ef4fbf08SBo Chen    - [Extended CPU Affinity Support](#extended-cpu-affinity-support)
35*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
36*49a389ffSRob Bradford    - [Contributors](#contributors-5)
375e702dcdSBo Chen- [v37.0](#v370)
385e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
39ef4fbf08SBo Chen    - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices)
405e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
415e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
425e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
43*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
44*49a389ffSRob Bradford    - [Contributors](#contributors-6)
45f5899d15SBo Chen- [v36.0](#v360)
46f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
47f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
48f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
49f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
50f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
51f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
52f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
53*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
54*49a389ffSRob Bradford    - [Contributors](#contributors-7)
55339912a5SBo Chen- [v35.0](#v350)
56339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
57339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
58339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
59*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
60*49a389ffSRob Bradford    - [Contributors](#contributors-8)
61487a43cdSRob Bradford- [v34.0](#v340)
62487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
63487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
64487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
65487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
66*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
67*49a389ffSRob Bradford    - [Contributors](#contributors-9)
68487a43cdSRob Bradford- [v33.0](#v330)
69487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
70487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
71*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
72*49a389ffSRob Bradford    - [Contributors](#contributors-10)
7342ca292dSRob Bradford- [v32.0](#v320)
7442ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
7542ca292dSRob Bradford    - [API Changes](#api-changes)
76*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
77*49a389ffSRob Bradford    - [Contributors](#contributors-11)
7842ca292dSRob Bradford- [v31.1](#v311)
79f3522e85SMichael Zhao- [v31.0](#v310)
80f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
81f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
82f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
83f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
84f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
85*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
86*49a389ffSRob Bradford    - [Contributors](#contributors-12)
87ece0e6faSBo Chen- [v30.0](#v300)
88ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
89ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
90ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
91f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
92*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-13)
93*49a389ffSRob Bradford    - [Contributors](#contributors-13)
94ece0e6faSBo Chen- [v28.2](#v282)
9522cf8c97SRob Bradford- [v29.0](#v290)
9622cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
9722cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
9822cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
9922cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
10022cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
10122cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
10222cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
103*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-14)
10422cf8c97SRob Bradford    - [Removals](#removals)
10522cf8c97SRob Bradford    - [Deprecations](#deprecations)
106*49a389ffSRob Bradford    - [Contributors](#contributors-14)
10722cf8c97SRob Bradford- [v28.1](#v281)
10866460765SRob Bradford- [v28.0](#v280)
10966460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
1105e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
11166460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
11266460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
11366460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
114*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-15)
11522cf8c97SRob Bradford    - [Removals](#removals-1)
116*49a389ffSRob Bradford    - [Contributors](#contributors-15)
1172ba6a9bfSRob Bradford- [v27.0](#v270)
1182ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
1192ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
1202ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
1212ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
1222ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
1232ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
1242ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
125*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-16)
126f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
127*49a389ffSRob Bradford    - [Contributors](#contributors-16)
128f3522e85SMichael Zhao- [v26.0](#v260)
129f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
130f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
131*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-17)
13222cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
13366460765SRob Bradford    - [Removals](#removals-2)
134*49a389ffSRob Bradford    - [Contributors](#contributors-17)
13522cf8c97SRob Bradford- [v25.0](#v250)
13622cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
13722cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
138*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-18)
13922cf8c97SRob Bradford    - [Removals](#removals-3)
140*49a389ffSRob Bradford    - [Contributors](#contributors-18)
1410150de55SSebastien Boeuf- [v24.0](#v240)
1420150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1430150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1440150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1450150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
146*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-19)
1470150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
14822cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1490150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
150*49a389ffSRob Bradford    - [Contributors](#contributors-19)
1510150de55SSebastien Boeuf- [v23.1](#v231)
1520c9c56f5SRob Bradford- [v23.0](#v230)
1530c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1540c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1550c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1560c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
157*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-20)
15822cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
159*49a389ffSRob Bradford    - [Contributors](#contributors-20)
1600c9c56f5SRob Bradford- [v22.1](#v221)
1616aa10938SRob Bradford- [v22.0](#v220)
1626aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1636aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1646aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1656aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1666aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1676aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1680c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1696aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
170*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-21)
171*49a389ffSRob Bradford    - [Contributors](#contributors-21)
17295ca7997SRob Bradford- [v21.0](#v210)
17395ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
17495ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
175*49a389ffSRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-22)
176*49a389ffSRob Bradford    - [Contributors](#contributors-22)
17795ca7997SRob Bradford- [v20.2](#v202)
17895ca7997SRob Bradford- [v20.1](#v201)
1797fc0776aSSebastien Boeuf- [v20.0](#v200)
1807fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1817fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1827fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1837fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1847fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
185*49a389ffSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-23)
186*49a389ffSRob Bradford    - [Contributors](#contributors-23)
187d00eb4aaSRob Bradford- [v19.0](#v190)
188d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
189d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
190d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
191d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
192d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
193d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
194*49a389ffSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-24)
195*49a389ffSRob Bradford    - [Contributors](#contributors-24)
1962c4f8d22SRob Bradford- [v18.0](#v180)
1972c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1982c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1992c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
2002c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
2012c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
2022c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
2032c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
2042c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
205*49a389ffSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-25)
206*49a389ffSRob Bradford    - [Contributors](#contributors-25)
207e6db5999SRob Bradford- [v17.0](#v170)
208e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
209e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
210e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
211e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
212e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
213*49a389ffSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-26)
214*49a389ffSRob Bradford    - [Contributors](#contributors-26)
2155ed8e01fSRob Bradford- [v16.0](#v160)
2165ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
2175ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
2185ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
219*49a389ffSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-27)
2205ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
221*49a389ffSRob Bradford    - [Contributors](#contributors-27)
22230a01277SRob Bradford- [v15.0](#v150)
22330a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
22430a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
22530a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
226f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
22730a01277SRob Bradford    - [Bug fixes](#bug-fixes)
22822cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
229*49a389ffSRob Bradford    - [Contributors](#contributors-28)
23030a01277SRob Bradford- [v0.14.1](#v0141)
23140c63dcfSRob Bradford- [v0.14.0](#v0140)
23240c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
23340c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
23440c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
23540c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
23640c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
23740c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
23822cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
239*49a389ffSRob Bradford    - [Contributors](#contributors-29)
240f58b6f84SRob Bradford- [v0.13.0](#v0130)
241f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
24240c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
243f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
244f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
245f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
246f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
247*49a389ffSRob Bradford    - [Contributors](#contributors-30)
248d42b5084SRob Bradford- [v0.12.0](#v0120)
249d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
250d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
251d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
252d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
253*49a389ffSRob Bradford    - [Contributors](#contributors-31)
2547dcd3affSRob Bradford- [v0.11.0](#v0110)
2557dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2567dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2577dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
258d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2597dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2607dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2617dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2627dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
263f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2647dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
265*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-28)
266*49a389ffSRob Bradford    - [Contributors](#contributors-32)
267198bd551SRob Bradford- [v0.10.0](#v0100)
268198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
269198bd551SRob Bradford    - [Memory Zones](#memory-zones)
270198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
271198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
272*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-29)
273*49a389ffSRob Bradford    - [Contributors](#contributors-33)
274d714cf81SRob Bradford- [v0.9.0](#v090)
275d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
276d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
277d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
278d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
279d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
280d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
281d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
282d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
283d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
284d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
285198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
286*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-30)
287*49a389ffSRob Bradford    - [Contributors](#contributors-34)
288d714cf81SRob Bradford- [v0.8.0](#v080)
289d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
290d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
291d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
292d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
293d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
294*49a389ffSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-31)
295d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
296*49a389ffSRob Bradford    - [Contributors](#contributors-35)
29796be8229SRob Bradford- [v0.7.0](#v070)
29896be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
29996be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
30096be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
30196be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
30296be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
30396be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
30496be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
30552b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
306*49a389ffSRob Bradford    - [Contributors](#contributors-36)
30703cb26ccSSamuel Ortiz- [v0.6.0](#v060)
30803cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
30903cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
31003cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
31103cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
31203cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
313*49a389ffSRob Bradford    - [Contributors](#contributors-37)
31494f2fc33SRob Bradford- [v0.5.1](#v051)
3152f395e60SSamuel Ortiz- [v0.5.0](#v050)
31694f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
31794f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
31894f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
31994f2fc33SRob Bradford    - [Development Tools](#development-tools)
32094f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
321*49a389ffSRob Bradford    - [Contributors](#contributors-38)
322cec884e8SSamuel Ortiz- [v0.4.0](#v040)
32394f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
32494f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
32594f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
32694f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
32794f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
32894f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
32994f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
330*49a389ffSRob Bradford    - [Contributors](#contributors-39)
3318e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
33294f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
33394f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
33494f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
33594f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
33694f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
33794f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
33894f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
33994f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3407688e6e2SSamuel Ortiz- [v0.2.0](#v020)
34194f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
34294f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
34394f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
34494f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
34594f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
34694f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3477688e6e2SSamuel Ortiz- [v0.1.0](#v010)
34894f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
34994f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
35094f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
35194f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
35294f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
35394f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
35494f2fc33SRob Bradford    - [Unit testing](#unit-testing)
35594f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
35694f2fc33SRob Bradford
357*49a389ffSRob Bradford# v43.0
358*49a389ffSRob Bradford
359*49a389ffSRob BradfordThis release has been tracked in our [roadmap
360*49a389ffSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
361*49a389ffSRob Bradfordv43.0. The following user visible changes have been made:
362*49a389ffSRob Bradford
363*49a389ffSRob Bradford### Live Migration over TCP Connections
364*49a389ffSRob Bradford
365*49a389ffSRob BradfordSupport has been added to enable direct live migration from two hosts via TCP
366*49a389ffSRob Bradfordconnections. This supplements the existing support for migrating over a UNIX
367*49a389ffSRob Bradfordsocket which can then be tunnelled as desired. The documentation has been
368*49a389ffSRob Bradfordupdated. (#6850)
369*49a389ffSRob Bradford
370*49a389ffSRob Bradford### Notable Performance Improvements
371*49a389ffSRob Bradford
372*49a389ffSRob BradfordThe `VIRTIO_RING_F_INDIRECT_DESC` feature has been enabled for `virtio-block`
373*49a389ffSRob Bradforddevices. This significantly increases the throughput of the devices with a
374*49a389ffSRob Bradfordsmall negative impact on latency. (#6826)
375*49a389ffSRob Bradford
376*49a389ffSRob Bradford### Notable Bug Fixes
377*49a389ffSRob Bradford
378*49a389ffSRob Bradford* Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64
379*49a389ffSRob Bradford  architectures. Whether they function depends on the host PCI host bridge
380*49a389ffSRob Bradford  support - previously they would be rejected even if the driver did not use
381*49a389ffSRob Bradford  these BARs. (#6871)
382*49a389ffSRob Bradford* Command line groups were adjusted to ensure that at least one payload
383*49a389ffSRob Bradford  parameter was provided if any other VM parameters provided. (#6832)
384*49a389ffSRob Bradford
385*49a389ffSRob Bradford### Contributors
386*49a389ffSRob Bradford
387*49a389ffSRob BradfordMany thanks to everyone who has contributed to our release:
388*49a389ffSRob Bradford
389*49a389ffSRob Bradford* Alyssa Ross <hi@alyssa.is>
390*49a389ffSRob Bradford* Andrew Consroe <aconz2@gmail.com>
391*49a389ffSRob Bradford* Bo Chen <bo.arvin.chen@gmail.com>
392*49a389ffSRob Bradford* Jinrong Liang <cloudliang@tencent.com>
393*49a389ffSRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
394*49a389ffSRob Bradford* Muminul Islam <muislam@microsoft.com>
395*49a389ffSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
396*49a389ffSRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
397*49a389ffSRob Bradford* Wojtek Czekalski <wczekalski@me.com>
398*49a389ffSRob Bradford
39958850d26SRob Bradford# v42.0
40058850d26SRob Bradford
40158850d26SRob BradfordThis release has been tracked in our [roadmap
40258850d26SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
40358850d26SRob Bradfordv42.0. The following user visible changes have been made:
40458850d26SRob Bradford
40558850d26SRob Bradford### SVE/SVE2 Support on AArch64
40658850d26SRob Bradford
40758850d26SRob BradfordThe SVE and SVE2 feature bits are now propagated through to the guest on
40858850d26SRob BradfordAArch64. (#6678, #6691)
40958850d26SRob Bradford
41058850d26SRob Bradford### Notable Bug Fixes
41158850d26SRob Bradford
41258850d26SRob Bradford* Reduce latency notification when rate limited (#6672)
41358850d26SRob Bradford* Fix `virtio-console` resizing (#6704)
41458850d26SRob Bradford* Fix resizing when console uses TTY (#6754)
41558850d26SRob Bradford* Avoid deadlock in PCI BAR reprogramming that can occur when adding a new
41658850d26SRob Bradford  `virtio` device to a VM that has been restored (#6775)
41758850d26SRob Bradford* Fix console resizing after VM restore (#6748)
41858850d26SRob Bradford* Fix memory resize error due to incorrect bounds checks (#6736)
41958850d26SRob Bradford
42058850d26SRob Bradford### Sponsorships
42158850d26SRob Bradford
42258850d26SRob BradfordDuring this release cycle a new VFIO CI worker has been provided by Crusoe
42358850d26SRob BradfordEnergy and a new ARM64 CI worker has been provided by Ubicloud.
42458850d26SRob Bradford
42558850d26SRob Bradford### Contributors
42658850d26SRob Bradford
42758850d26SRob BradfordMany thanks to everyone who has contributed to our release:
42858850d26SRob Bradford
42958850d26SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
43058850d26SRob Bradford* Alyssa Ross <hi@alyssa.is>
43158850d26SRob Bradford* Anirudh Rayabharam <anrayabh@microsoft.com>
43258850d26SRob Bradford* BharatNarasimman <bharatn@microsoft.com>
43358850d26SRob Bradford* Bo Chen <chen.bo@intel.com>
43458850d26SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
43558850d26SRob Bradford* Jonas Scholz <Jonas.Scholz@bbscholz.de>
43658850d26SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
43758850d26SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
43858850d26SRob Bradford* Purna Pavan Chandra <paekkaladevi@microsoft.com>
43958850d26SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
44058850d26SRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
44158850d26SRob Bradford* Songqian Li <sionli@tencent.com>
44258850d26SRob Bradford* Tom Dohrmann <erbse.13@gmx.de>
44358850d26SRob Bradford* Wei Liu <liuwe@microsoft.com>
44458850d26SRob Bradford* Wenyu Huang <huangwenyuu@outlook.com>
44558850d26SRob Bradford* Yuhong Zhong <yz@cs.columbia.edu>
44658850d26SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
44758850d26SRob Bradford
448ea3e2ff6SRob Bradford# v41.0
449ea3e2ff6SRob Bradford
450ea3e2ff6SRob BradfordThis release has been tracked in our [roadmap
451ea3e2ff6SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
452ea3e2ff6SRob Bradfordv41.0. The following user visible changes have been made:
453ea3e2ff6SRob Bradford
454ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support
455ea3e2ff6SRob Bradford
456ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires
457ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its
458ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features.
459ea3e2ff6SRob Bradford(#6318, #6467)
460ea3e2ff6SRob Bradford
461ea3e2ff6SRob Bradford### Sandboxing With Landlock Support
462ea3e2ff6SRob Bradford
463ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API
464ea3e2ff6SRob Bradfordhas been added  - this can be used to restrict the files (and the read/write
465ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of
466ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be
467ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170)
468ea3e2ff6SRob Bradford
469ea3e2ff6SRob Bradford### Notable Performance Improvements
470ea3e2ff6SRob Bradford
471ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec`
472ea3e2ff6SRob Bradford  structures (#6636)
473ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to
474ea3e2ff6SRob Bradford  `virtio-block` giving a 60% improvement in single queue block throughput and
475ea3e2ff6SRob Bradford  IOPs performance (#6580)
476ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586)
477ea3e2ff6SRob Bradford
478ea3e2ff6SRob Bradford### Notable Bug Fixes
479ea3e2ff6SRob Bradford
480ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657)
481ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
482ea3e2ff6SRob Bradford  access (#6647)
483ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now
484ea3e2ff6SRob Bradford  included in the virtio-device seccomp filters for tests that use this (#6648)
485ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621)
486ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
487ea3e2ff6SRob Bradford
488ea3e2ff6SRob Bradford### Contributors
489ea3e2ff6SRob Bradford
490ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release:
491ea3e2ff6SRob Bradford
492ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is>
493ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com>
494ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com>
495ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
496ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
497ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com>
498ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
499ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
500ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
501ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com>
502ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com>
503ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com>
504ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com>
505ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
506ea3e2ff6SRob Bradford
507e9b26397SRob Bradford# v40.0
508e9b26397SRob Bradford
509e9b26397SRob BradfordThis release has been tracked in our [roadmap
510e9b26397SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
511e9b26397SRob Bradfordv40.0. The following user visible changes have been made:
512e9b26397SRob Bradford
513e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices
514e9b26397SRob Bradford
515e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using
516e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices.
517e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or
518e9b26397SRob Bradfordother file descriptor backed network devices. (#6286)
519e9b26397SRob Bradford
520e9b26397SRob Bradford### Notable Bug Fixes
521e9b26397SRob Bradford
522e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata
523e9b26397SRob Bradford  (#6495)
524e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456)
525e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial`
526e9b26397SRob Bradford  (#6486)
527e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has
528e9b26397SRob Bradford  been introduced (#6482)
529e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding
530e9b26397SRob Bradford  `cpuid` instructions and by seeding the in kernel file descriptor table
531e9b26397SRob Bradford  (#6498, #6478)
532e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523)
533e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets
534e9b26397SRob Bradford  (#6504)
535e9b26397SRob Bradford
536e9b26397SRob Bradford### Contributors
537e9b26397SRob Bradford
538e9b26397SRob BradfordMany thanks to everyone who has contributed to our release:
539e9b26397SRob Bradford
540e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
541e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com>
542e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
543e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com>
544e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com>
545e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
546e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
547e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
548e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com>
549e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
550e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com>
551e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai>
552e9b26397SRob Bradford* Songqian Li <sionli@tencent.com>
553e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com>
554e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com>
555e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
556e9b26397SRob Bradford*
557e9b26397SRob Bradford
5584f96fa15SRob Bradford# v39.0
5594f96fa15SRob Bradford
5604f96fa15SRob BradfordThis release has been tracked in our [roadmap
5614f96fa15SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5624f96fa15SRob Bradfordv39.0. The following user visible changes have been made:
5634f96fa15SRob Bradford
5644f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments
5654f96fa15SRob Bradford
5664f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that
5674f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
5684f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may
5694f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With
5704f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387)
5714f96fa15SRob Bradford
5724f96fa15SRob Bradford### Direct Booting with bzImages
5734f96fa15SRob Bradford
5744f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200)
5754f96fa15SRob Bradford
5764f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support
5774f96fa15SRob Bradford
5784f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the
5794f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235)
5804f96fa15SRob Bradford
5814f96fa15SRob Bradford### Guest NMI Injection Support
5824f96fa15SRob Bradford
5834f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the
5844f96fa15SRob Bradfordguest. (#6047)
5854f96fa15SRob Bradford
5864f96fa15SRob Bradford### Notable Bug Fixes
5874f96fa15SRob Bradford
5884f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
5894f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208)
5904f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247)
5914f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268)
5924f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock`
5934f96fa15SRob Bradford  (#6306)
5944f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359)
5954f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372)
5964f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
5974f96fa15SRob Bradford  #6319)
5984f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337,
5994f96fa15SRob Bradford  #6338)
6004f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across
6014f96fa15SRob Bradford  snapshot/restore (#6332, #6286)
6024f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274)
6034f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293)
6044f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230)
6054f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration
6064f96fa15SRob Bradford  (#6326, #6265)
6074f96fa15SRob Bradford
6084f96fa15SRob Bradford### Contributors
6094f96fa15SRob Bradford
6104f96fa15SRob BradfordMany thanks to everyone who has contributed to our release:
6114f96fa15SRob Bradford
6124f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
6134f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com>
6144f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com>
6154f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke>
6164f96fa15SRob Bradford* Chris Webb <chris@arachsys.com>
6174f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
6184f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com>
6194f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com>
6204f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
6214f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
6224f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
6234f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
6244f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de>
6254f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com>
6264f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com>
6274f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com>
6284f96fa15SRob Bradford
629ef4fbf08SBo Chen# v38.0
630ef4fbf08SBo Chen
631ef4fbf08SBo ChenThis release has been tracked in our [roadmap
632ef4fbf08SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
633ef4fbf08SBo Chenv38.0. The following user visible changes have been made:
634ef4fbf08SBo Chen
635ef4fbf08SBo Chen### Group Rate Limiter on Block Devices
636ef4fbf08SBo Chen
637ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new
638ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O
639ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md)
640ef4fbf08SBo Chen
641ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread
642ef4fbf08SBo Chen
643ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices
644ef4fbf08SBo Chento specific host cpus.
645ef4fbf08SBo Chen
646ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault
647ef4fbf08SBo Chen
648ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel
649ef4fbf08SBo Chenmemory prefault.
650ef4fbf08SBo Chen
651ef4fbf08SBo Chen### New 'debug-console' Device
652ef4fbf08SBo Chen
653ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug
654ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug
655ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md).
656ef4fbf08SBo Chen
657ef4fbf08SBo Chen### Improved VFIO Device Support
658ef4fbf08SBo Chen
659ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO
660ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same
661ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving
662ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU
663ef4fbf08SBo Chenand an IB device).
664ef4fbf08SBo Chen
665ef4fbf08SBo Chen### Extended CPU Affinity Support
666ef4fbf08SBo Chen
667ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger
668ef4fbf08SBo Chenthan 255.
669ef4fbf08SBo Chen
670ef4fbf08SBo Chen### Notable Bug Fixes
671ef4fbf08SBo Chen
672ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software
673ef4fbf08SBo Chensuch as hwloc in the guest (#6146)
674ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141)
675ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062)
676ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095)
677ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106)
678ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196)
679ef4fbf08SBo Chen
680ef4fbf08SBo Chen### Contributors
681ef4fbf08SBo Chen
682ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release:
683ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is>
684ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com>
685ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com>
686ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com>
687ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com>
688ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com>
689ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
690ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
691ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com>
692ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
693ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com>
694ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
695ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com>
696ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com>
697ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com>
698ef4fbf08SBo Chen
6995e702dcdSBo Chen# v37.0
7005e702dcdSBo Chen
7015e702dcdSBo ChenThis release has been tracked in our [roadmap
7025e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
7035e702dcdSBo Chenv37.0. The following user visible changes have been made:
7045e702dcdSBo Chen
7055e702dcdSBo Chen### Long Term Support (LTS) Release
7065e702dcdSBo Chen
7075e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
7085e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
7095e702dcdSBo Chensupported between the point releases of the LTS.
7105e702dcdSBo Chen
7115e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
7125e702dcdSBo Chen
7135e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
7145e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
7155e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
7165e702dcdSBo Chen
7175e702dcdSBo Chen### Configurable Named TAP Devices
7185e702dcdSBo Chen
7195e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
7205e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
7215e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
7225e702dcdSBo Chen
7235e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
7245e702dcdSBo Chen
7255e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
7265e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
7275e702dcdSBo Chenlegacy serial device without losing performance benefits of using
7285e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
7295e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
7305e702dcdSBo Chen
7315e702dcdSBo Chen### Faster VM Restoration from Snapshots
7325e702dcdSBo Chen
7335e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
7345e702dcdSBo Chenimplementation of deserializing JSON files.
7355e702dcdSBo Chen
7365e702dcdSBo Chen### Notable Bug Fixes
7375e702dcdSBo Chen
7385e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
7395e702dcdSBo Chen  disabled (#5930)
7405e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
7415e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
7425e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
7435e702dcdSBo Chen
7445e702dcdSBo Chen### Contributors
7455e702dcdSBo Chen
7465e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
7475e702dcdSBo Chen
7485e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
7495e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
7505e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
7515e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
7525e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
7535e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
7545e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
7555e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
7565e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
7575e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
7585e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
7595e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
7605e702dcdSBo Chen
761f5899d15SBo Chen# v36.0
762f5899d15SBo Chen
763f5899d15SBo ChenThis release has been tracked in our [roadmap
764f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
765f5899d15SBo Chenv36.0. The following user visible changes have been made:
766f5899d15SBo Chen
767f5899d15SBo Chen### Command Line Changes
768f5899d15SBo Chen
769f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
770f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
771f5899d15SBo Chenchanges:
772f5899d15SBo Chen
773f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
774f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
775f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
776f5899d15SBo Chen
777f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
778f5899d15SBo Chen
779f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
780f5899d15SBo Chen
781f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
782f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
783f5899d15SBo Chen(`--version -v`).
784f5899d15SBo Chen
785f5899d15SBo Chen### NUMA Support for PCI segments
786f5899d15SBo Chen
787f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
788f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
789f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
790f5899d15SBo Chen
791f5899d15SBo Chen### CPU Topology Support on AMD Platforms
792f5899d15SBo Chen
793f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
794f5899d15SBo Chen
795f5899d15SBo Chen### Unix Socket Backend for Serial Port
796f5899d15SBo Chen
797f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
798f5899d15SBo Chenusers to access the serial port using a Unix socket.
799f5899d15SBo Chen
800f5899d15SBo Chen### AIO Backend for Block Devices
801f5899d15SBo Chen
802f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
803f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
804f5899d15SBo Chenhost Operating System.
805f5899d15SBo Chen
806f5899d15SBo Chen### Documentation Improvements
807f5899d15SBo Chen
808f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
809f5899d15SBo Chen* Various typo fixes
810f5899d15SBo Chen
811f5899d15SBo Chen### Notable Bug Fixes
812f5899d15SBo Chen
813f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
814f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
815f5899d15SBo Chen  enabled (#5834)
816f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
817f5899d15SBo Chen
818f5899d15SBo Chen### Contributors
819f5899d15SBo Chen
820f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
821f5899d15SBo Chen
822f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
823f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
824f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
825f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
826f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
827f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
828f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
829f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
830f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
831f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
832f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
833f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
834f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
835f5899d15SBo Chen
836339912a5SBo Chen# v35.0
837339912a5SBo Chen
838339912a5SBo ChenThis release has been tracked in our [roadmap
839339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
840339912a5SBo Chenv35.0. The following user visible changes have been made:
841339912a5SBo Chen
842339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
843339912a5SBo Chen
844339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
845339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
846339912a5SBo Chennow support both situations.
847339912a5SBo Chen
848339912a5SBo Chen### User Specified Serial Number for `virtio-block`
849339912a5SBo Chen
850339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
851339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
852339912a5SBo Chen
853339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
854339912a5SBo Chen
855339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
856339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
857339912a5SBo Chen
858339912a5SBo Chen### Notable Bug Fixes
859339912a5SBo Chen
860339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
861339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
862339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
863339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
864339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
865339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
866339912a5SBo Chen  (#5712, #5750, #5762, #5763)
867339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
868339912a5SBo Chen
869339912a5SBo Chen### Contributors
870339912a5SBo Chen
871339912a5SBo ChenMany thanks to everyone who has contributed to our release:
872339912a5SBo Chen
873339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
874339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
875339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
876339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
877339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
878339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
879339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
880339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
881339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
882339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
883339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
884339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
885339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
886339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
887339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
888339912a5SBo Chen
889487a43cdSRob Bradford# v34.0
890487a43cdSRob Bradford
891487a43cdSRob BradfordThis release has been tracked in our [roadmap
892487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
893487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
894487a43cdSRob Bradford
895487a43cdSRob Bradford### Paravirtualised Panic Device Support
896487a43cdSRob Bradford
897487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
898487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
899487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
900487a43cdSRob Bradford
901487a43cdSRob Bradford### Improvements to VM Core Dump
902487a43cdSRob Bradford
903487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
904487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
905487a43cdSRob Bradford
906487a43cdSRob Bradford### QCOW2 Support for Backing Files
907487a43cdSRob Bradford
908487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
909487a43cdSRob Bradfordbacking files. (#5573)
910487a43cdSRob Bradford
911487a43cdSRob Bradford### Minimum Host Kernel Bump
912487a43cdSRob Bradford
913487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
914487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
915487a43cdSRob Bradford
916487a43cdSRob Bradford### Notable Bug Fixes
917487a43cdSRob Bradford
918487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
919487a43cdSRob Bradford  carries out this job with KVM) (#5561).
920487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
921487a43cdSRob Bradford  than MSI-X (#5658).
922487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
923487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
924487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
925487a43cdSRob Bradford  when all vCPUs are paused (#5611).
926487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
927487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
928487a43cdSRob Bradford
929487a43cdSRob Bradford### Contributors
930487a43cdSRob Bradford
931487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
932487a43cdSRob Bradford
933487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
934487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
935487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
936487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
937487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
938487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
939487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
940487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
941487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
942487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
943487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
944487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
945487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
946487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
947487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
948487a43cdSRob Bradford
9496e0e6323SBo Chen# v33.0
9506e0e6323SBo Chen
9516e0e6323SBo ChenThis release has been tracked in our [roadmap
9526e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
9536e0e6323SBo Chenv33.0. The following user visible changes have been made:
9546e0e6323SBo Chen
9556e0e6323SBo Chen### D-Bus based API
9566e0e6323SBo Chen
9576e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
9586e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
9596e0e6323SBo Chenfound in the [API documentation](docs/api.md).
9606e0e6323SBo Chen
9616e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
9626e0e6323SBo Chen
9636e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
9646e0e6323SBo Chenguest on AArch64.
9656e0e6323SBo Chen
9666e0e6323SBo Chen### Notable Bug Fixes
9676e0e6323SBo Chen
9686e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
9696e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
9706e0e6323SBo Chen* Fix TDX initialization (#5454)
9716e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
9726e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
9736e0e6323SBo Chen  (#5506, #5524)
9746e0e6323SBo Chen* Populate APIC ID properly (#5512)
9756e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
9766e0e6323SBo Chen
9776e0e6323SBo Chen### Contributors
9786e0e6323SBo Chen
9796e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
9806e0e6323SBo Chen
9816e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
9826e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
9836e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
9846e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
9856e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
9866e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
9876e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
9886e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
9896e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
9906e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
9916e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
9926e0e6323SBo Chen
99342ca292dSRob Bradford# v32.0
99442ca292dSRob Bradford
99542ca292dSRob BradfordThis release has been tracked in our [roadmap
99642ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
99742ca292dSRob Bradfordv32.0. The following user visible changes have been made:
99842ca292dSRob Bradford
99942ca292dSRob Bradford### Increased PCI Segment Limit
100042ca292dSRob Bradford
100142ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
100242ca292dSRob Bradford
100342ca292dSRob Bradford### API Changes
100442ca292dSRob Bradford
100542ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
100642ca292dSRob Bradford  (#5348)
100742ca292dSRob Bradford
100842ca292dSRob Bradford### Notable Bug Fixes
100942ca292dSRob Bradford
101042ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
101142ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
101242ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
101342ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
101442ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
101542ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
101642ca292dSRob Bradford* Fixes for TTY reset (#5414)
101742ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
101842ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
101942ca292dSRob Bradford
102042ca292dSRob Bradford### Contributors
102142ca292dSRob Bradford
102242ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
102342ca292dSRob Bradford
102442ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
102542ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
102642ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
102742ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
102842ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
102942ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
103042ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
103142ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
103242ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
103342ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
103442ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
103542ca292dSRob Bradford
103642ca292dSRob Bradford# v31.1
103742ca292dSRob Bradford
103842ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
103942ca292dSRob Bradford
104042ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
104142ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
104242ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
104342ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
104442ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
104542ca292dSRob Bradford
1046f3522e85SMichael Zhao# v31.0
1047f3522e85SMichael Zhao
1048f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
1049f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
1050f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
1051f3522e85SMichael Zhao
1052f3522e85SMichael Zhao### Update to Latest `acpi_tables`
1053f3522e85SMichael Zhao
1054f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
1055f3522e85SMichael ZhaoThere has been significant API changes in the crate.
1056f3522e85SMichael Zhao
1057f3522e85SMichael Zhao### Update Reference Kernel to 6.2
1058f3522e85SMichael Zhao
1059f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
1060f3522e85SMichael Zhao
1061f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
1062f3522e85SMichael Zhao
1063f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
1064f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
1065f3522e85SMichael Zhao
1066f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
1067f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
1068f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
1069f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
1070f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
1071f3522e85SMichael Zhao
1072f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
1073f3522e85SMichael Zhao
1074f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
1075f3522e85SMichael Zhao
1076f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
1077f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
1078f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
1079f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
1080f3522e85SMichael Zhao
1081f3522e85SMichael Zhao### Documentation Improvements
1082f3522e85SMichael Zhao
1083f3522e85SMichael Zhao* Various improvements in API document
1084f3522e85SMichael Zhao* Improvements in Doc comments
1085f3522e85SMichael Zhao* Updated Slack channel information in README
1086f3522e85SMichael Zhao
1087f3522e85SMichael Zhao### Notable Bug Fixes
1088f3522e85SMichael Zhao
1089f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
1090f3522e85SMichael Zhao  client.
1091f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
1092f3522e85SMichael Zhao  endpoint.
1093f3522e85SMichael Zhao
1094f3522e85SMichael Zhao### Contributors
1095f3522e85SMichael Zhao
1096f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
1097f3522e85SMichael Zhao
1098f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
1099f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
1100f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
1101f3522e85SMichael Zhao* Dom <peng6662001@163.com>
1102f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
1103f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
1104f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
1105f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1106f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
1107f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
1108f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
1109f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
1110f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
1111f3522e85SMichael Zhao
1112ece0e6faSBo Chen# v30.0
1113ece0e6faSBo Chen
1114ece0e6faSBo ChenThis release has been tracked in our [roadmap
1115ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
1116ece0e6faSBo Chenv30.0. The following user visible changes have been made:
1117ece0e6faSBo Chen
1118ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
1119ece0e6faSBo Chen
1120ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
1121ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
1122ece0e6faSBo Chenwere several syntax changes:
1123ece0e6faSBo Chen
1124ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
1125ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
1126ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
1127ece0e6faSBo Chen
1128ece0e6faSBo Chen### Basic vfio-user Server Support
1129ece0e6faSBo Chen
1130ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
1131ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
1132ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
1133ece0e6faSBo Chen`rust-vmm` organization.
1134ece0e6faSBo Chen
1135ece0e6faSBo Chen### Heap Profiling Support
1136ece0e6faSBo Chen
1137ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
1138ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
1139ece0e6faSBo Chen
1140ece0e6faSBo Chen### Documentation Improvements
1141ece0e6faSBo Chen
1142ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
1143ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
1144ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
1145ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
1146ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
1147ece0e6faSBo Chenexisting 'profiling' documentation.
1148ece0e6faSBo Chen
1149ece0e6faSBo Chen### Notable Bug Fixes
1150ece0e6faSBo Chen
1151ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
1152ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
1153ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
1154ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
1155ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
1156ece0e6faSBo Chen
1157ece0e6faSBo Chen### Contributors
1158ece0e6faSBo Chen
1159ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
1160ece0e6faSBo Chen
1161ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
1162ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
1163ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
1164ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
1165ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
1166ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
1167ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
1168ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1169ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
1170ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1171ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
1172ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
1173ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
1174ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
1175ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
1176ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
1177ece0e6faSBo Chen
1178ece0e6faSBo Chen# v28.2
1179ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
1180ece0e6faSBo Chen
1181ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
1182ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
1183ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
1184ece0e6faSBo Chen
118522cf8c97SRob Bradford# v29.0
118622cf8c97SRob Bradford
118722cf8c97SRob BradfordThis release has been tracked in our [roadmap
118822cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
118922cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
119022cf8c97SRob Bradford
119122cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
119222cf8c97SRob Bradford
119322cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
119422cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
119522cf8c97SRob Bradford
119622cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
119722cf8c97SRob Bradford
119822cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
119922cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
120022cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
120122cf8c97SRob Bradfordsupported but has worked for some versions.)
120222cf8c97SRob Bradford
120322cf8c97SRob Bradford### Heap Allocation Improvements
120422cf8c97SRob Bradford
120522cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
120622cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
120722cf8c97SRob Bradford
120822cf8c97SRob Bradford### `ch-remote` Improvements
120922cf8c97SRob Bradford
121022cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
121122cf8c97SRob Bradford`ch-remote`.
121222cf8c97SRob Bradford
121322cf8c97SRob Bradford### `AArch64` Documentation Integration
121422cf8c97SRob Bradford
121522cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
121622cf8c97SRob BradfordREADME.
121722cf8c97SRob Bradford
121822cf8c97SRob Bradford### `virtio-block` Counters Enhancement
121922cf8c97SRob Bradford
122022cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
122122cf8c97SRob Bradfordlatency counters.
122222cf8c97SRob Bradford
122322cf8c97SRob Bradford### TCP Offload Control
122422cf8c97SRob Bradford
122522cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
122622cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
122722cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
122822cf8c97SRob Bradford
122922cf8c97SRob Bradford### Notable Bug Fixes
123022cf8c97SRob Bradford
123122cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
123222cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
123322cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
123422cf8c97SRob Bradford  (#4924, #4949)
123522cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
123622cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
123722cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
123822cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
123922cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
124022cf8c97SRob Bradford
124122cf8c97SRob Bradford### Removals
124222cf8c97SRob Bradford
124322cf8c97SRob BradfordNo functionality has been removed in this release.
124422cf8c97SRob Bradford
124522cf8c97SRob Bradford### Deprecations
124622cf8c97SRob Bradford
124722cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
124822cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
124922cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
125022cf8c97SRob Bradford  (#5085)
125122cf8c97SRob Bradford
125222cf8c97SRob Bradford### Contributors
125322cf8c97SRob Bradford
125422cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
125522cf8c97SRob Bradford
125622cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
125722cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
125822cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
125922cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
126022cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
126122cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
126222cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
126322cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
126422cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
126522cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
126622cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
126722cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
126822cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
126922cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
127022cf8c97SRob Bradford
127122cf8c97SRob Bradford
127222cf8c97SRob Bradford# v28.1
127322cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
127422cf8c97SRob Bradford
127522cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
127622cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
127722cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
127822cf8c97SRob Bradford  (#4924, #4949)
127922cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
128022cf8c97SRob Bradford* Improve README and documentation
128122cf8c97SRob Bradford
128266460765SRob Bradford# v28.0
128366460765SRob Bradford
128466460765SRob BradfordThis release has been tracked in our new [roadmap
128566460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
128666460765SRob Bradfordv28.0.
128766460765SRob Bradford
128866460765SRob Bradford### Community Engagement (Reminder)
128966460765SRob Bradford
129066460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
129166460765SRob Bradforddiscussions.  Please consider
129266460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
129366460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
129466460765SRob BradfordHypervisor development.
129566460765SRob Bradford
129666460765SRob Bradford### Long Term Support (LTS) Release
129766460765SRob Bradford
129866460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
129966460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
130066460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
130166460765SRob Bradfordreleases of the LTS.
130266460765SRob Bradford
130366460765SRob Bradford### Virtualised TPM Support
130466460765SRob Bradford
130542e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM
130666460765SRob Bradforddocumentation](docs/tpm.md).
130766460765SRob Bradford
130866460765SRob Bradford### Transparent Huge Page Support
130966460765SRob Bradford
131066460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
131166460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
131266460765SRob Bradfordthen this will be used resulting in improved boot performance.
131366460765SRob Bradford
131466460765SRob Bradford### README Quick Start Improved
131566460765SRob Bradford
131666460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
131766460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
131866460765SRob Bradford
131966460765SRob Bradford### Notable Bug Fixes
132066460765SRob Bradford
132166460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
132266460765SRob Bradford  memory consumption (#4835)
132366460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
132466460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
132566460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
132666460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
132766460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
132866460765SRob Bradford  newer Linux kernels (#4744)
132966460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
133066460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
133166460765SRob Bradford
133266460765SRob Bradford### Removals
133366460765SRob Bradford
133466460765SRob BradfordThe following functionality has been removed:
133566460765SRob Bradford
133666460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
133766460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
133866460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
133966460765SRob Bradford
134066460765SRob Bradford### Contributors
134166460765SRob Bradford
134266460765SRob BradfordMany thanks to everyone who has contributed to our release:
134366460765SRob Bradford
134466460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
134566460765SRob Bradford* Bo Chen <chen.bo@intel.com>
134666460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
134766460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
134866460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
134966460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
135066460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
135166460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
135266460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
135366460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
135466460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
135566460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
135666460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
135766460765SRob Bradford
13582ba6a9bfSRob Bradford# v27.0
13592ba6a9bfSRob Bradford
13602ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
13612ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
13622ba6a9bfSRob Bradfordv27.0.
13632ba6a9bfSRob Bradford
13642ba6a9bfSRob Bradford### Community Engagement
13652ba6a9bfSRob Bradford
13662ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
13672ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
13682ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
13692ba6a9bfSRob Bradford
13702ba6a9bfSRob Bradford### Prebuilt Packages
13712ba6a9bfSRob Bradford
13722ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
13732ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
13742ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
13752ba6a9bfSRob Bradfordfirmware options available.
13762ba6a9bfSRob Bradford
13772ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
13782ba6a9bfSRob Bradford
13792ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
13802ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
13812ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
13822ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
13832ba6a9bfSRob Bradford(#4658, #4676.)
13842ba6a9bfSRob Bradford
13852ba6a9bfSRob Bradford### Boot Tracing
13862ba6a9bfSRob Bradford
13872ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
13882ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
13892ba6a9bfSRob Bradford
13902ba6a9bfSRob Bradford### Simplified Build Feature Flags
13912ba6a9bfSRob Bradford
13922ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
13932ba6a9bfSRob Bradford
13942ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
13952ba6a9bfSRob Bradford  (with `kvm` enabled by default),
13962ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
13972ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
13982ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
13992ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
14002ba6a9bfSRob Bradford  feature) and dumping guest memory.
14012ba6a9bfSRob Bradford
14022ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
14032ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
14042ba6a9bfSRob Bradford
14052ba6a9bfSRob Bradford### Asynchronous Kernel Loading
14062ba6a9bfSRob Bradford
14072ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
14082ba6a9bfSRob Bradfordx86-64. (#4538)
14092ba6a9bfSRob Bradford
14102ba6a9bfSRob Bradford### GDB Support for AArch64
14112ba6a9bfSRob Bradford
14122ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
14132ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
14142ba6a9bfSRob Bradford
14152ba6a9bfSRob Bradford### Notable Bug Fixes
14162ba6a9bfSRob Bradford
14172ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
14182ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
14192ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
14202ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
14212ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
14222ba6a9bfSRob Bradford
14232ba6a9bfSRob Bradford### Deprecations
14242ba6a9bfSRob Bradford
14252ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
14262ba6a9bfSRob Bradfordplan to use alternatives.
14272ba6a9bfSRob Bradford
14282ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
14292ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
14302ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
14312ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
14322ba6a9bfSRob Bradford
14332ba6a9bfSRob Bradford### Contributors
14342ba6a9bfSRob Bradford
14352ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
14362ba6a9bfSRob Bradford
14372ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
14382ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
14392ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
14402ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
14412ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
14422ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
14432ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
14442ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
14452ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
14462ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
14472ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
14482ba6a9bfSRob Bradford
1449ed9e54d6SRob Bradford# v26.0
1450ed9e54d6SRob Bradford
1451ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
1452ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
1453ed9e54d6SRob Bradford
1454ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1455ed9e54d6SRob Bradford
1456ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1457ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1458ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1459ed9e54d6SRob Bradford
1460ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1461ed9e54d6SRob Bradford
1462ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1463ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1464ed9e54d6SRob Bradford
1465ed9e54d6SRob Bradford### Notable Bug Fixes
1466ed9e54d6SRob Bradford
1467ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
14687bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1469ed9e54d6SRob Bradford  out (#4456)
1470ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1471ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1472ed9e54d6SRob Bradford  (#4269, #4293)
1473ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1474ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1475ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1476ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1477ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1478ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1479ed9e54d6SRob Bradford
1480ed9e54d6SRob Bradford### Deprecations
1481ed9e54d6SRob Bradford
1482ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1483ed9e54d6SRob Bradfordplan to use alternatives.
1484ed9e54d6SRob Bradford
1485ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1486ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1487ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1488ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1489ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1490ed9e54d6SRob Bradford
1491ed9e54d6SRob Bradford### Removals
1492ed9e54d6SRob Bradford
1493ed9e54d6SRob BradfordThe following functionality has been removed:
1494ed9e54d6SRob Bradford
1495ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
149642e9632cSJosh Soref  equivalent. This was residual from the removal of the `vhost-user-block`
1497ed9e54d6SRob Bradford  spawning feature (#4402.)
1498ed9e54d6SRob Bradford
1499ed9e54d6SRob Bradford### Contributors
1500ed9e54d6SRob Bradford
1501ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1502ed9e54d6SRob Bradford
1503ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1504ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1505ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1506ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1507ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1508ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1509ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1510ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1511ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1512ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1513ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1514ed9e54d6SRob Bradford
1515b132cd21SRob Bradford# v25.0
1516b132cd21SRob Bradford
1517b132cd21SRob BradfordThis release has been tracked through the [v25.0
1518b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
1519b132cd21SRob Bradford
1520b132cd21SRob Bradford### `ch-remote` Improvements
1521b132cd21SRob Bradford
1522b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1523b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1524b132cd21SRob Bradford
1525b132cd21SRob Bradford### VM "Coredump" Support
1526b132cd21SRob Bradford
1527b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1528b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1529b132cd21SRob Bradford
1530b132cd21SRob Bradford### Notable Bug Fixes
1531b132cd21SRob Bradford
1532b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1533b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1534b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1535b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1536b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1537b132cd21SRob Bradford  5.16 (#4156)
1538b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1539b132cd21SRob Bradford  Linux guest
1540b132cd21SRob Bradford
1541b132cd21SRob Bradford### Removals
1542b132cd21SRob Bradford
1543b132cd21SRob BradfordThe following functionality has been removed:
1544b132cd21SRob Bradford
1545b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1546b132cd21SRob Bradford  (#3968)
1547b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1548b132cd21SRob Bradford
1549b132cd21SRob Bradford### Contributors
1550b132cd21SRob Bradford
1551b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1552b132cd21SRob Bradford
1553b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1554b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1555b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1556b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1557b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1558b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1559b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1560b132cd21SRob Bradford
15610150de55SSebastien Boeuf# v24.0
15620150de55SSebastien Boeuf
15630150de55SSebastien BoeufThis release has been tracked through the [v24.0
15640150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
15650150de55SSebastien Boeuf
15660150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
15670150de55SSebastien Boeuf
15680150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
15690150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
15700150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
15710150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
15720150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
15730150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
15740150de55SSebastien Boeuf
15750150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
15760150de55SSebastien Boeuf
15770150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
15780150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
15790150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
15800150de55SSebastien Boeuf
15810150de55SSebastien Boeuf### Sparse Mmap support
15820150de55SSebastien Boeuf
15830150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
15840150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
15850150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
15860150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
15870150de55SSebastien Boeufimpacts the performance related to this device.
15880150de55SSebastien Boeuf
15890150de55SSebastien Boeuf### Expose Platform Serial Number
15900150de55SSebastien Boeuf
15910150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
15920150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
15930150de55SSebastien Boeufguest through the SMBIOS.
15940150de55SSebastien Boeuf
15950150de55SSebastien Boeuf### Notable Bug Fixes
15960150de55SSebastien Boeuf
15970150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
15980150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
15990150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
16000150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
16010150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
16020150de55SSebastien Boeuf
16030150de55SSebastien Boeuf### Notable Improvements
16040150de55SSebastien Boeuf
16050150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
16060150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
16070150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
16080150de55SSebastien Boeuf
16090150de55SSebastien Boeuf### Deprecations
16100150de55SSebastien Boeuf
16110150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
16120150de55SSebastien Boeufplan to use alternatives
16130150de55SSebastien Boeuf
16140150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
16150150de55SSebastien Boeuf  (#3968)
16160150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
16170150de55SSebastien Boeuf
16180150de55SSebastien Boeuf### New on the Website
16190150de55SSebastien Boeuf
16200150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
16210150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
16220150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
16230150de55SSebastien Boeuf
16240150de55SSebastien Boeuf### Contributors
16250150de55SSebastien Boeuf
16260150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
16270150de55SSebastien Boeuf
16280150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
16290150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
16300150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
16310150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
16320150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
16330150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
16340150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
16350150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
16360150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
16370150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
16380150de55SSebastien Boeuf
16390150de55SSebastien Boeuf# v23.1
16400150de55SSebastien Boeuf
16410150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
16420150de55SSebastien Boeuf
16430150de55SSebastien Boeuf* Add some missing seccomp rules
16440150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
16450150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
16460150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
16470150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
16480150de55SSebastien Boeuf
16490c9c56f5SRob Bradford# v23.0
16500c9c56f5SRob Bradford
16510c9c56f5SRob BradfordThis release has been tracked through the [v23.0
16520c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
16530c9c56f5SRob Bradford
16540c9c56f5SRob Bradford### vDPA Support
16550c9c56f5SRob Bradford
16560c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
16570c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
16580c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
16590c9c56f5SRob Bradford
16600c9c56f5SRob Bradford### Updated OS Support list
16610c9c56f5SRob Bradford
16620c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
16630c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
16640c9c56f5SRob Bradford
16650c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
16660c9c56f5SRob Bradford
16670c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
16680c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
16690c9c56f5SRob Bradfordallocated RAM. (#3938)
16700c9c56f5SRob Bradford
16710c9c56f5SRob Bradford### `AMX` Support
16720c9c56f5SRob Bradford
16730c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
16740c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
16750c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
16760c9c56f5SRob Bradford
16770c9c56f5SRob Bradford### Notable Bug Fixes
16780c9c56f5SRob Bradford
16790c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
16800c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
16810c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
16820c9c56f5SRob Bradford  `virtio-mem` (#3883)
16830c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
16840c9c56f5SRob Bradford  vIOMMU (#3870)
16850c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
16860c9c56f5SRob Bradford  (#3848)
16870c9c56f5SRob Bradford
16880c9c56f5SRob Bradford### Deprecations
16890c9c56f5SRob Bradford
16900c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
16910c9c56f5SRob Bradfordplan to use alternatives
16920c9c56f5SRob Bradford
16930c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
16940c9c56f5SRob Bradford  (#3968)
16950c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
16960c9c56f5SRob Bradford
16970c9c56f5SRob Bradford### Contributors
16980c9c56f5SRob Bradford
16990c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
17000c9c56f5SRob Bradford
17010c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
17020c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17030c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
17040c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17050c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
17060c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
17070c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
17080c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17090c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
17100c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
17110c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
17120c9c56f5SRob Bradford
17130c9c56f5SRob Bradford# v22.1
17140c9c56f5SRob Bradford
17150c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
17160c9c56f5SRob Bradford
17170c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
17180c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
17190c9c56f5SRob Bradford
17206aa10938SRob Bradford# v22.0
17216aa10938SRob Bradford
17220c9c56f5SRob BradfordThis release has been tracked through the [v22.0
17230c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
17246aa10938SRob Bradford
17256aa10938SRob Bradford### GDB Debug Stub Support
17266aa10938SRob Bradford
17276aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
17286aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
17296aa10938SRob Bradfordthe [gdb
17306aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
17316aa10938SRob Bradford
17326aa10938SRob Bradford### `virtio-iommu` Backed Segments
17336aa10938SRob Bradford
17346aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
17356aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
17366aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
17376aa10938SRob Bradford
17386aa10938SRob Bradford### Before Boot Configuration Changes
17396aa10938SRob Bradford
17406aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
17416aa10938SRob Bradfordresize) before the VM is booted.
17426aa10938SRob Bradford
17436aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
17446aa10938SRob Bradford
17456aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
17466aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
17476aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
17486aa10938SRob Bradfordmemory density.
17496aa10938SRob Bradford
17506aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
17516aa10938SRob Bradford
17526aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
17536aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
17546aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
17556aa10938SRob Bradfordhas been updated for this usage.
17566aa10938SRob Bradford
17576aa10938SRob Bradford### PMU Support for AArch64
17586aa10938SRob Bradford
17596aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
17606aa10938SRob Bradfordexposed automatically if available from the host.
17616aa10938SRob Bradford
17620c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
17636aa10938SRob Bradford
17646aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
17656aa10938SRob BradfordInternational" license which is aligned with the project charter under the
17666aa10938SRob BradfordLinux Foundation.
17676aa10938SRob Bradford
17686aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
17696aa10938SRob Bradford
17706aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
17716aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
17726aa10938SRob Bradfordversion.
17736aa10938SRob Bradford
17746aa10938SRob Bradford### Notable Bug Fixes
17756aa10938SRob Bradford
17766aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
17776aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
17786aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
17796aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
17806aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
17816aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
17826aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
17836aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
17846aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
17856aa10938SRob Bradford
17866aa10938SRob Bradford### Contributors
17876aa10938SRob Bradford
17886aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
17896aa10938SRob Bradford
17906aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
17916aa10938SRob Bradford* Barret Rhoden <brho@google.com>
17926aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
17936aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17946aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
17956aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
17966aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17976aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
17986aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
17996aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
18006aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
18016aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
18026aa10938SRob Bradford
180395ca7997SRob Bradford# v21.0
180495ca7997SRob Bradford
180595ca7997SRob BradfordThis release has been tracked through the [v21.0
180695ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
180795ca7997SRob Bradford
180895ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
180995ca7997SRob Bradford
18106aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
18116aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
18126aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
18136aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
18146aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
181595ca7997SRob Bradford
181695ca7997SRob Bradford### Recommended Kernel is Now 5.15
181795ca7997SRob Bradford
18186aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
18196aa10938SRob Bradfordis now 5.15. (#3530)
182095ca7997SRob Bradford
182195ca7997SRob Bradford### Notable Bug fixes
182295ca7997SRob Bradford
18237bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
182495ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
182595ca7997SRob Bradford* Support live migration within firmware (#3586)
18267bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
182795ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
182895ca7997SRob Bradford
182995ca7997SRob Bradford### Contributors
183095ca7997SRob Bradford
183195ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
183295ca7997SRob Bradford
183395ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
183495ca7997SRob Bradford* Barret Rhoden <brho@google.com>
183595ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
183695ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
183795ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
183895ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
183995ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
184095ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
184195ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
184295ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
184395ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
184495ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
184595ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
184695ca7997SRob Bradford
184795ca7997SRob Bradford# v20.2
184895ca7997SRob Bradford
184995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
185095ca7997SRob Bradford
185195ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
185295ca7997SRob Bradford  when this fails due to older kernel (#3456)
185395ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
185495ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
185595ca7997SRob Bradford  (#3496)
185695ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
185795ca7997SRob Bradford
185895ca7997SRob Bradford# v20.1
185995ca7997SRob Bradford
186095ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
186195ca7997SRob Bradford
186295ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
186395ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
186495ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
186595ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
186695ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
186795ca7997SRob Bradford
18687fc0776aSSebastien Boeuf# v20.0
18697fc0776aSSebastien Boeuf
18707fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
18717fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
18727fc0776aSSebastien Boeuf
18737fc0776aSSebastien Boeuf### Multiple PCI segments support
18747fc0776aSSebastien Boeuf
18757fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
18767fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
18777fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
18787fc0776aSSebastien Boeuf
18797fc0776aSSebastien Boeuf### CPU pinning
18807fc0776aSSebastien Boeuf
18817fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
18827fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
18837fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
18847fc0776aSSebastien Boeuf
18857fc0776aSSebastien Boeuf### Improved VFIO support
18867fc0776aSSebastien Boeuf
18877fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
18887fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
18897fc0776aSSebastien Boeufthe passthrough device.
18907fc0776aSSebastien Boeuf
18917fc0776aSSebastien Boeuf### Safer code
18927fc0776aSSebastien Boeuf
18937fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
18947fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
18957fc0776aSSebastien Boeufunsafe sections are safe to use.
18967fc0776aSSebastien Boeuf
18977fc0776aSSebastien Boeuf### Extended documentation
18987fc0776aSSebastien Boeuf
18997fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
19007fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
19017fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
19027fc0776aSSebastien Boeuf
19037fc0776aSSebastien Boeuf### Notable bug fixes
19047fc0776aSSebastien Boeuf
19057fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
19067fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
19077fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
19087fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
19097fc0776aSSebastien Boeuf
19107fc0776aSSebastien Boeuf### Contributors
19117fc0776aSSebastien Boeuf
19127fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
19137fc0776aSSebastien Boeuf
19147fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
19157fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
19167fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
19177fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
19187fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
19197fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
19207fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
19217fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
19227fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
19237fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
19247fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
19257fc0776aSSebastien Boeuf
1926d00eb4aaSRob Bradford# v19.0
1927d00eb4aaSRob Bradford
1928d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1929d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1930d00eb4aaSRob Bradford
1931d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1932d00eb4aaSRob Bradford
1933d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1934d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1935d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1936d00eb4aaSRob Bradford
1937d00eb4aaSRob Bradford### PCI boot time optimisations
1938d00eb4aaSRob Bradford
1939d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1940d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1941d00eb4aaSRob Bradford
1942d00eb4aaSRob Bradford### Improved TDX support
1943d00eb4aaSRob Bradford
1944d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1945d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1946d00eb4aaSRob Bradford
1947d00eb4aaSRob Bradford### Live migration enhancements
1948d00eb4aaSRob Bradford
1949d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1950d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1951d00eb4aaSRob Bradfordmigration.
1952d00eb4aaSRob Bradford
1953d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1954d00eb4aaSRob Bradford
1955d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1956d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1957d00eb4aaSRob Bradford
1958d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1959d00eb4aaSRob Bradford
1960d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1961d00eb4aaSRob Bradford
1962d00eb4aaSRob Bradford### Notable bug fixes
1963d00eb4aaSRob Bradford
1964d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1965d00eb4aaSRob Bradford  snapshot/restore (#3165)
1966d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1967d00eb4aaSRob Bradford  (#3078 #3113)
1968d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1969d00eb4aaSRob Bradford  the underlying crate (#3157)
1970d00eb4aaSRob Bradford
1971d00eb4aaSRob Bradford### Contributors
1972d00eb4aaSRob Bradford
1973d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1974d00eb4aaSRob Bradford
1975d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1976d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1977d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1978d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1979d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1980d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1981d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1982d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1983d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1984d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1985d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1986d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1987d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1988d00eb4aaSRob Bradford
19892c4f8d22SRob Bradford# v18.0
19902c4f8d22SRob Bradford
19912c4f8d22SRob BradfordThis release has been tracked through the [v18.0
19922c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
19932c4f8d22SRob Bradford
19942c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
19952c4f8d22SRob Bradford
19962c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
19972c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
19982c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
19992c4f8d22SRob Bradford
20002c4f8d22SRob Bradford### Migration support for `vhost-user` devices
20012c4f8d22SRob Bradford
20022c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
20032c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
20042c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
20052c4f8d22SRob Bradford
20062c4f8d22SRob Bradford### VHDX disk image support
20072c4f8d22SRob Bradford
20082c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
20092c4f8d22SRob Bradford
20102c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
20112c4f8d22SRob Bradford
20122c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
20132c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
20142c4f8d22SRob Bradford
20152c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
20162c4f8d22SRob Bradford
20172c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
20182c4f8d22SRob Bradford
20192c4f8d22SRob Bradford### Live migration on MSHV hypervisor
20202c4f8d22SRob Bradford
20212c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
20222c4f8d22SRob Bradfordefficient tracking of dirty pages.
20232c4f8d22SRob Bradford
20242c4f8d22SRob Bradford### AArch64 CPU topology support
20252c4f8d22SRob Bradford
20262c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
20272c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
20282c4f8d22SRob Bradfordtree.
20292c4f8d22SRob Bradford
20302c4f8d22SRob Bradford### Power button support on AArch64
20312c4f8d22SRob Bradford
20322c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
20332c4f8d22SRob Bradfordis now supported when running on AArch64.
20342c4f8d22SRob Bradford
20352c4f8d22SRob Bradford### Notable bug fixes
20362c4f8d22SRob Bradford
20372c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
20382c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
20392c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
20402c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
20412c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
20422c4f8d22SRob Bradford
20432c4f8d22SRob Bradford### Contributors
20442c4f8d22SRob Bradford
20452c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
20462c4f8d22SRob Bradford
20472c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
20482c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
20492c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
20502c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
20512c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
20522c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
20532c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
20542c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
20552c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
20562c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
20572c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
20582c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
20592c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
20602c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2061e6db5999SRob Bradford
2062e6db5999SRob Bradford# v17.0
2063e6db5999SRob Bradford
2064e6db5999SRob BradfordThis release has been tracked through the [v17.0
2065e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
2066e6db5999SRob Bradford
2067e6db5999SRob Bradford### ARM64 NUMA support using ACPI
2068e6db5999SRob Bradford
2069e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
2070e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
2071e6db5999SRob Bradford
2072e6db5999SRob Bradford### `Seccomp` support for MSHV backend
2073e6db5999SRob Bradford
2074e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
2075e6db5999SRob Bradfordhypervisor backend.
2076e6db5999SRob Bradford
2077e6db5999SRob Bradford### Hotplug of `macvtap` devices
2078e6db5999SRob Bradford
2079e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
2080e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
2081e6db5999SRob Bradfordtool supports this functionality when adding a network device.
2082e6db5999SRob Bradford
2083e6db5999SRob Bradford### Improved SGX support
2084e6db5999SRob Bradford
2085e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
2086e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
2087e6db5999SRob Bradford
2088e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
2089e6db5999SRob Bradford
2090e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
2091e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
2092e6db5999SRob Bradford
2093e6db5999SRob Bradford### Notable bug fixes
2094e6db5999SRob Bradford
2095e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
2096e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
2097e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
2098e6db5999SRob Bradford(#2833).
2099e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
2100e6db5999SRob Bradford
2101e6db5999SRob Bradford### Contributors
2102e6db5999SRob Bradford
2103e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
2104e6db5999SRob Bradford
2105e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2106e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
2107e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
2108e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
2109e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2110e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
2111e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2112e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
2113e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2114e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
2115e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2116e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2117e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
2118e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
2119e6db5999SRob Bradford
21205ed8e01fSRob Bradford# v16.0
21215ed8e01fSRob Bradford
21225ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
21235ed8e01fSRob Bradford
21245ed8e01fSRob Bradford### Improved live migration support
21255ed8e01fSRob Bradford
21265ed8e01fSRob 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.
21275ed8e01fSRob Bradford
21285ed8e01fSRob Bradford### Improved `vhost-user` support
21295ed8e01fSRob Bradford
21305ed8e01fSRob 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.
21315ed8e01fSRob Bradford
21325ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
21335ed8e01fSRob Bradford
21345ed8e01fSRob 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.
21355ed8e01fSRob Bradford
21365ed8e01fSRob Bradford### Notable bug fixes
21375ed8e01fSRob Bradford
21385ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
21395ed8e01fSRob 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).
21405ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
21415ed8e01fSRob Bradford
21425ed8e01fSRob Bradford### Removed functionality
21435ed8e01fSRob Bradford
21445ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
21455ed8e01fSRob Bradford
21465ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
21475ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
21485ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
21495ed8e01fSRob Bradford
21505ed8e01fSRob Bradford### Contributors
21515ed8e01fSRob Bradford
21525ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
21535ed8e01fSRob Bradford
21545ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
21555ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
21565ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
21575ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
21585ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
21595ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
21605ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
21615ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
21625ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
21635ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
21645ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
21655ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
21665ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
21675ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
21685ed8e01fSRob Bradford
216930a01277SRob Bradford# v15.0
217030a01277SRob Bradford
217130a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
217230a01277SRob Bradford
217330a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
217430a01277SRob Bradford
217530a01277SRob Bradford### Version numbering and stability guarantees
217630a01277SRob Bradford
217730a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
217830a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
217930a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
218030a01277SRob Bradford
218130a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
218230a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
218330a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
218430a01277SRob Bradford  will be documented in the release notes.
218530a01277SRob Bradford* Point releases will be made between individual releases where there are
218630a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
218730a01277SRob Bradford
218830a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
218930a01277SRob Bradford
219030a01277SRob Bradford* Snapshot/restore is not supported across different versions
219130a01277SRob Bradford* Live migration is not supported across different versions
219230a01277SRob Bradford* The following features are considered experimental and may change
219330a01277SRob Bradford  substantially between releases: TDX, SGX.
219430a01277SRob Bradford
219530a01277SRob Bradford### Network device rate limiting
219630a01277SRob Bradford
219730a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
219830a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
219930a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
220030a01277SRob Bradford
220130a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
220230a01277SRob Bradford
220330a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
220430a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
220530a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
220630a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
220730a01277SRob Bradford
220830a01277SRob Bradford### `--api-socket` supports file descriptor parameter
220930a01277SRob Bradford
221030a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
221130a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
221230a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
221330a01277SRob Bradford
221430a01277SRob Bradford### Bug fixes
221530a01277SRob Bradford
221630a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
221730a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
221830a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
221930a01277SRob Bradford  reprogram them (#1797,#1798)
222030a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
222130a01277SRob Bradford  exhaustion on the host) (#2517)
222230a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
222330a01277SRob Bradford  prevents snapshot & restore working (#2535)
222430a01277SRob Bradford
222530a01277SRob Bradford### Deprecations
222630a01277SRob Bradford
222730a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
222830a01277SRob Bradford
222930a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
223030a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
223130a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
223230a01277SRob Bradford
223330a01277SRob Bradford### Contributors
223430a01277SRob Bradford
223530a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
223630a01277SRob Bradford
223730a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
223830a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
223930a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
224030a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
224130a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
224230a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
224330a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
224430a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
224530a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
224630a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
224730a01277SRob Bradford* William Douglas <william.douglas@intel.com>
224830a01277SRob Bradford
224930a01277SRob Bradford# v0.14.1
225030a01277SRob Bradford
225130a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
225230a01277SRob Bradfordin this release:
225330a01277SRob Bradford
225430a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
225530a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
225630a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
225730a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
225830a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
225930a01277SRob Bradford
226040c63dcfSRob Bradford# v0.14.0
226140c63dcfSRob Bradford
226240c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
226340c63dcfSRob Bradford
226440c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
226540c63dcfSRob Bradford
226640c63dcfSRob Bradford### Structured event monitoring
226740c63dcfSRob Bradford
226840c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
226940c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
227040c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
227140c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
227240c63dcfSRob BradfordHypervisor API surface.
227340c63dcfSRob Bradford
227440c63dcfSRob Bradford### MSHV improvements
227540c63dcfSRob Bradford
227640c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
227740c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
227840c63dcfSRob Bradfordthe MSHV support.
227940c63dcfSRob Bradford
228040c63dcfSRob Bradford### Improved aarch64 platform
228140c63dcfSRob Bradford
228240c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
228340c63dcfSRob BradfordVM including an enhanced serial UART.
228440c63dcfSRob Bradford
228540c63dcfSRob Bradford### Updated hotplug documentation
228640c63dcfSRob Bradford
228740c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
228840c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
228940c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
229040c63dcfSRob Bradford
229140c63dcfSRob Bradford### PTY control for serial and `virtio-console`
229240c63dcfSRob Bradford
229340c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
229440c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
229540c63dcfSRob BradfordPTY subsystem.
229640c63dcfSRob Bradford
229740c63dcfSRob Bradford### Block device rate limiting
229840c63dcfSRob Bradford
229940c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
230040c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
230130a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
230240c63dcfSRob Bradford
230340c63dcfSRob Bradford
230440c63dcfSRob Bradford### Deprecations
230540c63dcfSRob Bradford
230640c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
230740c63dcfSRob Bradford
230840c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
230940c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
231040c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
231140c63dcfSRob Bradford
231240c63dcfSRob Bradford
231340c63dcfSRob Bradford### Contributors
231440c63dcfSRob Bradford
231540c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
231640c63dcfSRob Bradfordsome new faces.
231740c63dcfSRob Bradford
231842e9632cSJosh Soref* Bo Chen <chen.bo@intel.com>
231942e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com>
232042e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com>
232142e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
232242e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com>
232342e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com>
232442e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com>
232542e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com>
232642e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com>
232742e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com>
232842e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com>
232942e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com>
233042e9632cSJosh Soref* Zide Chen <zide.chen@intel.com>
233140c63dcfSRob Bradford
2332f58b6f84SRob Bradford# v0.13.0
2333f58b6f84SRob Bradford
2334f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
2335f58b6f84SRob Bradford
2336f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
2337f58b6f84SRob Bradford
2338f58b6f84SRob Bradford### Wider VFIO device support
2339f58b6f84SRob Bradford
2340f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
2341f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
2342f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
2343f58b6f84SRob Bradforddrivers.
2344f58b6f84SRob Bradford
234540c63dcfSRob Bradford### Improved huge page support
2346f58b6f84SRob Bradford
2347f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
2348f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
2349f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
2350f58b6f84SRob Bradforddesired size in their pool.
2351f58b6f84SRob Bradford
2352f58b6f84SRob Bradford### MACvTAP support
2353f58b6f84SRob Bradford
2354f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
2355f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
2356f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
2357f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
2358f58b6f84SRob Bradford
2359f58b6f84SRob Bradford### VHD disk image support
2360f58b6f84SRob Bradford
2361f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
2362f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
2363f58b6f84SRob Bradford
2364f58b6f84SRob Bradford### Improved Virtio device threading
2365f58b6f84SRob Bradford
2366f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
2367f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
2368f58b6f84SRob Bradfordpredictable name derived from the device id.
2369f58b6f84SRob Bradford
2370f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
2371f58b6f84SRob Bradford
2372f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
2373f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
2374f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
2375f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
2376f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
2377f58b6f84SRob Bradford
2378f58b6f84SRob Bradford### Contributors
2379f58b6f84SRob Bradford
2380f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2381f58b6f84SRob Bradfordsome new faces.
2382f58b6f84SRob Bradford
2383f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2384f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2385f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2386f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2387f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2388f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2389f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2390f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2391f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2392f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2393f58b6f84SRob Bradford
2394d42b5084SRob Bradford# v0.12.0
2395d42b5084SRob Bradford
2396d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
2397d42b5084SRob Bradford
2398d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2399d42b5084SRob Bradford
2400d42b5084SRob Bradford### ARM64 enhancements
2401d42b5084SRob Bradford
2402d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2403d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2404d42b5084SRob Bradford
2405d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2406d42b5084SRob Bradford
2407d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2408d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2409d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2410d42b5084SRob Bradfordremoved.
2411d42b5084SRob Bradford
2412d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2413d42b5084SRob Bradford
2414d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
241542e9632cSJosh Sorefinstead hosted in [its own
2416d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2417d42b5084SRob Bradford
2418d42b5084SRob Bradford### Enhanced "info" API
2419d42b5084SRob Bradford
2420d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2421d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2422d42b5084SRob Bradford
2423d42b5084SRob Bradford### Contributors
2424d42b5084SRob Bradford
2425d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2426d42b5084SRob Bradford
2427d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2428d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2429d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2430d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2431d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2432d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2433d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2434d42b5084SRob Bradford
24357dcd3affSRob Bradford# v0.11.0
24367dcd3affSRob Bradford
24377dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
24387dcd3affSRob Bradford
24397dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
24407dcd3affSRob Bradford
24417dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
24427dcd3affSRob Bradford
24437dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
24447dcd3affSRob Bradfordbe used for a significantly higher performance block device.
24457dcd3affSRob Bradford
24467dcd3affSRob Bradford### Windows Guest Support
24477dcd3affSRob Bradford
24487dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
24497dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
24507dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
24517dcd3affSRob Bradforddocumentation](docs/windows.md).
24527dcd3affSRob Bradford
24537dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
24547dcd3affSRob Bradford
24557dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
24567dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
24577dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
24587dcd3affSRob Bradford
2459d00eb4aaSRob Bradford### `virtio-mmio` Removal
24607dcd3affSRob Bradford
24617dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
24627dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
24637dcd3affSRob Bradfordreduce the testing burden of the project.
24647dcd3affSRob Bradford
24657dcd3affSRob Bradford### Snapshot/Restore support for ARM64
24667dcd3affSRob Bradford
24677dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
24687dcd3affSRob Bradfordimplemented.
24697dcd3affSRob Bradford
24707dcd3affSRob Bradford### Improved Linux Boot Time
24717dcd3affSRob Bradford
24727dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
24737dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
24747dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
24757dcd3affSRob Bradford
24767dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
24777dcd3affSRob Bradford
24787dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
24797dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
24807dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
24817dcd3affSRob Bradfordresources.
24827dcd3affSRob Bradford
24837dcd3affSRob Bradford### Default Log Level Changed
24847dcd3affSRob Bradford
24857dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
24867dcd3affSRob Bradfordeasier to see potential issues. New [logging
24877dcd3affSRob Bradforddocumentation](docs/logging) was also added.
24887dcd3affSRob Bradford
24897dcd3affSRob Bradford### New `--balloon` Parameter Added
24907dcd3affSRob Bradford
24917dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
24927dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
24937dcd3affSRob Bradfordcontrols without overloading `--memory`.
24947dcd3affSRob Bradford
24957dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
24967dcd3affSRob Bradford
24977dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
24987dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
24997dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
25007dcd3affSRob Bradford
25017dcd3affSRob Bradford### Notable Bug Fixes
25027dcd3affSRob Bradford
25037dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
25047dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
25057dcd3affSRob Bradford* CPU identification string is now exposed to the guest
25067dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
25077dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
25087dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
25097dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
25107dcd3affSRob Bradford  can be used (#1803)
25117dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
25127dcd3affSRob Bradford  correctly
25137dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
25147dcd3affSRob Bradford  correctly
25157dcd3affSRob Bradford
25167dcd3affSRob Bradford### Contributors
25177dcd3affSRob Bradford
25187dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
25197dcd3affSRob Bradford
25207dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
25217dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
25227dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
25237dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
25247dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
25257dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
25267dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
25277dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
25287dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
25297dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
25307dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
25317dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
25327dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
25337dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
25347dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
25357dcd3affSRob Bradford
25367dcd3affSRob Bradford
2537198bd551SRob Bradford# v0.10.0
2538198bd551SRob Bradford
2539198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2540198bd551SRob Bradford
2541198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2542198bd551SRob Bradford
2543198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2544198bd551SRob Bradford
2545198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2546198bd551SRob Bradford
2547198bd551SRob Bradford### Memory Zones
2548198bd551SRob Bradford
254942e9632cSJosh 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).
2550198bd551SRob Bradford
2551198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2552198bd551SRob Bradford
2553198bd551SRob 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`.
2554198bd551SRob Bradford
2555198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2556198bd551SRob Bradford
2557198bd551SRob 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.
2558198bd551SRob Bradford
2559198bd551SRob Bradford### Notable Bug Fixes
2560198bd551SRob Bradford
2561198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2562198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2563198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2564198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2565198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2566198bd551SRob Bradford
2567198bd551SRob Bradford### Contributors
2568198bd551SRob Bradford
2569198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2570198bd551SRob Bradford
2571198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2572198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2573198bd551SRob Bradford* Anatol Belski <ab@php.net>
2574198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2575198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2576198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2577198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2578198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2579198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2580198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2581198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2582198bd551SRob Bradford
2583d714cf81SRob Bradford# v0.9.0
2584d714cf81SRob Bradford
2585d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2586d714cf81SRob Bradford
2587d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2588d714cf81SRob Bradford
2589d714cf81SRob Bradford### `io_uring` Based Block Device Support
2590d714cf81SRob Bradford
2591d714cf81SRob 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.
2592d714cf81SRob Bradford
2593d714cf81SRob Bradford### Block and Network Device Statistics
2594d714cf81SRob Bradford
2595d714cf81SRob 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.
2596d714cf81SRob Bradford
2597d714cf81SRob Bradford### HTTP API Responses
2598d714cf81SRob Bradford
2599d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2600d714cf81SRob Bradford
2601d714cf81SRob Bradford### CPU Topology
2602d714cf81SRob Bradford
2603d714cf81SRob 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.
2604d714cf81SRob Bradford
2605d714cf81SRob Bradford### Release Build Optimization
2606d714cf81SRob Bradford
2607d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2608d714cf81SRob Bradford
2609d714cf81SRob Bradford### Hypervisor Abstraction
2610d714cf81SRob Bradford
2611d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2612d714cf81SRob Bradford
2613d714cf81SRob Bradford### Snapshot/Restore Improvements
2614d714cf81SRob Bradford
2615d714cf81SRob 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.
2616d714cf81SRob Bradford
2617d714cf81SRob Bradford### Virtio Memory Ballooning Support
2618d714cf81SRob Bradford
2619d714cf81SRob 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.
2620d714cf81SRob Bradford
2621d714cf81SRob Bradford### Enhancements to ARM64 Support
2622d714cf81SRob Bradford
2623d714cf81SRob 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.
2624d714cf81SRob Bradford
2625d714cf81SRob Bradford### Intel SGX Support
2626d714cf81SRob Bradford
2627d714cf81SRob 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).
2628d714cf81SRob Bradford
2629d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2630d714cf81SRob Bradford
2631d714cf81SRob 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.
2632d714cf81SRob Bradford
2633d714cf81SRob Bradford### Notable Bug Fixes
2634d714cf81SRob Bradford
2635d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2636d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2637d714cf81SRob 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).
2638d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2639d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2640d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2641d714cf81SRob Bradford
2642d714cf81SRob Bradford### Contributors
2643d714cf81SRob Bradford
2644d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2645d714cf81SRob Bradford
2646d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2647d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2648d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2649d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2650d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2651d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2652d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2653d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2654d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2655d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2656d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2657d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2658d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2659d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2660d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2661d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2662d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2663d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2664d714cf81SRob Bradford
2665d714cf81SRob Bradford
266652b83969SRob Bradford# v0.8.0
266752b83969SRob Bradford
266852b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
266952b83969SRob Bradford
267052b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
267152b83969SRob Bradford
267252b83969SRob Bradford### Experimental Snapshot and Restore Support
267352b83969SRob Bradford
267452b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
267552b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
267652b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
267752b83969SRob Bradfordoriginal VM at the point it was paused.
267852b83969SRob Bradford
267952b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
268052b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
268152b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
268252b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
268352b83969SRob Bradford(#1176).
268452b83969SRob Bradford
268552b83969SRob Bradford### Experimental ARM64 Support
268652b83969SRob Bradford
268752b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
268852b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
268952b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
269052b83969SRob Bradford
269152b83969SRob Bradford### Support for Using 5-level Paging in Guests
269252b83969SRob Bradford
269352b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
269452b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
269552b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
269652b83969SRob Bradfordwork due to current limitations in the PVH boot process.
269752b83969SRob Bradford
269852b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
269952b83969SRob Bradford
270052b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
270152b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
270252b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
270352b83969SRob Bradfordthe guest must service.
270452b83969SRob Bradford
270552b83969SRob Bradford### `vhost_user_fs` Improvements
270652b83969SRob Bradford
270752b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
270852b83969SRob Bradford
270952b83969SRob Bradford
271052b83969SRob Bradford### Notable Bug Fixes
271152b83969SRob Bradford
271252b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
271352b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
271452b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
271552b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
271652b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
271752b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
271852b83969SRob Bradford  #1216).
271952b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
272052b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
272152b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
272252b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
272352b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
272452b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
272552b83969SRob Bradford  (#751).
272652b83969SRob Bradford
272752b83969SRob Bradford### Command Line and API Changes
272852b83969SRob Bradford
272952b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
273052b83969SRob Bradford
273152b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
273252b83969SRob Bradford  rather than `sock` in some cases.
273352b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
273452b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
273552b83969SRob Bradford  offered for negotiation.
273652b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
273752b83969SRob Bradford  address for the `tap` device on the host.
273852b83969SRob Bradford
273952b83969SRob Bradford### Contributors
274052b83969SRob Bradford
274152b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
274252b83969SRob Bradford
274352b83969SRob Bradford* Anatol Belski <ab@php.net>
274452b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
274552b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
274652b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
274752b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
274852b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
274952b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
275052b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
275152b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
275252b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
275352b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
275452b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
275552b83969SRob Bradford
275696be8229SRob Bradford# v0.7.0
275796be8229SRob Bradford
275896be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
275996be8229SRob Bradford
276096be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
276196be8229SRob Bradford
276296be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
276396be8229SRob Bradford
276496be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
276596be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
276696be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
27675c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
276896be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
276996be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
277096be8229SRob Bradforddevices to ease their removal.
277196be8229SRob Bradford
277296be8229SRob Bradford### Alternative `libc` Support
277396be8229SRob Bradford
277496be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
277596be8229SRob Bradfordcontains a static binary compiled using that toolchain.
277696be8229SRob Bradford
277796be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
277896be8229SRob Bradford
277996be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
278096be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
278196be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
278296be8229SRob Bradfordis passed when the devices are created.
278396be8229SRob Bradford
278496be8229SRob Bradford### Initial RamFS Support
278596be8229SRob Bradford
278696be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
278796be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
278896be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
278996be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
279096be8229SRob Bradfordminimal image.
279196be8229SRob Bradford
279296be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
279396be8229SRob Bradford
279496be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
279596be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
279696be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
279796be8229SRob Bradfordrequires kernel patches to be able to support it.
279896be8229SRob Bradford
279996be8229SRob Bradford### `Seccomp` Sandboxing
280096be8229SRob Bradford
280196be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
280296be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
280396be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
280496be8229SRob Bradford
280596be8229SRob Bradford### Updated Distribution Support
280696be8229SRob Bradford
280796be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
280896be8229SRob Bradforddistributions and is part of our regular testing programme.
280996be8229SRob Bradford
281096be8229SRob Bradford### Command Line and API Changes
281196be8229SRob Bradford
281296be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
281396be8229SRob Bradford
281496be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
281596be8229SRob Bradford  If no name is specified the VMM chooses one.
281696be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
281796be8229SRob Bradford  memory instead of providing a path.
281896be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
281996be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
282096be8229SRob Bradford  option and replaced it with a single optional field.
282196be8229SRob Bradford* There is enhanced validation of the command line and API provided
282296be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
282396be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
282496be8229SRob Bradford  device.
282596be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
282696be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
282796be8229SRob Bradford  has appropriate new HTTP endpoints too.
282896be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
282996be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
283096be8229SRob Bradford  to provide the equivalent of a read-only file.
283196be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
283296be8229SRob Bradford  with those used by `--disk`.
283396be8229SRob Bradford
283496be8229SRob Bradford### Contributors
283596be8229SRob Bradford
283696be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
283796be8229SRob Bradford
283896be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
283996be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
284096be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
284196be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
284296be8229SRob Bradford* Dean Sheather <dean@coder.com>
284396be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
284496be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
284596be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
284696be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
284796be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
284896be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
284996be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
285096be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
285196be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
285296be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
285396be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
285496be8229SRob Bradford
285503cb26ccSSamuel Ortiz# v0.6.0
285603cb26ccSSamuel Ortiz
285703cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
285803cb26ccSSamuel Ortiz
285903cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
286003cb26ccSSamuel Ortiz
286103cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
286203cb26ccSSamuel Ortiz
286303cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
286403cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
286503cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
286603cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
286703cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
286803cb26ccSSamuel Ortiz
286903cb26ccSSamuel Ortiz### Shared Filesystem Improvements
287003cb26ccSSamuel Ortiz
287103cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
287203cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
287303cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
287403cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
287503cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
287603cb26ccSSamuel Ortiz
287703cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
287803cb26ccSSamuel Ortiz
287903cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
288003cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
288103cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
288203cb26ccSSamuel Ortizinto their own, separate processes.
28835c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
288403cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
288503cb26ccSSamuel Ortiz
288603cb26ccSSamuel Ortiz### Command Line Interface
288703cb26ccSSamuel Ortiz
288803cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
288937a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
289037a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
289137a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
289237a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
289337a2c13aSAlyssa Rossis created with each build and available e.g. at
289403cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
289503cb26ccSSamuel Ortiz
289603cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
289703cb26ccSSamuel Ortizcommands.
289803cb26ccSSamuel Ortiz
289903cb26ccSSamuel Ortiz### PVH Boot
290003cb26ccSSamuel Ortiz
290103cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
290203cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
290303cb26ccSSamuel Ortiz
290403cb26ccSSamuel Ortiz### Contributors
290503cb26ccSSamuel Ortiz
290603cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
290703cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
290803cb26ccSSamuel Ortiz
290903cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
291003cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
291103cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
291203cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
291303cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
291403cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
291503cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
291603cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
291703cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
291803cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
291903cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
292003cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
292103cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
292203cb26ccSSamuel Ortiz
292394f2fc33SRob Bradford# v0.5.1
292494f2fc33SRob Bradford
292594f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
292694f2fc33SRob Bradford
292794f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
292894f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
292994f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
293094f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
293194f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
29328e8a7b6dSSamuel Ortiz
29332f395e60SSamuel Ortiz# v0.5.0
29342f395e60SSamuel Ortiz
29352f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
29362f395e60SSamuel Ortiz
29372f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
29382f395e60SSamuel Ortiz
29392f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
29402f395e60SSamuel Ortiz
29412f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
29422f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
29432f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
29442f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
29452f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
29462f395e60SSamuel Ortiz
29472f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
29482f395e60SSamuel Ortiz
29492f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
29502f395e60SSamuel Ortiz
29512f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
29522f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
29532f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
29542f395e60SSamuel Ortiz
29552f395e60SSamuel Ortiz### New Interrupt Management Framework
29562f395e60SSamuel Ortiz
29572f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
29582f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
29592f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
29602f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
29612f395e60SSamuel Ortizvirtio ones.
29622f395e60SSamuel Ortiz
29632f395e60SSamuel Ortiz### Development Tools
29642f395e60SSamuel Ortiz
29652f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
29662f395e60SSamuel Ortizbuild, development and testing tools.
29672f395e60SSamuel OrtizSomehow similar to the excellent
29682f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
296937a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
29702f395e60SSamuel Ortiz
29712f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
29722f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
29732f395e60SSamuel Ortiz
29742f395e60SSamuel Ortiz### Kata Containers Integration
29752f395e60SSamuel Ortiz
29762f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
29772f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
29782f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
29792f395e60SSamuel Ortizintegrated into the project's CI.
29802f395e60SSamuel Ortiz
29812f395e60SSamuel Ortiz### Contributors
29822f395e60SSamuel Ortiz
29832f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
29842f395e60SSamuel Ortiz
29852f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
29862f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
29872f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
29882f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
29892f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
29902f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
29912f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
29922f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
29932f395e60SSamuel Ortiz
2994cec884e8SSamuel Ortiz# v0.4.0
2995cec884e8SSamuel Ortiz
2996cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2997cec884e8SSamuel Ortiz
2998cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2999cec884e8SSamuel Ortiz
3000cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
3001cec884e8SSamuel Ortiz
3002e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
3003cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
3004cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
3005cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
300637a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
3007cec884e8SSamuel Ortiz
3008cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
3009cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
3010cec884e8SSamuel Ortiz
3011cec884e8SSamuel Ortiz### Programmatic firmware tables generation
3012cec884e8SSamuel Ortiz
3013cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
3014cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
3015cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
3016cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
3017cec884e8SSamuel Ortiztables based on the VMM device model and topology.
3018cec884e8SSamuel Ortiz
3019cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
3020cec884e8SSamuel Ortiz
3021cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
3022cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
3023cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
3024cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
3025cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
3026cec884e8SSamuel Ortiz
3027cec884e8SSamuel Ortiz### Guest pause and resume
3028cec884e8SSamuel Ortiz
30295c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
3030cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
3031cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
3032cec884e8SSamuel Ortizand resume capabilities.
3033cec884e8SSamuel Ortiz
3034cec884e8SSamuel Ortiz### Userspace IOAPIC by default
3035cec884e8SSamuel Ortiz
3036cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
3037cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
3038cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
3039cec884e8SSamuel Ortizdefault.
3040cec884e8SSamuel Ortiz
3041cec884e8SSamuel Ortiz### PCI BAR reprogramming
3042cec884e8SSamuel Ortiz
3043cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
3044cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
3045cec884e8SSamuel Ortizreprogramming.
3046cec884e8SSamuel Ortiz
3047cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
3048cec884e8SSamuel Ortiz
3049cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
3050cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
3051cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
3052cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
3053cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3054cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
3055cec884e8SSamuel Ortiztemporarily fork.
3056cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
3057cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
3058cec884e8SSamuel Ortiz
3059cec884e8SSamuel Ortiz### Contributors
3060cec884e8SSamuel Ortiz
3061cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
3062cec884e8SSamuel Ortiz
3063cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
3064cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
3065cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
3066cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
3067cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
3068cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
3069cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
3070cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
3071cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
3072cec884e8SSamuel Ortiz
30738e8a7b6dSSamuel Ortiz# v0.3.0
30748e8a7b6dSSamuel Ortiz
30758ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
30768e8a7b6dSSamuel Ortiz
30778e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
30788e8a7b6dSSamuel Ortiz
30798e8a7b6dSSamuel Ortiz### Block device offloading
30808e8a7b6dSSamuel Ortiz
30818e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
30828e8a7b6dSSamuel Ortizand we added support for
30838e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
30848e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
30858e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
30868e8a7b6dSSamuel Ortizbackend.
30878e8a7b6dSSamuel Ortiz
30888e8a7b6dSSamuel Ortiz### Network device backend
30898e8a7b6dSSamuel Ortiz
30908e8a7b6dSSamuel OrtizThe previous release provided support for
30918e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
30928e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
30938e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
30948e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
30958e8a7b6dSSamuel Ortiz
30968e8a7b6dSSamuel Ortiz### Virtual sockets
30978e8a7b6dSSamuel Ortiz
30988e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
30998e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
31008e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
31018e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
31028e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
31038e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
31048e8a7b6dSSamuel Ortiz
31058e8a7b6dSSamuel Ortiz### HTTP based API
31068e8a7b6dSSamuel Ortiz
31078e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
31088e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
31098e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
31108e8a7b6dSSamuel Ortiznext release cycle.
31118e8a7b6dSSamuel Ortiz
31128e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
31138e8a7b6dSSamuel Ortiz
31148e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
31158e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
31168e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
31178e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
31188e8a7b6dSSamuel Ortiz
31198e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
31208e8a7b6dSSamuel Ortiz
31218e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
312237a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
312337a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
31248e8a7b6dSSamuel Ortiz
31258e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
31268e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
31278e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
31288e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
31298e8a7b6dSSamuel Ortizsetting.
31308e8a7b6dSSamuel Ortiz
31318e8a7b6dSSamuel Ortiz### Ubuntu 19.10
31328e8a7b6dSSamuel Ortiz
31338ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
31348e8a7b6dSSamuel Ortizwe can now support the latest
31358e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
31368e8a7b6dSSamuel Ortiz
31378e8a7b6dSSamuel Ortiz### Large memory guests
31388e8a7b6dSSamuel Ortiz
31398e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
31408e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
31417688e6e2SSamuel Ortiz
3142d784ac29SSamuel Ortiz# v0.2.0
3143d784ac29SSamuel Ortiz
31448ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
3145d784ac29SSamuel Ortiz
3146d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
3147d784ac29SSamuel Ortiz
3148d784ac29SSamuel Ortiz### Network device offloading
3149d784ac29SSamuel Ortiz
3150d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
3151d784ac29SSamuel Ortizprocesses, we added support for
3152d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
3153d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
3154d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
3155d784ac29SSamuel Ortiz
3156d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
3157d784ac29SSamuel Ortiz
3158d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
3159d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
3160d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
3161d784ac29SSamuel Ortizcleanly reboot and shutdown.
3162d784ac29SSamuel Ortiz
3163d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
3164d784ac29SSamuel Ortizenabled by default.
3165d784ac29SSamuel Ortiz
3166d784ac29SSamuel Ortiz### Debug I/O port
3167d784ac29SSamuel Ortiz
3168d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
3169d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
3170d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
3171d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
317237a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
317337a2c13aSAlyssa Rossdetails.
3174d784ac29SSamuel Ortiz
3175d784ac29SSamuel Ortiz### Improved direct device assignment
3176d784ac29SSamuel Ortiz
3177d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
3178d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
3179d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
3180d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
3181d784ac29SSamuel Ortizdirectly assigned devices.
3182d784ac29SSamuel Ortiz
3183d784ac29SSamuel Ortiz### Improved shared filesystem
3184d784ac29SSamuel Ortiz
3185d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
3186d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
3187d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
3188d784ac29SSamuel Ortizmemory footprint.
3189d784ac29SSamuel Ortiz
3190d784ac29SSamuel Ortiz### Ubuntu bionic based CI
3191d784ac29SSamuel Ortiz
31928ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3193d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
3194d784ac29SSamuel Ortizour CI pipeline.
3195d784ac29SSamuel Ortiz
319693b77530SSamuel Ortiz# v0.1.0
319793b77530SSamuel Ortiz
31988ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
319993b77530SSamuel Ortiz
320093b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
320193b77530SSamuel Ortiz
320293b77530SSamuel Ortiz### Shared filesystem
320393b77530SSamuel Ortiz
320493b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
320593b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
320693b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
320793b77530SSamuel Ortiz
320837a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
320937a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
321093b77530SSamuel Ortiz
321193b77530SSamuel Ortiz### Initial direct device assignment support
321293b77530SSamuel Ortiz
321393b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
321493b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
321593b77530SSamuel Ortizphysical devices into its guest.
321693b77530SSamuel Ortiz
321737a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
321837a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
321993b77530SSamuel Ortiz
322093b77530SSamuel Ortiz### Userspace IOAPIC
322193b77530SSamuel Ortiz
322293b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
322393b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
322493b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
322593b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
322693b77530SSamuel Ortiz
322793b77530SSamuel Ortiz### Virtual persistent memory
322893b77530SSamuel Ortiz
322993b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
323093b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
323193b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
323293b77530SSamuel Ortiz
323393b77530SSamuel Ortiz### Linux kernel bzImage
323493b77530SSamuel Ortiz
323593b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
323693b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
323793b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
323893b77530SSamuel Ortizdistribution kernel image.
323993b77530SSamuel Ortiz
324093b77530SSamuel Ortiz### Console over virtio
324193b77530SSamuel Ortiz
324293b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
324393b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
324493b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
324593b77530SSamuel Ortizimplementation.
324693b77530SSamuel Ortiz
324793b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
324893b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
324993b77530SSamuel Ortiz`--serial tty --console off` from the command line.
325093b77530SSamuel Ortiz
325193b77530SSamuel Ortiz### Unit testing
325293b77530SSamuel Ortiz
325393b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
325493b77530SSamuel Ortiz
325593b77530SSamuel Ortiz### Integration tests parallelization
325693b77530SSamuel Ortiz
325793b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
325893b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
3259