xref: /cloud-hypervisor/release-notes.md (revision 339912a5769a4223eada18c9c68a6b586c20f9ab)
1*339912a5SBo Chen- [v35.0](#v350)
2*339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
3*339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
4*339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
5*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
6*339912a5SBo Chen    - [Contributors](#contributors)
7487a43cdSRob Bradford- [v34.0](#v340)
8487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
9487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
10487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
11487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
12*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
13*339912a5SBo Chen    - [Contributors](#contributors-1)
14487a43cdSRob Bradford- [v33.0](#v330)
15487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
16487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
17*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
18*339912a5SBo Chen    - [Contributors](#contributors-2)
1942ca292dSRob Bradford- [v32.0](#v320)
2042ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
2142ca292dSRob Bradford    - [API Changes](#api-changes)
22*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-3)
23*339912a5SBo Chen    - [Contributors](#contributors-3)
2442ca292dSRob Bradford- [v31.1](#v311)
25f3522e85SMichael Zhao- [v31.0](#v310)
26f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
27f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
28f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
29f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
30f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements)
31*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
32*339912a5SBo Chen    - [Contributors](#contributors-4)
33ece0e6faSBo Chen- [v30.0](#v300)
34ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
35ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
36ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
37f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements-1)
38*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
39*339912a5SBo Chen    - [Contributors](#contributors-5)
40ece0e6faSBo Chen- [v28.2](#v282)
4122cf8c97SRob Bradford- [v29.0](#v290)
4222cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
4322cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
4422cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
4522cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
4622cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
4722cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
4822cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
49*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
5022cf8c97SRob Bradford    - [Removals](#removals)
5122cf8c97SRob Bradford    - [Deprecations](#deprecations)
52*339912a5SBo Chen    - [Contributors](#contributors-6)
5322cf8c97SRob Bradford- [v28.1](#v281)
5466460765SRob Bradford- [v28.0](#v280)
5566460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
5666460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
5766460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
5866460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
5966460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
60*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
6122cf8c97SRob Bradford    - [Removals](#removals-1)
62*339912a5SBo Chen    - [Contributors](#contributors-7)
632ba6a9bfSRob Bradford- [v27.0](#v270)
642ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
652ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
662ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
672ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
682ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
692ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
702ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
71*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
72f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
73*339912a5SBo Chen    - [Contributors](#contributors-8)
74f3522e85SMichael Zhao- [v26.0](#v260)
75f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
76f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
77*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-9)
7822cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
7966460765SRob Bradford    - [Removals](#removals-2)
80*339912a5SBo Chen    - [Contributors](#contributors-9)
8122cf8c97SRob Bradford- [v25.0](#v250)
8222cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
8322cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
84*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-10)
8522cf8c97SRob Bradford    - [Removals](#removals-3)
86*339912a5SBo Chen    - [Contributors](#contributors-10)
870150de55SSebastien Boeuf- [v24.0](#v240)
880150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
890150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
900150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
910150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
92*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-11)
930150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
9422cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
950150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
96*339912a5SBo Chen    - [Contributors](#contributors-11)
970150de55SSebastien Boeuf- [v23.1](#v231)
980c9c56f5SRob Bradford- [v23.0](#v230)
990c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1000c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1010c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1020c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
103*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-12)
10422cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
105*339912a5SBo Chen    - [Contributors](#contributors-12)
1060c9c56f5SRob Bradford- [v22.1](#v221)
1076aa10938SRob Bradford- [v22.0](#v220)
1086aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1096aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1106aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1116aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1126aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1136aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1140c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1156aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
116*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-13)
117*339912a5SBo Chen    - [Contributors](#contributors-13)
11895ca7997SRob Bradford- [v21.0](#v210)
11995ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
12095ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
121*339912a5SBo Chen    - [Notable Bug fixes](#notable-bug-fixes-14)
122*339912a5SBo Chen    - [Contributors](#contributors-14)
12395ca7997SRob Bradford- [v20.2](#v202)
12495ca7997SRob Bradford- [v20.1](#v201)
1257fc0776aSSebastien Boeuf- [v20.0](#v200)
1267fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1277fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1287fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1297fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1307fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
131*339912a5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-15)
132*339912a5SBo Chen    - [Contributors](#contributors-15)
133d00eb4aaSRob Bradford- [v19.0](#v190)
134d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
135d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
136d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
137d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
138d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
139d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
140*339912a5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-16)
141*339912a5SBo Chen    - [Contributors](#contributors-16)
1422c4f8d22SRob Bradford- [v18.0](#v180)
1432c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1442c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1452c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1462c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1472c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1482c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1492c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1502c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
151*339912a5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-17)
152*339912a5SBo Chen    - [Contributors](#contributors-17)
153e6db5999SRob Bradford- [v17.0](#v170)
154e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
155e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
156e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
157e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
158e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
159*339912a5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-18)
160*339912a5SBo Chen    - [Contributors](#contributors-18)
1615ed8e01fSRob Bradford- [v16.0](#v160)
1625ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1635ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1645ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
165*339912a5SBo Chen    - [Notable bug fixes](#notable-bug-fixes-19)
1665ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
167*339912a5SBo Chen    - [Contributors](#contributors-19)
16830a01277SRob Bradford- [v15.0](#v150)
16930a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
17030a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
17130a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
172f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
17330a01277SRob Bradford    - [Bug fixes](#bug-fixes)
17422cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
175*339912a5SBo Chen    - [Contributors](#contributors-20)
17630a01277SRob Bradford- [v0.14.1](#v0141)
17740c63dcfSRob Bradford- [v0.14.0](#v0140)
17840c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
17940c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
18040c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
18140c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
18240c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
18340c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
18422cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
185*339912a5SBo Chen    - [Contributors](#contributors-21)
186f58b6f84SRob Bradford- [v0.13.0](#v0130)
187f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
18840c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
189f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
190f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
191f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
192f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
193*339912a5SBo Chen    - [Contributors](#contributors-22)
194d42b5084SRob Bradford- [v0.12.0](#v0120)
195d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
196d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
197d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
198d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
199*339912a5SBo Chen    - [Contributors](#contributors-23)
2007dcd3affSRob Bradford- [v0.11.0](#v0110)
2017dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2027dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2037dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
204d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2057dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2067dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2077dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2087dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
209f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2107dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
211*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-20)
212*339912a5SBo Chen    - [Contributors](#contributors-24)
213198bd551SRob Bradford- [v0.10.0](#v0100)
214198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
215198bd551SRob Bradford    - [Memory Zones](#memory-zones)
216198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
217198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
218*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-21)
219*339912a5SBo Chen    - [Contributors](#contributors-25)
220d714cf81SRob Bradford- [v0.9.0](#v090)
221d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
222d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
223d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
224d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
225d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
226d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
227d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
228d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
229d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
230d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
231198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
232*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-22)
233*339912a5SBo Chen    - [Contributors](#contributors-26)
234d714cf81SRob Bradford- [v0.8.0](#v080)
235d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
236d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
237d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
238d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
239d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
240*339912a5SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-23)
241d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
242*339912a5SBo Chen    - [Contributors](#contributors-27)
24396be8229SRob Bradford- [v0.7.0](#v070)
24496be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
24596be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
24696be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
24796be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
24896be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
24996be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
25096be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
25152b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
252*339912a5SBo Chen    - [Contributors](#contributors-28)
25303cb26ccSSamuel Ortiz- [v0.6.0](#v060)
25403cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
25503cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
25603cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
25703cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
25803cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
259*339912a5SBo Chen    - [Contributors](#contributors-29)
26094f2fc33SRob Bradford- [v0.5.1](#v051)
2612f395e60SSamuel Ortiz- [v0.5.0](#v050)
26294f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
26394f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
26494f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
26594f2fc33SRob Bradford    - [Development Tools](#development-tools)
26694f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
267*339912a5SBo Chen    - [Contributors](#contributors-30)
268cec884e8SSamuel Ortiz- [v0.4.0](#v040)
26994f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
27094f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
27194f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
27294f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
27394f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
27494f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
27594f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
276*339912a5SBo Chen    - [Contributors](#contributors-31)
2778e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
27894f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
27994f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
28094f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
28194f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
28294f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
28394f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
28494f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
28594f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2867688e6e2SSamuel Ortiz- [v0.2.0](#v020)
28794f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
28894f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
28994f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
29094f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
29194f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
29294f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2937688e6e2SSamuel Ortiz- [v0.1.0](#v010)
29494f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
29594f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
29694f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
29794f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
29894f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
29994f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
30094f2fc33SRob Bradford    - [Unit testing](#unit-testing)
30194f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
30294f2fc33SRob Bradford
303*339912a5SBo Chen# v35.0
304*339912a5SBo Chen
305*339912a5SBo ChenThis release has been tracked in our [roadmap
306*339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
307*339912a5SBo Chenv35.0. The following user visible changes have been made:
308*339912a5SBo Chen
309*339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
310*339912a5SBo Chen
311*339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
312*339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
313*339912a5SBo Chennow support both situations.
314*339912a5SBo Chen
315*339912a5SBo Chen### User Specified Serial Number for `virtio-block`
316*339912a5SBo Chen
317*339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
318*339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
319*339912a5SBo Chen
320*339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
321*339912a5SBo Chen
322*339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
323*339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
324*339912a5SBo Chen
325*339912a5SBo Chen### Notable Bug Fixes
326*339912a5SBo Chen
327*339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
328*339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
329*339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
330*339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
331*339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
332*339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
333*339912a5SBo Chen  (#5712, #5750, #5762, #5763)
334*339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
335*339912a5SBo Chen
336*339912a5SBo Chen### Contributors
337*339912a5SBo Chen
338*339912a5SBo ChenMany thanks to everyone who has contributed to our release:
339*339912a5SBo Chen
340*339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
341*339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
342*339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
343*339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
344*339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
345*339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
346*339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
347*339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
348*339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
349*339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
350*339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
351*339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
352*339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
353*339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
354*339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
355*339912a5SBo Chen
356487a43cdSRob Bradford# v34.0
357487a43cdSRob Bradford
358487a43cdSRob BradfordThis release has been tracked in our [roadmap
359487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
360487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
361487a43cdSRob Bradford
362487a43cdSRob Bradford### Paravirtualised Panic Device Support
363487a43cdSRob Bradford
364487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
365487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
366487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
367487a43cdSRob Bradford
368487a43cdSRob Bradford### Improvements to VM Core Dump
369487a43cdSRob Bradford
370487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
371487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
372487a43cdSRob Bradford
373487a43cdSRob Bradford### QCOW2 Support for Backing Files
374487a43cdSRob Bradford
375487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
376487a43cdSRob Bradfordbacking files. (#5573)
377487a43cdSRob Bradford
378487a43cdSRob Bradford### Minimum Host Kernel Bump
379487a43cdSRob Bradford
380487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
381487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
382487a43cdSRob Bradford
383487a43cdSRob Bradford### Notable Bug Fixes
384487a43cdSRob Bradford
385487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
386487a43cdSRob Bradford  carries out this job with KVM) (#5561).
387487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
388487a43cdSRob Bradford  than MSI-X (#5658).
389487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
390487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
391487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
392487a43cdSRob Bradford  when all vCPUs are paused (#5611).
393487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
394487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
395487a43cdSRob Bradford
396487a43cdSRob Bradford### Contributors
397487a43cdSRob Bradford
398487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
399487a43cdSRob Bradford
400487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
401487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
402487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
403487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
404487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
405487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
406487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
407487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
408487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
409487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
410487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
411487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
412487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
413487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
414487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
415487a43cdSRob Bradford
4166e0e6323SBo Chen# v33.0
4176e0e6323SBo Chen
4186e0e6323SBo ChenThis release has been tracked in our [roadmap
4196e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
4206e0e6323SBo Chenv33.0. The following user visible changes have been made:
4216e0e6323SBo Chen
4226e0e6323SBo Chen### D-Bus based API
4236e0e6323SBo Chen
4246e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
4256e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
4266e0e6323SBo Chenfound in the [API documentation](docs/api.md).
4276e0e6323SBo Chen
4286e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
4296e0e6323SBo Chen
4306e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
4316e0e6323SBo Chenguest on AArch64.
4326e0e6323SBo Chen
4336e0e6323SBo Chen### Notable Bug Fixes
4346e0e6323SBo Chen
4356e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
4366e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
4376e0e6323SBo Chen* Fix TDX initialization (#5454)
4386e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
4396e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
4406e0e6323SBo Chen  (#5506, #5524)
4416e0e6323SBo Chen* Populate APIC ID properly (#5512)
4426e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
4436e0e6323SBo Chen
4446e0e6323SBo Chen### Contributors
4456e0e6323SBo Chen
4466e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
4476e0e6323SBo Chen
4486e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
4496e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
4506e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
4516e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
4526e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
4536e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
4546e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
4556e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
4566e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
4576e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
4586e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
4596e0e6323SBo Chen
46042ca292dSRob Bradford# v32.0
46142ca292dSRob Bradford
46242ca292dSRob BradfordThis release has been tracked in our [roadmap
46342ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
46442ca292dSRob Bradfordv32.0. The following user visible changes have been made:
46542ca292dSRob Bradford
46642ca292dSRob Bradford### Increased PCI Segment Limit
46742ca292dSRob Bradford
46842ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
46942ca292dSRob Bradford
47042ca292dSRob Bradford### API Changes
47142ca292dSRob Bradford
47242ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
47342ca292dSRob Bradford  (#5348)
47442ca292dSRob Bradford
47542ca292dSRob Bradford### Notable Bug Fixes
47642ca292dSRob Bradford
47742ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
47842ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
47942ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
48042ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
48142ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
48242ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
48342ca292dSRob Bradford* Fixes for TTY reset (#5414)
48442ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
48542ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
48642ca292dSRob Bradford
48742ca292dSRob Bradford### Contributors
48842ca292dSRob Bradford
48942ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
49042ca292dSRob Bradford
49142ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
49242ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
49342ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
49442ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
49542ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
49642ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
49742ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
49842ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
49942ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
50042ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
50142ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
50242ca292dSRob Bradford
50342ca292dSRob Bradford# v31.1
50442ca292dSRob Bradford
50542ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
50642ca292dSRob Bradford
50742ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
50842ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
50942ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
51042ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
51142ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
51242ca292dSRob Bradford
513f3522e85SMichael Zhao# v31.0
514f3522e85SMichael Zhao
515f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
516f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
517f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
518f3522e85SMichael Zhao
519f3522e85SMichael Zhao### Update to Latest `acpi_tables`
520f3522e85SMichael Zhao
521f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
522f3522e85SMichael ZhaoThere has been significant API changes in the crate.
523f3522e85SMichael Zhao
524f3522e85SMichael Zhao### Update Reference Kernel to 6.2
525f3522e85SMichael Zhao
526f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
527f3522e85SMichael Zhao
528f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
529f3522e85SMichael Zhao
530f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
531f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
532f3522e85SMichael Zhao
533f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
534f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
535f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
536f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
537f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
538f3522e85SMichael Zhao
539f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
540f3522e85SMichael Zhao
541f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
542f3522e85SMichael Zhao
543f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
544f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
545f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
546f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
547f3522e85SMichael Zhao
548f3522e85SMichael Zhao### Documentation Improvements
549f3522e85SMichael Zhao
550f3522e85SMichael Zhao* Various improvements in API document
551f3522e85SMichael Zhao* Improvements in Doc comments
552f3522e85SMichael Zhao* Updated Slack channel information in README
553f3522e85SMichael Zhao
554f3522e85SMichael Zhao### Notable Bug Fixes
555f3522e85SMichael Zhao
556f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
557f3522e85SMichael Zhao  client.
558f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
559f3522e85SMichael Zhao  endpoint.
560f3522e85SMichael Zhao
561f3522e85SMichael Zhao### Contributors
562f3522e85SMichael Zhao
563f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
564f3522e85SMichael Zhao
565f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
566f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
567f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
568f3522e85SMichael Zhao* Dom <peng6662001@163.com>
569f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
570f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
571f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
572f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
573f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
574f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
575f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
576f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
577f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
578f3522e85SMichael Zhao
579ece0e6faSBo Chen# v30.0
580ece0e6faSBo Chen
581ece0e6faSBo ChenThis release has been tracked in our [roadmap
582ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
583ece0e6faSBo Chenv30.0. The following user visible changes have been made:
584ece0e6faSBo Chen
585ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
586ece0e6faSBo Chen
587ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
588ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
589ece0e6faSBo Chenwere several syntax changes:
590ece0e6faSBo Chen
591ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
592ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
593ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
594ece0e6faSBo Chen
595ece0e6faSBo Chen### Basic vfio-user Server Support
596ece0e6faSBo Chen
597ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
598ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
599ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
600ece0e6faSBo Chen`rust-vmm` organization.
601ece0e6faSBo Chen
602ece0e6faSBo Chen### Heap Profiling Support
603ece0e6faSBo Chen
604ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
605ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
606ece0e6faSBo Chen
607ece0e6faSBo Chen### Documentation Improvements
608ece0e6faSBo Chen
609ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
610ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
611ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
612ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
613ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
614ece0e6faSBo Chenexisting 'profiling' documentation.
615ece0e6faSBo Chen
616ece0e6faSBo Chen### Notable Bug Fixes
617ece0e6faSBo Chen
618ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
619ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
620ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
621ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
622ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
623ece0e6faSBo Chen
624ece0e6faSBo Chen### Contributors
625ece0e6faSBo Chen
626ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
627ece0e6faSBo Chen
628ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
629ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
630ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
631ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
632ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
633ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
634ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
635ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
636ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
637ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
638ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
639ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
640ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
641ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
642ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
643ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
644ece0e6faSBo Chen
645ece0e6faSBo Chen# v28.2
646ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
647ece0e6faSBo Chen
648ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
649ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
650ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
651ece0e6faSBo Chen
65222cf8c97SRob Bradford# v29.0
65322cf8c97SRob Bradford
65422cf8c97SRob BradfordThis release has been tracked in our [roadmap
65522cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
65622cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
65722cf8c97SRob Bradford
65822cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
65922cf8c97SRob Bradford
66022cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
66122cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
66222cf8c97SRob Bradford
66322cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
66422cf8c97SRob Bradford
66522cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
66622cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
66722cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
66822cf8c97SRob Bradfordsupported but has worked for some versions.)
66922cf8c97SRob Bradford
67022cf8c97SRob Bradford### Heap Allocation Improvements
67122cf8c97SRob Bradford
67222cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
67322cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
67422cf8c97SRob Bradford
67522cf8c97SRob Bradford### `ch-remote` Improvements
67622cf8c97SRob Bradford
67722cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
67822cf8c97SRob Bradford`ch-remote`.
67922cf8c97SRob Bradford
68022cf8c97SRob Bradford### `AArch64` Documentation Integration
68122cf8c97SRob Bradford
68222cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
68322cf8c97SRob BradfordREADME.
68422cf8c97SRob Bradford
68522cf8c97SRob Bradford### `virtio-block` Counters Enhancement
68622cf8c97SRob Bradford
68722cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
68822cf8c97SRob Bradfordlatency counters.
68922cf8c97SRob Bradford
69022cf8c97SRob Bradford### TCP Offload Control
69122cf8c97SRob Bradford
69222cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
69322cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
69422cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
69522cf8c97SRob Bradford
69622cf8c97SRob Bradford### Notable Bug Fixes
69722cf8c97SRob Bradford
69822cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
69922cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
70022cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
70122cf8c97SRob Bradford  (#4924, #4949)
70222cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
70322cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
70422cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
70522cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
70622cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
70722cf8c97SRob Bradford
70822cf8c97SRob Bradford### Removals
70922cf8c97SRob Bradford
71022cf8c97SRob BradfordNo functionality has been removed in this release.
71122cf8c97SRob Bradford
71222cf8c97SRob Bradford### Deprecations
71322cf8c97SRob Bradford
71422cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
71522cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
71622cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
71722cf8c97SRob Bradford  (#5085)
71822cf8c97SRob Bradford
71922cf8c97SRob Bradford### Contributors
72022cf8c97SRob Bradford
72122cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
72222cf8c97SRob Bradford
72322cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
72422cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
72522cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
72622cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
72722cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
72822cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
72922cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
73022cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
73122cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
73222cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
73322cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
73422cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
73522cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
73622cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
73722cf8c97SRob Bradford
73822cf8c97SRob Bradford
73922cf8c97SRob Bradford# v28.1
74022cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
74122cf8c97SRob Bradford
74222cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
74322cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
74422cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
74522cf8c97SRob Bradford  (#4924, #4949)
74622cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
74722cf8c97SRob Bradford* Improve README and documentation
74822cf8c97SRob Bradford
74966460765SRob Bradford# v28.0
75066460765SRob Bradford
75166460765SRob BradfordThis release has been tracked in our new [roadmap
75266460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
75366460765SRob Bradfordv28.0.
75466460765SRob Bradford
75566460765SRob Bradford### Community Engagement (Reminder)
75666460765SRob Bradford
75766460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
75866460765SRob Bradforddiscussions.  Please consider
75966460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
76066460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
76166460765SRob BradfordHypervisor development.
76266460765SRob Bradford
76366460765SRob Bradford### Long Term Support (LTS) Release
76466460765SRob Bradford
76566460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
76666460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
76766460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
76866460765SRob Bradfordreleases of the LTS.
76966460765SRob Bradford
77066460765SRob Bradford### Virtualised TPM Support
77166460765SRob Bradford
77266460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
77366460765SRob Bradforddocumentation](docs/tpm.md).
77466460765SRob Bradford
77566460765SRob Bradford### Transparent Huge Page Support
77666460765SRob Bradford
77766460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
77866460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
77966460765SRob Bradfordthen this will be used resulting in improved boot performance.
78066460765SRob Bradford
78166460765SRob Bradford### README Quick Start Improved
78266460765SRob Bradford
78366460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
78466460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
78566460765SRob Bradford
78666460765SRob Bradford### Notable Bug Fixes
78766460765SRob Bradford
78866460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
78966460765SRob Bradford  memory consumption (#4835)
79066460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
79166460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
79266460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
79366460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
79466460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
79566460765SRob Bradford  newer Linux kernels (#4744)
79666460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
79766460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
79866460765SRob Bradford
79966460765SRob Bradford### Removals
80066460765SRob Bradford
80166460765SRob BradfordThe following functionality has been removed:
80266460765SRob Bradford
80366460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
80466460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
80566460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
80666460765SRob Bradford
80766460765SRob Bradford### Contributors
80866460765SRob Bradford
80966460765SRob BradfordMany thanks to everyone who has contributed to our release:
81066460765SRob Bradford
81166460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
81266460765SRob Bradford* Bo Chen <chen.bo@intel.com>
81366460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
81466460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
81566460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
81666460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
81766460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
81866460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
81966460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
82066460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
82166460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
82266460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
82366460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
82466460765SRob Bradford
8252ba6a9bfSRob Bradford# v27.0
8262ba6a9bfSRob Bradford
8272ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
8282ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
8292ba6a9bfSRob Bradfordv27.0.
8302ba6a9bfSRob Bradford
8312ba6a9bfSRob Bradford### Community Engagement
8322ba6a9bfSRob Bradford
8332ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
8342ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
8352ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
8362ba6a9bfSRob Bradford
8372ba6a9bfSRob Bradford### Prebuilt Packages
8382ba6a9bfSRob Bradford
8392ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
8402ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
8412ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
8422ba6a9bfSRob Bradfordfirmware options available.
8432ba6a9bfSRob Bradford
8442ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
8452ba6a9bfSRob Bradford
8462ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
8472ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
8482ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
8492ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
8502ba6a9bfSRob Bradford(#4658, #4676.)
8512ba6a9bfSRob Bradford
8522ba6a9bfSRob Bradford### Boot Tracing
8532ba6a9bfSRob Bradford
8542ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
8552ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
8562ba6a9bfSRob Bradford
8572ba6a9bfSRob Bradford### Simplified Build Feature Flags
8582ba6a9bfSRob Bradford
8592ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
8602ba6a9bfSRob Bradford
8612ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
8622ba6a9bfSRob Bradford  (with `kvm` enabled by default),
8632ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
8642ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
8652ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
8662ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
8672ba6a9bfSRob Bradford  feature) and dumping guest memory.
8682ba6a9bfSRob Bradford
8692ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
8702ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
8712ba6a9bfSRob Bradford
8722ba6a9bfSRob Bradford### Asynchronous Kernel Loading
8732ba6a9bfSRob Bradford
8742ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
8752ba6a9bfSRob Bradfordx86-64. (#4538)
8762ba6a9bfSRob Bradford
8772ba6a9bfSRob Bradford### GDB Support for AArch64
8782ba6a9bfSRob Bradford
8792ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
8802ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
8812ba6a9bfSRob Bradford
8822ba6a9bfSRob Bradford### Notable Bug Fixes
8832ba6a9bfSRob Bradford
8842ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
8852ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
8862ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
8872ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
8882ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
8892ba6a9bfSRob Bradford
8902ba6a9bfSRob Bradford### Deprecations
8912ba6a9bfSRob Bradford
8922ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
8932ba6a9bfSRob Bradfordplan to use alternatives.
8942ba6a9bfSRob Bradford
8952ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
8962ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
8972ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
8982ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
8992ba6a9bfSRob Bradford
9002ba6a9bfSRob Bradford### Contributors
9012ba6a9bfSRob Bradford
9022ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
9032ba6a9bfSRob Bradford
9042ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
9052ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
9062ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
9072ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9082ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
9092ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
9102ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
9112ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
9122ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
9132ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
9142ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
9152ba6a9bfSRob Bradford
916ed9e54d6SRob Bradford# v26.0
917ed9e54d6SRob Bradford
918ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
919ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
920ed9e54d6SRob Bradford
921ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
922ed9e54d6SRob Bradford
923ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
924ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
925ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
926ed9e54d6SRob Bradford
927ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
928ed9e54d6SRob Bradford
929ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
930ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
931ed9e54d6SRob Bradford
932ed9e54d6SRob Bradford### Notable Bug Fixes
933ed9e54d6SRob Bradford
934ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
9357bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
936ed9e54d6SRob Bradford  out (#4456)
937ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
938ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
939ed9e54d6SRob Bradford  (#4269, #4293)
940ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
941ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
942ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
943ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
944ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
945ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
946ed9e54d6SRob Bradford
947ed9e54d6SRob Bradford### Deprecations
948ed9e54d6SRob Bradford
949ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
950ed9e54d6SRob Bradfordplan to use alternatives.
951ed9e54d6SRob Bradford
952ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
953ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
954ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
955ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
956ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
957ed9e54d6SRob Bradford
958ed9e54d6SRob Bradford### Removals
959ed9e54d6SRob Bradford
960ed9e54d6SRob BradfordThe following functionality has been removed:
961ed9e54d6SRob Bradford
962ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
963ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
964ed9e54d6SRob Bradford  spawning feature (#4402.)
965ed9e54d6SRob Bradford
966ed9e54d6SRob Bradford### Contributors
967ed9e54d6SRob Bradford
968ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
969ed9e54d6SRob Bradford
970ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
971ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
972ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
973ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
974ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
975ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
976ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
977ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
978ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
979ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
980ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
981ed9e54d6SRob Bradford
982b132cd21SRob Bradford# v25.0
983b132cd21SRob Bradford
984b132cd21SRob BradfordThis release has been tracked through the [v25.0
985b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
986b132cd21SRob Bradford
987b132cd21SRob Bradford### `ch-remote` Improvements
988b132cd21SRob Bradford
989b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
990b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
991b132cd21SRob Bradford
992b132cd21SRob Bradford### VM "Coredump" Support
993b132cd21SRob Bradford
994b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
995b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
996b132cd21SRob Bradford
997b132cd21SRob Bradford### Notable Bug Fixes
998b132cd21SRob Bradford
999b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1000b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1001b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1002b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1003b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1004b132cd21SRob Bradford  5.16 (#4156)
1005b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1006b132cd21SRob Bradford  Linux guest
1007b132cd21SRob Bradford
1008b132cd21SRob Bradford### Removals
1009b132cd21SRob Bradford
1010b132cd21SRob BradfordThe following functionality has been removed:
1011b132cd21SRob Bradford
1012b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1013b132cd21SRob Bradford  (#3968)
1014b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1015b132cd21SRob Bradford
1016b132cd21SRob Bradford### Contributors
1017b132cd21SRob Bradford
1018b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1019b132cd21SRob Bradford
1020b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1021b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1022b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1023b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1024b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1025b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1026b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1027b132cd21SRob Bradford
10280150de55SSebastien Boeuf# v24.0
10290150de55SSebastien Boeuf
10300150de55SSebastien BoeufThis release has been tracked through the [v24.0
10310150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
10320150de55SSebastien Boeuf
10330150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
10340150de55SSebastien Boeuf
10350150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
10360150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
10370150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
10380150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
10390150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
10400150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
10410150de55SSebastien Boeuf
10420150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
10430150de55SSebastien Boeuf
10440150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
10450150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
10460150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
10470150de55SSebastien Boeuf
10480150de55SSebastien Boeuf### Sparse Mmap support
10490150de55SSebastien Boeuf
10500150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
10510150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
10520150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
10530150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
10540150de55SSebastien Boeufimpacts the performance related to this device.
10550150de55SSebastien Boeuf
10560150de55SSebastien Boeuf### Expose Platform Serial Number
10570150de55SSebastien Boeuf
10580150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
10590150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
10600150de55SSebastien Boeufguest through the SMBIOS.
10610150de55SSebastien Boeuf
10620150de55SSebastien Boeuf### Notable Bug Fixes
10630150de55SSebastien Boeuf
10640150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
10650150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
10660150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
10670150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
10680150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
10690150de55SSebastien Boeuf
10700150de55SSebastien Boeuf### Notable Improvements
10710150de55SSebastien Boeuf
10720150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
10730150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
10740150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
10750150de55SSebastien Boeuf
10760150de55SSebastien Boeuf### Deprecations
10770150de55SSebastien Boeuf
10780150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
10790150de55SSebastien Boeufplan to use alternatives
10800150de55SSebastien Boeuf
10810150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
10820150de55SSebastien Boeuf  (#3968)
10830150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
10840150de55SSebastien Boeuf
10850150de55SSebastien Boeuf### New on the Website
10860150de55SSebastien Boeuf
10870150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
10880150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
10890150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
10900150de55SSebastien Boeuf
10910150de55SSebastien Boeuf### Contributors
10920150de55SSebastien Boeuf
10930150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
10940150de55SSebastien Boeuf
10950150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
10960150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
10970150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
10980150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
10990150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
11000150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
11010150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
11020150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
11030150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
11040150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
11050150de55SSebastien Boeuf
11060150de55SSebastien Boeuf# v23.1
11070150de55SSebastien Boeuf
11080150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
11090150de55SSebastien Boeuf
11100150de55SSebastien Boeuf* Add some missing seccomp rules
11110150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
11120150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
11130150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
11140150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
11150150de55SSebastien Boeuf
11160c9c56f5SRob Bradford# v23.0
11170c9c56f5SRob Bradford
11180c9c56f5SRob BradfordThis release has been tracked through the [v23.0
11190c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
11200c9c56f5SRob Bradford
11210c9c56f5SRob Bradford### vDPA Support
11220c9c56f5SRob Bradford
11230c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
11240c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
11250c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
11260c9c56f5SRob Bradford
11270c9c56f5SRob Bradford### Updated OS Support list
11280c9c56f5SRob Bradford
11290c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
11300c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
11310c9c56f5SRob Bradford
11320c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
11330c9c56f5SRob Bradford
11340c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
11350c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
11360c9c56f5SRob Bradfordallocated RAM. (#3938)
11370c9c56f5SRob Bradford
11380c9c56f5SRob Bradford### `AMX` Support
11390c9c56f5SRob Bradford
11400c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
11410c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
11420c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
11430c9c56f5SRob Bradford
11440c9c56f5SRob Bradford### Notable Bug Fixes
11450c9c56f5SRob Bradford
11460c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
11470c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
11480c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
11490c9c56f5SRob Bradford  `virtio-mem` (#3883)
11500c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
11510c9c56f5SRob Bradford  vIOMMU (#3870)
11520c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
11530c9c56f5SRob Bradford  (#3848)
11540c9c56f5SRob Bradford
11550c9c56f5SRob Bradford### Deprecations
11560c9c56f5SRob Bradford
11570c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
11580c9c56f5SRob Bradfordplan to use alternatives
11590c9c56f5SRob Bradford
11600c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
11610c9c56f5SRob Bradford  (#3968)
11620c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
11630c9c56f5SRob Bradford
11640c9c56f5SRob Bradford### Contributors
11650c9c56f5SRob Bradford
11660c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
11670c9c56f5SRob Bradford
11680c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
11690c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
11700c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
11710c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
11720c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
11730c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
11740c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
11750c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
11760c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
11770c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
11780c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
11790c9c56f5SRob Bradford
11800c9c56f5SRob Bradford# v22.1
11810c9c56f5SRob Bradford
11820c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
11830c9c56f5SRob Bradford
11840c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
11850c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
11860c9c56f5SRob Bradford
11876aa10938SRob Bradford# v22.0
11886aa10938SRob Bradford
11890c9c56f5SRob BradfordThis release has been tracked through the [v22.0
11900c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
11916aa10938SRob Bradford
11926aa10938SRob Bradford### GDB Debug Stub Support
11936aa10938SRob Bradford
11946aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
11956aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
11966aa10938SRob Bradfordthe [gdb
11976aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
11986aa10938SRob Bradford
11996aa10938SRob Bradford### `virtio-iommu` Backed Segments
12006aa10938SRob Bradford
12016aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
12026aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
12036aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
12046aa10938SRob Bradford
12056aa10938SRob Bradford### Before Boot Configuration Changes
12066aa10938SRob Bradford
12076aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
12086aa10938SRob Bradfordresize) before the VM is booted.
12096aa10938SRob Bradford
12106aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
12116aa10938SRob Bradford
12126aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
12136aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
12146aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
12156aa10938SRob Bradfordmemory density.
12166aa10938SRob Bradford
12176aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
12186aa10938SRob Bradford
12196aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
12206aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
12216aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
12226aa10938SRob Bradfordhas been updated for this usage.
12236aa10938SRob Bradford
12246aa10938SRob Bradford### PMU Support for AArch64
12256aa10938SRob Bradford
12266aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
12276aa10938SRob Bradfordexposed automatically if available from the host.
12286aa10938SRob Bradford
12290c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
12306aa10938SRob Bradford
12316aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
12326aa10938SRob BradfordInternational" license which is aligned with the project charter under the
12336aa10938SRob BradfordLinux Foundation.
12346aa10938SRob Bradford
12356aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
12366aa10938SRob Bradford
12376aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
12386aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
12396aa10938SRob Bradfordversion.
12406aa10938SRob Bradford
12416aa10938SRob Bradford### Notable Bug Fixes
12426aa10938SRob Bradford
12436aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
12446aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
12456aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
12466aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
12476aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
12486aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
12496aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
12506aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
12516aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
12526aa10938SRob Bradford
12536aa10938SRob Bradford### Contributors
12546aa10938SRob Bradford
12556aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
12566aa10938SRob Bradford
12576aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
12586aa10938SRob Bradford* Barret Rhoden <brho@google.com>
12596aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
12606aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
12616aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
12626aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
12636aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
12646aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
12656aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
12666aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
12676aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12686aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
12696aa10938SRob Bradford
127095ca7997SRob Bradford# v21.0
127195ca7997SRob Bradford
127295ca7997SRob BradfordThis release has been tracked through the [v21.0
127395ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
127495ca7997SRob Bradford
127595ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
127695ca7997SRob Bradford
12776aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
12786aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
12796aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
12806aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
12816aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
128295ca7997SRob Bradford
128395ca7997SRob Bradford### Recommended Kernel is Now 5.15
128495ca7997SRob Bradford
12856aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
12866aa10938SRob Bradfordis now 5.15. (#3530)
128795ca7997SRob Bradford
128895ca7997SRob Bradford### Notable Bug fixes
128995ca7997SRob Bradford
12907bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
129195ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
129295ca7997SRob Bradford* Support live migration within firmware (#3586)
12937bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
129495ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
129595ca7997SRob Bradford
129695ca7997SRob Bradford### Contributors
129795ca7997SRob Bradford
129895ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
129995ca7997SRob Bradford
130095ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
130195ca7997SRob Bradford* Barret Rhoden <brho@google.com>
130295ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
130395ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
130495ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
130595ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
130695ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
130795ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
130895ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
130995ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
131095ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
131195ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
131295ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
131395ca7997SRob Bradford
131495ca7997SRob Bradford# v20.2
131595ca7997SRob Bradford
131695ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
131795ca7997SRob Bradford
131895ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
131995ca7997SRob Bradford  when this fails due to older kernel (#3456)
132095ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
132195ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
132295ca7997SRob Bradford  (#3496)
132395ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
132495ca7997SRob Bradford
132595ca7997SRob Bradford# v20.1
132695ca7997SRob Bradford
132795ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
132895ca7997SRob Bradford
132995ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
133095ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
133195ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
133295ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
133395ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
133495ca7997SRob Bradford
13357fc0776aSSebastien Boeuf# v20.0
13367fc0776aSSebastien Boeuf
13377fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
13387fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
13397fc0776aSSebastien Boeuf
13407fc0776aSSebastien Boeuf### Multiple PCI segments support
13417fc0776aSSebastien Boeuf
13427fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
13437fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
13447fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
13457fc0776aSSebastien Boeuf
13467fc0776aSSebastien Boeuf### CPU pinning
13477fc0776aSSebastien Boeuf
13487fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
13497fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
13507fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
13517fc0776aSSebastien Boeuf
13527fc0776aSSebastien Boeuf### Improved VFIO support
13537fc0776aSSebastien Boeuf
13547fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
13557fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
13567fc0776aSSebastien Boeufthe passthrough device.
13577fc0776aSSebastien Boeuf
13587fc0776aSSebastien Boeuf### Safer code
13597fc0776aSSebastien Boeuf
13607fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
13617fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
13627fc0776aSSebastien Boeufunsafe sections are safe to use.
13637fc0776aSSebastien Boeuf
13647fc0776aSSebastien Boeuf### Extended documentation
13657fc0776aSSebastien Boeuf
13667fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
13677fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
13687fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
13697fc0776aSSebastien Boeuf
13707fc0776aSSebastien Boeuf### Notable bug fixes
13717fc0776aSSebastien Boeuf
13727fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
13737fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
13747fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
13757fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
13767fc0776aSSebastien Boeuf
13777fc0776aSSebastien Boeuf### Contributors
13787fc0776aSSebastien Boeuf
13797fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
13807fc0776aSSebastien Boeuf
13817fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
13827fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
13837fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
13847fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
13857fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
13867fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
13877fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
13887fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
13897fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
13907fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
13917fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
13927fc0776aSSebastien Boeuf
1393d00eb4aaSRob Bradford# v19.0
1394d00eb4aaSRob Bradford
1395d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1396d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1397d00eb4aaSRob Bradford
1398d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1399d00eb4aaSRob Bradford
1400d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1401d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1402d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1403d00eb4aaSRob Bradford
1404d00eb4aaSRob Bradford### PCI boot time optimisations
1405d00eb4aaSRob Bradford
1406d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1407d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1408d00eb4aaSRob Bradford
1409d00eb4aaSRob Bradford### Improved TDX support
1410d00eb4aaSRob Bradford
1411d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1412d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1413d00eb4aaSRob Bradford
1414d00eb4aaSRob Bradford### Live migration enhancements
1415d00eb4aaSRob Bradford
1416d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1417d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1418d00eb4aaSRob Bradfordmigration.
1419d00eb4aaSRob Bradford
1420d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1421d00eb4aaSRob Bradford
1422d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1423d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1424d00eb4aaSRob Bradford
1425d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1426d00eb4aaSRob Bradford
1427d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1428d00eb4aaSRob Bradford
1429d00eb4aaSRob Bradford### Notable bug fixes
1430d00eb4aaSRob Bradford
1431d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1432d00eb4aaSRob Bradford  snapshot/restore (#3165)
1433d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1434d00eb4aaSRob Bradford  (#3078 #3113)
1435d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1436d00eb4aaSRob Bradford  the underlying crate (#3157)
1437d00eb4aaSRob Bradford
1438d00eb4aaSRob Bradford### Contributors
1439d00eb4aaSRob Bradford
1440d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1441d00eb4aaSRob Bradford
1442d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1443d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1444d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1445d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1446d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1447d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1448d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1449d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1450d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1451d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1452d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1453d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1454d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1455d00eb4aaSRob Bradford
14562c4f8d22SRob Bradford# v18.0
14572c4f8d22SRob Bradford
14582c4f8d22SRob BradfordThis release has been tracked through the [v18.0
14592c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
14602c4f8d22SRob Bradford
14612c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
14622c4f8d22SRob Bradford
14632c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
14642c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
14652c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
14662c4f8d22SRob Bradford
14672c4f8d22SRob Bradford### Migration support for `vhost-user` devices
14682c4f8d22SRob Bradford
14692c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
14702c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
14712c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
14722c4f8d22SRob Bradford
14732c4f8d22SRob Bradford### VHDX disk image support
14742c4f8d22SRob Bradford
14752c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
14762c4f8d22SRob Bradford
14772c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
14782c4f8d22SRob Bradford
14792c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
14802c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
14812c4f8d22SRob Bradford
14822c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
14832c4f8d22SRob Bradford
14842c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
14852c4f8d22SRob Bradford
14862c4f8d22SRob Bradford### Live migration on MSHV hypervisor
14872c4f8d22SRob Bradford
14882c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
14892c4f8d22SRob Bradfordefficient tracking of dirty pages.
14902c4f8d22SRob Bradford
14912c4f8d22SRob Bradford### AArch64 CPU topology support
14922c4f8d22SRob Bradford
14932c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
14942c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
14952c4f8d22SRob Bradfordtree.
14962c4f8d22SRob Bradford
14972c4f8d22SRob Bradford### Power button support on AArch64
14982c4f8d22SRob Bradford
14992c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
15002c4f8d22SRob Bradfordis now supported when running on AArch64.
15012c4f8d22SRob Bradford
15022c4f8d22SRob Bradford### Notable bug fixes
15032c4f8d22SRob Bradford
15042c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
15052c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
15062c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
15072c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
15082c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
15092c4f8d22SRob Bradford
15102c4f8d22SRob Bradford### Contributors
15112c4f8d22SRob Bradford
15122c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
15132c4f8d22SRob Bradford
15142c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
15152c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
15162c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
15172c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
15182c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
15192c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
15202c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
15212c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
15222c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
15232c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
15242c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
15252c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
15262c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
15272c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1528e6db5999SRob Bradford
1529e6db5999SRob Bradford# v17.0
1530e6db5999SRob Bradford
1531e6db5999SRob BradfordThis release has been tracked through the [v17.0
1532e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1533e6db5999SRob Bradford
1534e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1535e6db5999SRob Bradford
1536e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1537e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1538e6db5999SRob Bradford
1539e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1540e6db5999SRob Bradford
1541e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1542e6db5999SRob Bradfordhypervisor backend.
1543e6db5999SRob Bradford
1544e6db5999SRob Bradford### Hotplug of `macvtap` devices
1545e6db5999SRob Bradford
1546e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1547e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1548e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1549e6db5999SRob Bradford
1550e6db5999SRob Bradford### Improved SGX support
1551e6db5999SRob Bradford
1552e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1553e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1554e6db5999SRob Bradford
1555e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1556e6db5999SRob Bradford
1557e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1558e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1559e6db5999SRob Bradford
1560e6db5999SRob Bradford### Notable bug fixes
1561e6db5999SRob Bradford
1562e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1563e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1564e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1565e6db5999SRob Bradford(#2833).
1566e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1567e6db5999SRob Bradford
1568e6db5999SRob Bradford### Contributors
1569e6db5999SRob Bradford
1570e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1571e6db5999SRob Bradford
1572e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1573e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1574e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1575e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1576e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1577e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1578e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1579e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1580e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1581e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1582e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1583e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1584e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1585e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1586e6db5999SRob Bradford
15875ed8e01fSRob Bradford# v16.0
15885ed8e01fSRob Bradford
15895ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
15905ed8e01fSRob Bradford
15915ed8e01fSRob Bradford### Improved live migration support
15925ed8e01fSRob Bradford
15935ed8e01fSRob 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.
15945ed8e01fSRob Bradford
15955ed8e01fSRob Bradford### Improved `vhost-user` support
15965ed8e01fSRob Bradford
15975ed8e01fSRob 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.
15985ed8e01fSRob Bradford
15995ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
16005ed8e01fSRob Bradford
16015ed8e01fSRob 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.
16025ed8e01fSRob Bradford
16035ed8e01fSRob Bradford### Notable bug fixes
16045ed8e01fSRob Bradford
16055ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
16065ed8e01fSRob 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).
16075ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
16085ed8e01fSRob Bradford
16095ed8e01fSRob Bradford### Removed functionality
16105ed8e01fSRob Bradford
16115ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
16125ed8e01fSRob Bradford
16135ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
16145ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
16155ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
16165ed8e01fSRob Bradford
16175ed8e01fSRob Bradford### Contributors
16185ed8e01fSRob Bradford
16195ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
16205ed8e01fSRob Bradford
16215ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
16225ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
16235ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
16245ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
16255ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
16265ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
16275ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
16285ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
16295ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
16305ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
16315ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
16325ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16335ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
16345ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
16355ed8e01fSRob Bradford
163630a01277SRob Bradford# v15.0
163730a01277SRob Bradford
163830a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
163930a01277SRob Bradford
164030a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
164130a01277SRob Bradford
164230a01277SRob Bradford### Version numbering and stability guarantees
164330a01277SRob Bradford
164430a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
164530a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
164630a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
164730a01277SRob Bradford
164830a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
164930a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
165030a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
165130a01277SRob Bradford  will be documented in the release notes.
165230a01277SRob Bradford* Point releases will be made between individual releases where there are
165330a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
165430a01277SRob Bradford
165530a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
165630a01277SRob Bradford
165730a01277SRob Bradford* Snapshot/restore is not supported across different versions
165830a01277SRob Bradford* Live migration is not supported across different versions
165930a01277SRob Bradford* The following features are considered experimental and may change
166030a01277SRob Bradford  substantially between releases: TDX, SGX.
166130a01277SRob Bradford
166230a01277SRob Bradford### Network device rate limiting
166330a01277SRob Bradford
166430a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
166530a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
166630a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
166730a01277SRob Bradford
166830a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
166930a01277SRob Bradford
167030a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
167130a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
167230a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
167330a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
167430a01277SRob Bradford
167530a01277SRob Bradford### `--api-socket` supports file descriptor parameter
167630a01277SRob Bradford
167730a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
167830a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
167930a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
168030a01277SRob Bradford
168130a01277SRob Bradford### Bug fixes
168230a01277SRob Bradford
168330a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
168430a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
168530a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
168630a01277SRob Bradford  reprogram them (#1797,#1798)
168730a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
168830a01277SRob Bradford  exhaustion on the host) (#2517)
168930a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
169030a01277SRob Bradford  prevents snapshot & restore working (#2535)
169130a01277SRob Bradford
169230a01277SRob Bradford### Deprecations
169330a01277SRob Bradford
169430a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
169530a01277SRob Bradford
169630a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
169730a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
169830a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
169930a01277SRob Bradford
170030a01277SRob Bradford### Contributors
170130a01277SRob Bradford
170230a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
170330a01277SRob Bradford
170430a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
170530a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
170630a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
170730a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
170830a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
170930a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
171030a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
171130a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
171230a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
171330a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
171430a01277SRob Bradford* William Douglas <william.douglas@intel.com>
171530a01277SRob Bradford
171630a01277SRob Bradford# v0.14.1
171730a01277SRob Bradford
171830a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
171930a01277SRob Bradfordin this release:
172030a01277SRob Bradford
172130a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
172230a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
172330a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
172430a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
172530a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
172630a01277SRob Bradford
172740c63dcfSRob Bradford# v0.14.0
172840c63dcfSRob Bradford
172940c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
173040c63dcfSRob Bradford
173140c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
173240c63dcfSRob Bradford
173340c63dcfSRob Bradford### Structured event monitoring
173440c63dcfSRob Bradford
173540c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
173640c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
173740c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
173840c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
173940c63dcfSRob BradfordHypervisor API surface.
174040c63dcfSRob Bradford
174140c63dcfSRob Bradford### MSHV improvements
174240c63dcfSRob Bradford
174340c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
174440c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
174540c63dcfSRob Bradfordthe MSHV support.
174640c63dcfSRob Bradford
174740c63dcfSRob Bradford### Improved aarch64 platform
174840c63dcfSRob Bradford
174940c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
175040c63dcfSRob BradfordVM including an enhanced serial UART.
175140c63dcfSRob Bradford
175240c63dcfSRob Bradford### Updated hotplug documentation
175340c63dcfSRob Bradford
175440c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
175540c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
175640c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
175740c63dcfSRob Bradford
175840c63dcfSRob Bradford### PTY control for serial and `virtio-console`
175940c63dcfSRob Bradford
176040c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
176140c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
176240c63dcfSRob BradfordPTY subsystem.
176340c63dcfSRob Bradford
176440c63dcfSRob Bradford### Block device rate limiting
176540c63dcfSRob Bradford
176640c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
176740c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
176830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
176940c63dcfSRob Bradford
177040c63dcfSRob Bradford
177140c63dcfSRob Bradford### Deprecations
177240c63dcfSRob Bradford
177340c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
177440c63dcfSRob Bradford
177540c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
177640c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
177740c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
177840c63dcfSRob Bradford
177940c63dcfSRob Bradford
178040c63dcfSRob Bradford### Contributors
178140c63dcfSRob Bradford
178240c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
178340c63dcfSRob Bradfordsome new faces.
178440c63dcfSRob Bradford
178540c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
178640c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
178740c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
178840c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
178940c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
179040c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
179140c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
179240c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
179340c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
179440c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
179540c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
179640c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
179740c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
179840c63dcfSRob Bradford
1799f58b6f84SRob Bradford# v0.13.0
1800f58b6f84SRob Bradford
1801f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1802f58b6f84SRob Bradford
1803f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1804f58b6f84SRob Bradford
1805f58b6f84SRob Bradford### Wider VFIO device support
1806f58b6f84SRob Bradford
1807f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1808f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1809f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1810f58b6f84SRob Bradforddrivers.
1811f58b6f84SRob Bradford
181240c63dcfSRob Bradford### Improved huge page support
1813f58b6f84SRob Bradford
1814f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1815f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1816f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1817f58b6f84SRob Bradforddesired size in their pool.
1818f58b6f84SRob Bradford
1819f58b6f84SRob Bradford### MACvTAP support
1820f58b6f84SRob Bradford
1821f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1822f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1823f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1824f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1825f58b6f84SRob Bradford
1826f58b6f84SRob Bradford### VHD disk image support
1827f58b6f84SRob Bradford
1828f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1829f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1830f58b6f84SRob Bradford
1831f58b6f84SRob Bradford### Improved Virtio device threading
1832f58b6f84SRob Bradford
1833f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1834f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1835f58b6f84SRob Bradfordpredictable name derived from the device id.
1836f58b6f84SRob Bradford
1837f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1838f58b6f84SRob Bradford
1839f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1840f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1841f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1842f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1843f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1844f58b6f84SRob Bradford
1845f58b6f84SRob Bradford### Contributors
1846f58b6f84SRob Bradford
1847f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1848f58b6f84SRob Bradfordsome new faces.
1849f58b6f84SRob Bradford
1850f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1851f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1852f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1853f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1854f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1855f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1856f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1857f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1858f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1859f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1860f58b6f84SRob Bradford
1861d42b5084SRob Bradford# v0.12.0
1862d42b5084SRob Bradford
1863d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1864d42b5084SRob Bradford
1865d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1866d42b5084SRob Bradford
1867d42b5084SRob Bradford### ARM64 enhancements
1868d42b5084SRob Bradford
1869d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1870d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1871d42b5084SRob Bradford
1872d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1873d42b5084SRob Bradford
1874d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1875d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1876d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1877d42b5084SRob Bradfordremoved.
1878d42b5084SRob Bradford
1879d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1880d42b5084SRob Bradford
1881d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1882d42b5084SRob Bradfordinstead hosted in [it's own
1883d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1884d42b5084SRob Bradford
1885d42b5084SRob Bradford### Enhanced "info" API
1886d42b5084SRob Bradford
1887d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1888d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1889d42b5084SRob Bradford
1890d42b5084SRob Bradford### Contributors
1891d42b5084SRob Bradford
1892d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1893d42b5084SRob Bradford
1894d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1895d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1896d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1897d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1898d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1899d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1900d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1901d42b5084SRob Bradford
19027dcd3affSRob Bradford# v0.11.0
19037dcd3affSRob Bradford
19047dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
19057dcd3affSRob Bradford
19067dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
19077dcd3affSRob Bradford
19087dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
19097dcd3affSRob Bradford
19107dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
19117dcd3affSRob Bradfordbe used for a significantly higher performance block device.
19127dcd3affSRob Bradford
19137dcd3affSRob Bradford### Windows Guest Support
19147dcd3affSRob Bradford
19157dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
19167dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
19177dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
19187dcd3affSRob Bradforddocumentation](docs/windows.md).
19197dcd3affSRob Bradford
19207dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
19217dcd3affSRob Bradford
19227dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
19237dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
19247dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
19257dcd3affSRob Bradford
1926d00eb4aaSRob Bradford### `virtio-mmio` Removal
19277dcd3affSRob Bradford
19287dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
19297dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
19307dcd3affSRob Bradfordreduce the testing burden of the project.
19317dcd3affSRob Bradford
19327dcd3affSRob Bradford### Snapshot/Restore support for ARM64
19337dcd3affSRob Bradford
19347dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
19357dcd3affSRob Bradfordimplemented.
19367dcd3affSRob Bradford
19377dcd3affSRob Bradford### Improved Linux Boot Time
19387dcd3affSRob Bradford
19397dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
19407dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
19417dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
19427dcd3affSRob Bradford
19437dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
19447dcd3affSRob Bradford
19457dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
19467dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
19477dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
19487dcd3affSRob Bradfordresources.
19497dcd3affSRob Bradford
19507dcd3affSRob Bradford### Default Log Level Changed
19517dcd3affSRob Bradford
19527dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
19537dcd3affSRob Bradfordeasier to see potential issues. New [logging
19547dcd3affSRob Bradforddocumentation](docs/logging) was also added.
19557dcd3affSRob Bradford
19567dcd3affSRob Bradford### New `--balloon` Parameter Added
19577dcd3affSRob Bradford
19587dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
19597dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
19607dcd3affSRob Bradfordcontrols without overloading `--memory`.
19617dcd3affSRob Bradford
19627dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
19637dcd3affSRob Bradford
19647dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
19657dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
19667dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
19677dcd3affSRob Bradford
19687dcd3affSRob Bradford### Notable Bug Fixes
19697dcd3affSRob Bradford
19707dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
19717dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
19727dcd3affSRob Bradford* CPU identification string is now exposed to the guest
19737dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
19747dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
19757dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
19767dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
19777dcd3affSRob Bradford  can be used (#1803)
19787dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
19797dcd3affSRob Bradford  correctly
19807dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
19817dcd3affSRob Bradford  correctly
19827dcd3affSRob Bradford
19837dcd3affSRob Bradford### Contributors
19847dcd3affSRob Bradford
19857dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
19867dcd3affSRob Bradford
19877dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
19887dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
19897dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
19907dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
19917dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
19927dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
19937dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
19947dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
19957dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
19967dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
19977dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
19987dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
19997dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
20007dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
20017dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
20027dcd3affSRob Bradford
20037dcd3affSRob Bradford
2004198bd551SRob Bradford# v0.10.0
2005198bd551SRob Bradford
2006198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
2007198bd551SRob Bradford
2008198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2009198bd551SRob Bradford
2010198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2011198bd551SRob Bradford
2012198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2013198bd551SRob Bradford
2014198bd551SRob Bradford### Memory Zones
2015198bd551SRob Bradford
2016198bd551SRob BradfordSupport has been added for fine grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
2017198bd551SRob Bradford
2018198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2019198bd551SRob Bradford
2020198bd551SRob 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`.
2021198bd551SRob Bradford
2022198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2023198bd551SRob Bradford
2024198bd551SRob 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.
2025198bd551SRob Bradford
2026198bd551SRob Bradford### Notable Bug Fixes
2027198bd551SRob Bradford
2028198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2029198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2030198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2031198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2032198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2033198bd551SRob Bradford
2034198bd551SRob Bradford### Contributors
2035198bd551SRob Bradford
2036198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2037198bd551SRob Bradford
2038198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2039198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2040198bd551SRob Bradford* Anatol Belski <ab@php.net>
2041198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2042198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2043198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2044198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2045198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2046198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2047198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2048198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2049198bd551SRob Bradford
2050d714cf81SRob Bradford# v0.9.0
2051d714cf81SRob Bradford
2052d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
2053d714cf81SRob Bradford
2054d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2055d714cf81SRob Bradford
2056d714cf81SRob Bradford### `io_uring` Based Block Device Support
2057d714cf81SRob Bradford
2058d714cf81SRob 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.
2059d714cf81SRob Bradford
2060d714cf81SRob Bradford### Block and Network Device Statistics
2061d714cf81SRob Bradford
2062d714cf81SRob 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.
2063d714cf81SRob Bradford
2064d714cf81SRob Bradford### HTTP API Responses
2065d714cf81SRob Bradford
2066d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2067d714cf81SRob Bradford
2068d714cf81SRob Bradford### CPU Topology
2069d714cf81SRob Bradford
2070d714cf81SRob 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.
2071d714cf81SRob Bradford
2072d714cf81SRob Bradford### Release Build Optimization
2073d714cf81SRob Bradford
2074d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2075d714cf81SRob Bradford
2076d714cf81SRob Bradford### Hypervisor Abstraction
2077d714cf81SRob Bradford
2078d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2079d714cf81SRob Bradford
2080d714cf81SRob Bradford### Snapshot/Restore Improvements
2081d714cf81SRob Bradford
2082d714cf81SRob 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.
2083d714cf81SRob Bradford
2084d714cf81SRob Bradford### Virtio Memory Ballooning Support
2085d714cf81SRob Bradford
2086d714cf81SRob 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.
2087d714cf81SRob Bradford
2088d714cf81SRob Bradford### Enhancements to ARM64 Support
2089d714cf81SRob Bradford
2090d714cf81SRob 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.
2091d714cf81SRob Bradford
2092d714cf81SRob Bradford### Intel SGX Support
2093d714cf81SRob Bradford
2094d714cf81SRob 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).
2095d714cf81SRob Bradford
2096d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2097d714cf81SRob Bradford
2098d714cf81SRob 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.
2099d714cf81SRob Bradford
2100d714cf81SRob Bradford### Notable Bug Fixes
2101d714cf81SRob Bradford
2102d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2103d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2104d714cf81SRob 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).
2105d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2106d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2107d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2108d714cf81SRob Bradford
2109d714cf81SRob Bradford### Contributors
2110d714cf81SRob Bradford
2111d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2112d714cf81SRob Bradford
2113d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2114d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2115d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2116d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2117d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2118d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2119d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2120d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2121d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2122d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2123d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2124d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2125d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2126d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2127d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2128d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2129d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2130d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2131d714cf81SRob Bradford
2132d714cf81SRob Bradford
213352b83969SRob Bradford# v0.8.0
213452b83969SRob Bradford
213552b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
213652b83969SRob Bradford
213752b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
213852b83969SRob Bradford
213952b83969SRob Bradford### Experimental Snapshot and Restore Support
214052b83969SRob Bradford
214152b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
214252b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
214352b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
214452b83969SRob Bradfordoriginal VM at the point it was paused.
214552b83969SRob Bradford
214652b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
214752b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
214852b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
214952b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
215052b83969SRob Bradford(#1176).
215152b83969SRob Bradford
215252b83969SRob Bradford### Experimental ARM64 Support
215352b83969SRob Bradford
215452b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
215552b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
215652b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
215752b83969SRob Bradford
215852b83969SRob Bradford### Support for Using 5-level Paging in Guests
215952b83969SRob Bradford
216052b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
216152b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
216252b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
216352b83969SRob Bradfordwork due to current limitations in the PVH boot process.
216452b83969SRob Bradford
216552b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
216652b83969SRob Bradford
216752b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
216852b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
216952b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
217052b83969SRob Bradfordthe guest must service.
217152b83969SRob Bradford
217252b83969SRob Bradford### `vhost_user_fs` Improvements
217352b83969SRob Bradford
217452b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
217552b83969SRob Bradford
217652b83969SRob Bradford
217752b83969SRob Bradford### Notable Bug Fixes
217852b83969SRob Bradford
217952b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
218052b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
218152b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
218252b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
218352b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
218452b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
218552b83969SRob Bradford  #1216).
218652b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
218752b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
218852b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
218952b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
219052b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
219152b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
219252b83969SRob Bradford  (#751).
219352b83969SRob Bradford
219452b83969SRob Bradford### Command Line and API Changes
219552b83969SRob Bradford
219652b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
219752b83969SRob Bradford
219852b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
219952b83969SRob Bradford  rather than `sock` in some cases.
220052b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
220152b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
220252b83969SRob Bradford  offered for negotiation.
220352b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
220452b83969SRob Bradford  address for the `tap` device on the host.
220552b83969SRob Bradford
220652b83969SRob Bradford### Contributors
220752b83969SRob Bradford
220852b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
220952b83969SRob Bradford
221052b83969SRob Bradford* Anatol Belski <ab@php.net>
221152b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
221252b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
221352b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
221452b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
221552b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
221652b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
221752b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
221852b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
221952b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
222052b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
222152b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
222252b83969SRob Bradford
222396be8229SRob Bradford# v0.7.0
222496be8229SRob Bradford
222596be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
222696be8229SRob Bradford
222796be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
222896be8229SRob Bradford
222996be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
223096be8229SRob Bradford
223196be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
223296be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
223396be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
22345c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
223596be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
223696be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
223796be8229SRob Bradforddevices to ease their removal.
223896be8229SRob Bradford
223996be8229SRob Bradford### Alternative `libc` Support
224096be8229SRob Bradford
224196be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
224296be8229SRob Bradfordcontains a static binary compiled using that toolchain.
224396be8229SRob Bradford
224496be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
224596be8229SRob Bradford
224696be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
224796be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
224896be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
224996be8229SRob Bradfordis passed when the devices are created.
225096be8229SRob Bradford
225196be8229SRob Bradford### Initial RamFS Support
225296be8229SRob Bradford
225396be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
225496be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
225596be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
225696be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
225796be8229SRob Bradfordminimal image.
225896be8229SRob Bradford
225996be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
226096be8229SRob Bradford
226196be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
226296be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
226396be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
226496be8229SRob Bradfordrequires kernel patches to be able to support it.
226596be8229SRob Bradford
226696be8229SRob Bradford### `Seccomp` Sandboxing
226796be8229SRob Bradford
226896be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
226996be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
227096be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
227196be8229SRob Bradford
227296be8229SRob Bradford### Updated Distribution Support
227396be8229SRob Bradford
227496be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
227596be8229SRob Bradforddistributions and is part of our regular testing programme.
227696be8229SRob Bradford
227796be8229SRob Bradford### Command Line and API Changes
227896be8229SRob Bradford
227996be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
228096be8229SRob Bradford
228196be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
228296be8229SRob Bradford  If no name is specified the VMM chooses one.
228396be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
228496be8229SRob Bradford  memory instead of providing a path.
228596be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
228696be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
228796be8229SRob Bradford  option and replaced it with a single optional field.
228896be8229SRob Bradford* There is enhanced validation of the command line and API provided
228996be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
229096be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
229196be8229SRob Bradford  device.
229296be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
229396be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
229496be8229SRob Bradford  has appropriate new HTTP endpoints too.
229596be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
229696be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
229796be8229SRob Bradford  to provide the equivalent of a read-only file.
229896be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
229996be8229SRob Bradford  with those used by `--disk`.
230096be8229SRob Bradford
230196be8229SRob Bradford### Contributors
230296be8229SRob Bradford
230396be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
230496be8229SRob Bradford
230596be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
230696be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
230796be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
230896be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
230996be8229SRob Bradford* Dean Sheather <dean@coder.com>
231096be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
231196be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
231296be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
231396be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
231496be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
231596be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
231696be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
231796be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
231896be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
231996be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
232096be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
232196be8229SRob Bradford
232203cb26ccSSamuel Ortiz# v0.6.0
232303cb26ccSSamuel Ortiz
232403cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
232503cb26ccSSamuel Ortiz
232603cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
232703cb26ccSSamuel Ortiz
232803cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
232903cb26ccSSamuel Ortiz
233003cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
233103cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
233203cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
233303cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
233403cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
233503cb26ccSSamuel Ortiz
233603cb26ccSSamuel Ortiz### Shared Filesystem Improvements
233703cb26ccSSamuel Ortiz
233803cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
233903cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
234003cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
234103cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
234203cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
234303cb26ccSSamuel Ortiz
234403cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
234503cb26ccSSamuel Ortiz
234603cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
234703cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
234803cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
234903cb26ccSSamuel Ortizinto their own, separate processes.
23505c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
235103cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
235203cb26ccSSamuel Ortiz
235303cb26ccSSamuel Ortiz### Command Line Interface
235403cb26ccSSamuel Ortiz
235503cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
235637a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
235737a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
235837a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
235937a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
236037a2c13aSAlyssa Rossis created with each build and available e.g. at
236103cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
236203cb26ccSSamuel Ortiz
236303cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
236403cb26ccSSamuel Ortizcommands.
236503cb26ccSSamuel Ortiz
236603cb26ccSSamuel Ortiz### PVH Boot
236703cb26ccSSamuel Ortiz
236803cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
236903cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
237003cb26ccSSamuel Ortiz
237103cb26ccSSamuel Ortiz### Contributors
237203cb26ccSSamuel Ortiz
237303cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
237403cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
237503cb26ccSSamuel Ortiz
237603cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
237703cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
237803cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
237903cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
238003cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
238103cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
238203cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
238303cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
238403cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
238503cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
238603cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
238703cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
238803cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
238903cb26ccSSamuel Ortiz
239094f2fc33SRob Bradford# v0.5.1
239194f2fc33SRob Bradford
239294f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
239394f2fc33SRob Bradford
239494f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
239594f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
239694f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
239794f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
239894f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
23998e8a7b6dSSamuel Ortiz
24002f395e60SSamuel Ortiz# v0.5.0
24012f395e60SSamuel Ortiz
24022f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
24032f395e60SSamuel Ortiz
24042f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
24052f395e60SSamuel Ortiz
24062f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
24072f395e60SSamuel Ortiz
24082f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
24092f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
24102f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
24112f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
24122f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
24132f395e60SSamuel Ortiz
24142f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
24152f395e60SSamuel Ortiz
24162f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
24172f395e60SSamuel Ortiz
24182f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
24192f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
24202f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
24212f395e60SSamuel Ortiz
24222f395e60SSamuel Ortiz### New Interrupt Management Framework
24232f395e60SSamuel Ortiz
24242f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
24252f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
24262f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
24272f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
24282f395e60SSamuel Ortizvirtio ones.
24292f395e60SSamuel Ortiz
24302f395e60SSamuel Ortiz### Development Tools
24312f395e60SSamuel Ortiz
24322f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
24332f395e60SSamuel Ortizbuild, development and testing tools.
24342f395e60SSamuel OrtizSomehow similar to the excellent
24352f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
243637a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
24372f395e60SSamuel Ortiz
24382f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
24392f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
24402f395e60SSamuel Ortiz
24412f395e60SSamuel Ortiz### Kata Containers Integration
24422f395e60SSamuel Ortiz
24432f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
24442f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
24452f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
24462f395e60SSamuel Ortizintegrated into the project's CI.
24472f395e60SSamuel Ortiz
24482f395e60SSamuel Ortiz### Contributors
24492f395e60SSamuel Ortiz
24502f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
24512f395e60SSamuel Ortiz
24522f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
24532f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
24542f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
24552f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
24562f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
24572f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
24582f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
24592f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
24602f395e60SSamuel Ortiz
2461cec884e8SSamuel Ortiz# v0.4.0
2462cec884e8SSamuel Ortiz
2463cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2464cec884e8SSamuel Ortiz
2465cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2466cec884e8SSamuel Ortiz
2467cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2468cec884e8SSamuel Ortiz
2469e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2470cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2471cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2472cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
247337a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2474cec884e8SSamuel Ortiz
2475cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2476cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2477cec884e8SSamuel Ortiz
2478cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2479cec884e8SSamuel Ortiz
2480cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2481cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2482cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2483cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2484cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2485cec884e8SSamuel Ortiz
2486cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2487cec884e8SSamuel Ortiz
2488cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2489cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2490cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2491cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2492cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2493cec884e8SSamuel Ortiz
2494cec884e8SSamuel Ortiz### Guest pause and resume
2495cec884e8SSamuel Ortiz
24965c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2497cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2498cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2499cec884e8SSamuel Ortizand resume capabilities.
2500cec884e8SSamuel Ortiz
2501cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2502cec884e8SSamuel Ortiz
2503cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2504cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2505cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2506cec884e8SSamuel Ortizdefault.
2507cec884e8SSamuel Ortiz
2508cec884e8SSamuel Ortiz### PCI BAR reprogramming
2509cec884e8SSamuel Ortiz
2510cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2511cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2512cec884e8SSamuel Ortizreprogramming.
2513cec884e8SSamuel Ortiz
2514cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2515cec884e8SSamuel Ortiz
2516cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2517cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2518cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2519cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2520cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2521cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2522cec884e8SSamuel Ortiztemporarily fork.
2523cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2524cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2525cec884e8SSamuel Ortiz
2526cec884e8SSamuel Ortiz### Contributors
2527cec884e8SSamuel Ortiz
2528cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2529cec884e8SSamuel Ortiz
2530cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2531cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2532cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2533cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2534cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2535cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2536cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2537cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2538cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2539cec884e8SSamuel Ortiz
25408e8a7b6dSSamuel Ortiz# v0.3.0
25418e8a7b6dSSamuel Ortiz
25428ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
25438e8a7b6dSSamuel Ortiz
25448e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
25458e8a7b6dSSamuel Ortiz
25468e8a7b6dSSamuel Ortiz### Block device offloading
25478e8a7b6dSSamuel Ortiz
25488e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
25498e8a7b6dSSamuel Ortizand we added support for
25508e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
25518e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
25528e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
25538e8a7b6dSSamuel Ortizbackend.
25548e8a7b6dSSamuel Ortiz
25558e8a7b6dSSamuel Ortiz### Network device backend
25568e8a7b6dSSamuel Ortiz
25578e8a7b6dSSamuel OrtizThe previous release provided support for
25588e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
25598e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
25608e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
25618e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
25628e8a7b6dSSamuel Ortiz
25638e8a7b6dSSamuel Ortiz### Virtual sockets
25648e8a7b6dSSamuel Ortiz
25658e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
25668e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
25678e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
25688e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
25698e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
25708e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
25718e8a7b6dSSamuel Ortiz
25728e8a7b6dSSamuel Ortiz### HTTP based API
25738e8a7b6dSSamuel Ortiz
25748e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
25758e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
25768e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
25778e8a7b6dSSamuel Ortiznext release cycle.
25788e8a7b6dSSamuel Ortiz
25798e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
25808e8a7b6dSSamuel Ortiz
25818e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
25828e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
25838e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
25848e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
25858e8a7b6dSSamuel Ortiz
25868e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
25878e8a7b6dSSamuel Ortiz
25888e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
258937a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
259037a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
25918e8a7b6dSSamuel Ortiz
25928e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
25938e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
25948e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
25958e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
25968e8a7b6dSSamuel Ortizsetting.
25978e8a7b6dSSamuel Ortiz
25988e8a7b6dSSamuel Ortiz### Ubuntu 19.10
25998e8a7b6dSSamuel Ortiz
26008ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
26018e8a7b6dSSamuel Ortizwe can now support the latest
26028e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
26038e8a7b6dSSamuel Ortiz
26048e8a7b6dSSamuel Ortiz### Large memory guests
26058e8a7b6dSSamuel Ortiz
26068e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
26078e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
26087688e6e2SSamuel Ortiz
2609d784ac29SSamuel Ortiz# v0.2.0
2610d784ac29SSamuel Ortiz
26118ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2612d784ac29SSamuel Ortiz
2613d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2614d784ac29SSamuel Ortiz
2615d784ac29SSamuel Ortiz### Network device offloading
2616d784ac29SSamuel Ortiz
2617d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2618d784ac29SSamuel Ortizprocesses, we added support for
2619d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2620d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2621d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2622d784ac29SSamuel Ortiz
2623d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2624d784ac29SSamuel Ortiz
2625d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2626d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2627d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2628d784ac29SSamuel Ortizcleanly reboot and shutdown.
2629d784ac29SSamuel Ortiz
2630d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2631d784ac29SSamuel Ortizenabled by default.
2632d784ac29SSamuel Ortiz
2633d784ac29SSamuel Ortiz### Debug I/O port
2634d784ac29SSamuel Ortiz
2635d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2636d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2637d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2638d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
263937a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
264037a2c13aSAlyssa Rossdetails.
2641d784ac29SSamuel Ortiz
2642d784ac29SSamuel Ortiz### Improved direct device assignment
2643d784ac29SSamuel Ortiz
2644d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2645d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2646d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2647d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2648d784ac29SSamuel Ortizdirectly assigned devices.
2649d784ac29SSamuel Ortiz
2650d784ac29SSamuel Ortiz### Improved shared filesystem
2651d784ac29SSamuel Ortiz
2652d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2653d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2654d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2655d784ac29SSamuel Ortizmemory footprint.
2656d784ac29SSamuel Ortiz
2657d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2658d784ac29SSamuel Ortiz
26598ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2660d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2661d784ac29SSamuel Ortizour CI pipeline.
2662d784ac29SSamuel Ortiz
266393b77530SSamuel Ortiz# v0.1.0
266493b77530SSamuel Ortiz
26658ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
266693b77530SSamuel Ortiz
266793b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
266893b77530SSamuel Ortiz
266993b77530SSamuel Ortiz### Shared filesystem
267093b77530SSamuel Ortiz
267193b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
267293b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
267393b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
267493b77530SSamuel Ortiz
267537a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
267637a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
267793b77530SSamuel Ortiz
267893b77530SSamuel Ortiz### Initial direct device assignment support
267993b77530SSamuel Ortiz
268093b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
268193b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
268293b77530SSamuel Ortizphysical devices into its guest.
268393b77530SSamuel Ortiz
268437a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
268537a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
268693b77530SSamuel Ortiz
268793b77530SSamuel Ortiz### Userspace IOAPIC
268893b77530SSamuel Ortiz
268993b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
269093b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
269193b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
269293b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
269393b77530SSamuel Ortiz
269493b77530SSamuel Ortiz### Virtual persistent memory
269593b77530SSamuel Ortiz
269693b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
269793b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
269893b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
269993b77530SSamuel Ortiz
270093b77530SSamuel Ortiz### Linux kernel bzImage
270193b77530SSamuel Ortiz
270293b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
270393b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
270493b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
270593b77530SSamuel Ortizdistribution kernel image.
270693b77530SSamuel Ortiz
270793b77530SSamuel Ortiz### Console over virtio
270893b77530SSamuel Ortiz
270993b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
271093b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
271193b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
271293b77530SSamuel Ortizimplementation.
271393b77530SSamuel Ortiz
271493b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
271593b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
271693b77530SSamuel Ortiz`--serial tty --console off` from the command line.
271793b77530SSamuel Ortiz
271893b77530SSamuel Ortiz### Unit testing
271993b77530SSamuel Ortiz
272093b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
272193b77530SSamuel Ortiz
272293b77530SSamuel Ortiz### Integration tests parallelization
272393b77530SSamuel Ortiz
272493b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
272593b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2726