xref: /cloud-hypervisor/release-notes.md (revision f3522e85fcb51d184a4010c09acf813f9a7acfc6)
1*f3522e85SMichael Zhao- [v31.0](#v310)
2*f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
3*f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
4*f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
5*f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
6*f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements)
7*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes)
8*f3522e85SMichael Zhao    - [Contributors](#contributors)
9ece0e6faSBo Chen- [v30.0](#v300)
10ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
11ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
12ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
13*f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements-1)
14*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-1)
15*f3522e85SMichael Zhao    - [Contributors](#contributors-1)
16ece0e6faSBo Chen- [v28.2](#v282)
1722cf8c97SRob Bradford- [v29.0](#v290)
1822cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
1922cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
2022cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
2122cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
2222cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
2322cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
2422cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
25*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-2)
2622cf8c97SRob Bradford    - [Removals](#removals)
2722cf8c97SRob Bradford    - [Deprecations](#deprecations)
28*f3522e85SMichael Zhao    - [Contributors](#contributors-2)
2922cf8c97SRob Bradford- [v28.1](#v281)
3066460765SRob Bradford- [v28.0](#v280)
3166460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
3266460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
3366460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
3466460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
3566460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
36*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-3)
3722cf8c97SRob Bradford    - [Removals](#removals-1)
38*f3522e85SMichael Zhao    - [Contributors](#contributors-3)
392ba6a9bfSRob Bradford- [v27.0](#v270)
402ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
412ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
422ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
432ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
442ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
452ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
462ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
47ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
48*f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
49*f3522e85SMichael Zhao    - [Contributors](#contributors-4)
50*f3522e85SMichael Zhao- [v26.0](#v260)
51*f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
52*f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
53*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-5)
5422cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
5566460765SRob Bradford    - [Removals](#removals-2)
56*f3522e85SMichael Zhao    - [Contributors](#contributors-5)
5722cf8c97SRob Bradford- [v25.0](#v250)
5822cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
5922cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
60*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-6)
6122cf8c97SRob Bradford    - [Removals](#removals-3)
62*f3522e85SMichael Zhao    - [Contributors](#contributors-6)
630150de55SSebastien Boeuf- [v24.0](#v240)
640150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
650150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
660150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
670150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
68*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-7)
690150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
7022cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
710150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
72*f3522e85SMichael Zhao    - [Contributors](#contributors-7)
730150de55SSebastien Boeuf- [v23.1](#v231)
740c9c56f5SRob Bradford- [v23.0](#v230)
750c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
760c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
770c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
780c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
79*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-8)
8022cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
81*f3522e85SMichael Zhao    - [Contributors](#contributors-8)
820c9c56f5SRob Bradford- [v22.1](#v221)
836aa10938SRob Bradford- [v22.0](#v220)
846aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
856aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
866aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
876aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
886aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
896aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
900c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
916aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
92*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-9)
93*f3522e85SMichael Zhao    - [Contributors](#contributors-9)
9495ca7997SRob Bradford- [v21.0](#v210)
9595ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
9695ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
97*f3522e85SMichael Zhao    - [Notable Bug fixes](#notable-bug-fixes-10)
98*f3522e85SMichael Zhao    - [Contributors](#contributors-10)
9995ca7997SRob Bradford- [v20.2](#v202)
10095ca7997SRob Bradford- [v20.1](#v201)
1017fc0776aSSebastien Boeuf- [v20.0](#v200)
1027fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1037fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1047fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1057fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1067fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
107*f3522e85SMichael Zhao    - [Notable bug fixes](#notable-bug-fixes-11)
108*f3522e85SMichael Zhao    - [Contributors](#contributors-11)
109d00eb4aaSRob Bradford- [v19.0](#v190)
110d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
111d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
112d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
113d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
114d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
115d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
116*f3522e85SMichael Zhao    - [Notable bug fixes](#notable-bug-fixes-12)
117*f3522e85SMichael Zhao    - [Contributors](#contributors-12)
1182c4f8d22SRob Bradford- [v18.0](#v180)
1192c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1202c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1212c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1222c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1232c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1242c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1252c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1262c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
127*f3522e85SMichael Zhao    - [Notable bug fixes](#notable-bug-fixes-13)
128*f3522e85SMichael Zhao    - [Contributors](#contributors-13)
129e6db5999SRob Bradford- [v17.0](#v170)
130e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
131e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
132e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
133e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
134e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
135*f3522e85SMichael Zhao    - [Notable bug fixes](#notable-bug-fixes-14)
136*f3522e85SMichael Zhao    - [Contributors](#contributors-14)
1375ed8e01fSRob Bradford- [v16.0](#v160)
1385ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1395ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1405ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
141*f3522e85SMichael Zhao    - [Notable bug fixes](#notable-bug-fixes-15)
1425ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
143*f3522e85SMichael Zhao    - [Contributors](#contributors-15)
14430a01277SRob Bradford- [v15.0](#v150)
14530a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
14630a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
14730a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
148*f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
14930a01277SRob Bradford    - [Bug fixes](#bug-fixes)
15022cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
151*f3522e85SMichael Zhao    - [Contributors](#contributors-16)
15230a01277SRob Bradford- [v0.14.1](#v0141)
15340c63dcfSRob Bradford- [v0.14.0](#v0140)
15440c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
15540c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
15640c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
15740c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
15840c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
15940c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
16022cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
161*f3522e85SMichael Zhao    - [Contributors](#contributors-17)
162f58b6f84SRob Bradford- [v0.13.0](#v0130)
163f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
16440c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
165f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
166f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
167f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
168f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
169*f3522e85SMichael Zhao    - [Contributors](#contributors-18)
170d42b5084SRob Bradford- [v0.12.0](#v0120)
171d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
172d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
173d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
174d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
175*f3522e85SMichael Zhao    - [Contributors](#contributors-19)
1767dcd3affSRob Bradford- [v0.11.0](#v0110)
1777dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1787dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1797dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
180d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1817dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1827dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1837dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1847dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
185*f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1867dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
187*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-16)
188*f3522e85SMichael Zhao    - [Contributors](#contributors-20)
189198bd551SRob Bradford- [v0.10.0](#v0100)
190198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
191198bd551SRob Bradford    - [Memory Zones](#memory-zones)
192198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
193198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
194*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-17)
195*f3522e85SMichael Zhao    - [Contributors](#contributors-21)
196d714cf81SRob Bradford- [v0.9.0](#v090)
197d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
198d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
199d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
200d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
201d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
202d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
203d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
204d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
205d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
206d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
207198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
208*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-18)
209*f3522e85SMichael Zhao    - [Contributors](#contributors-22)
210d714cf81SRob Bradford- [v0.8.0](#v080)
211d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
212d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
213d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
214d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
215d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
216*f3522e85SMichael Zhao    - [Notable Bug Fixes](#notable-bug-fixes-19)
217d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
218*f3522e85SMichael Zhao    - [Contributors](#contributors-23)
21996be8229SRob Bradford- [v0.7.0](#v070)
22096be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
22196be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
22296be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
22396be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
22496be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
22596be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
22696be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
22752b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
228*f3522e85SMichael Zhao    - [Contributors](#contributors-24)
22903cb26ccSSamuel Ortiz- [v0.6.0](#v060)
23003cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
23103cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
23203cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
23303cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
23403cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
235*f3522e85SMichael Zhao    - [Contributors](#contributors-25)
23694f2fc33SRob Bradford- [v0.5.1](#v051)
2372f395e60SSamuel Ortiz- [v0.5.0](#v050)
23894f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
23994f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
24094f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
24194f2fc33SRob Bradford    - [Development Tools](#development-tools)
24294f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
243*f3522e85SMichael Zhao    - [Contributors](#contributors-26)
244cec884e8SSamuel Ortiz- [v0.4.0](#v040)
24594f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
24694f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
24794f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
24894f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
24994f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
25094f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
25194f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
252*f3522e85SMichael Zhao    - [Contributors](#contributors-27)
2538e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
25494f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
25594f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
25694f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
25794f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
25894f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
25994f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
26094f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
26194f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2627688e6e2SSamuel Ortiz- [v0.2.0](#v020)
26394f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
26494f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
26594f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
26694f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
26794f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
26894f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2697688e6e2SSamuel Ortiz- [v0.1.0](#v010)
27094f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
27194f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
27294f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
27394f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
27494f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
27594f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
27694f2fc33SRob Bradford    - [Unit testing](#unit-testing)
27794f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
27894f2fc33SRob Bradford
279*f3522e85SMichael Zhao# v31.0
280*f3522e85SMichael Zhao
281*f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
282*f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
283*f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
284*f3522e85SMichael Zhao
285*f3522e85SMichael Zhao### Update to Latest `acpi_tables`
286*f3522e85SMichael Zhao
287*f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
288*f3522e85SMichael ZhaoThere has been significant API changes in the crate.
289*f3522e85SMichael Zhao
290*f3522e85SMichael Zhao### Update Reference Kernel to 6.2
291*f3522e85SMichael Zhao
292*f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
293*f3522e85SMichael Zhao
294*f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
295*f3522e85SMichael Zhao
296*f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
297*f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
298*f3522e85SMichael Zhao
299*f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
300*f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
301*f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
302*f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
303*f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
304*f3522e85SMichael Zhao
305*f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
306*f3522e85SMichael Zhao
307*f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
308*f3522e85SMichael Zhao
309*f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
310*f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
311*f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
312*f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
313*f3522e85SMichael Zhao
314*f3522e85SMichael Zhao### Documentation Improvements
315*f3522e85SMichael Zhao
316*f3522e85SMichael Zhao* Various improvements in API document
317*f3522e85SMichael Zhao* Improvements in Doc comments
318*f3522e85SMichael Zhao* Updated Slack channel information in README
319*f3522e85SMichael Zhao
320*f3522e85SMichael Zhao### Notable Bug Fixes
321*f3522e85SMichael Zhao
322*f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
323*f3522e85SMichael Zhao  client.
324*f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
325*f3522e85SMichael Zhao  endpoint.
326*f3522e85SMichael Zhao
327*f3522e85SMichael Zhao### Contributors
328*f3522e85SMichael Zhao
329*f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
330*f3522e85SMichael Zhao
331*f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
332*f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
333*f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
334*f3522e85SMichael Zhao* Dom <peng6662001@163.com>
335*f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
336*f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
337*f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
338*f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
339*f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
340*f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
341*f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
342*f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
343*f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
344*f3522e85SMichael Zhao
345ece0e6faSBo Chen# v30.0
346ece0e6faSBo Chen
347ece0e6faSBo ChenThis release has been tracked in our [roadmap
348ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
349ece0e6faSBo Chenv30.0. The following user visible changes have been made:
350ece0e6faSBo Chen
351ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
352ece0e6faSBo Chen
353ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
354ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
355ece0e6faSBo Chenwere several syntax changes:
356ece0e6faSBo Chen
357ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
358ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
359ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
360ece0e6faSBo Chen
361ece0e6faSBo Chen### Basic vfio-user Server Support
362ece0e6faSBo Chen
363ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
364ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
365ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
366ece0e6faSBo Chen`rust-vmm` organization.
367ece0e6faSBo Chen
368ece0e6faSBo Chen### Heap Profiling Support
369ece0e6faSBo Chen
370ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
371ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
372ece0e6faSBo Chen
373ece0e6faSBo Chen### Documentation Improvements
374ece0e6faSBo Chen
375ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
376ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
377ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
378ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
379ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
380ece0e6faSBo Chenexisting 'profiling' documentation.
381ece0e6faSBo Chen
382ece0e6faSBo Chen### Notable Bug Fixes
383ece0e6faSBo Chen
384ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
385ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
386ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
387ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
388ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
389ece0e6faSBo Chen
390ece0e6faSBo Chen### Contributors
391ece0e6faSBo Chen
392ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
393ece0e6faSBo Chen
394ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
395ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
396ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
397ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
398ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
399ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
400ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
401ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
402ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
403ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
404ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
405ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
406ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
407ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
408ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
409ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
410ece0e6faSBo Chen
411ece0e6faSBo Chen# v28.2
412ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
413ece0e6faSBo Chen
414ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
415ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
416ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
417ece0e6faSBo Chen
41822cf8c97SRob Bradford# v29.0
41922cf8c97SRob Bradford
42022cf8c97SRob BradfordThis release has been tracked in our [roadmap
42122cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
42222cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
42322cf8c97SRob Bradford
42422cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
42522cf8c97SRob Bradford
42622cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
42722cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
42822cf8c97SRob Bradford
42922cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
43022cf8c97SRob Bradford
43122cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
43222cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
43322cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
43422cf8c97SRob Bradfordsupported but has worked for some versions.)
43522cf8c97SRob Bradford
43622cf8c97SRob Bradford### Heap Allocation Improvements
43722cf8c97SRob Bradford
43822cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
43922cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
44022cf8c97SRob Bradford
44122cf8c97SRob Bradford### `ch-remote` Improvements
44222cf8c97SRob Bradford
44322cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
44422cf8c97SRob Bradford`ch-remote`.
44522cf8c97SRob Bradford
44622cf8c97SRob Bradford### `AArch64` Documentation Integration
44722cf8c97SRob Bradford
44822cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
44922cf8c97SRob BradfordREADME.
45022cf8c97SRob Bradford
45122cf8c97SRob Bradford### `virtio-block` Counters Enhancement
45222cf8c97SRob Bradford
45322cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
45422cf8c97SRob Bradfordlatency counters.
45522cf8c97SRob Bradford
45622cf8c97SRob Bradford### TCP Offload Control
45722cf8c97SRob Bradford
45822cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
45922cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
46022cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
46122cf8c97SRob Bradford
46222cf8c97SRob Bradford### Notable Bug Fixes
46322cf8c97SRob Bradford
46422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
46522cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
46622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
46722cf8c97SRob Bradford  (#4924, #4949)
46822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
46922cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
47022cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
47122cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
47222cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
47322cf8c97SRob Bradford
47422cf8c97SRob Bradford### Removals
47522cf8c97SRob Bradford
47622cf8c97SRob BradfordNo functionality has been removed in this release.
47722cf8c97SRob Bradford
47822cf8c97SRob Bradford### Deprecations
47922cf8c97SRob Bradford
48022cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
48122cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
48222cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
48322cf8c97SRob Bradford  (#5085)
48422cf8c97SRob Bradford
48522cf8c97SRob Bradford### Contributors
48622cf8c97SRob Bradford
48722cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
48822cf8c97SRob Bradford
48922cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
49022cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
49122cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
49222cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
49322cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
49422cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
49522cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
49622cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
49722cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
49822cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
49922cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
50022cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
50122cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
50222cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
50322cf8c97SRob Bradford
50422cf8c97SRob Bradford
50522cf8c97SRob Bradford# v28.1
50622cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
50722cf8c97SRob Bradford
50822cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
50922cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
51022cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
51122cf8c97SRob Bradford  (#4924, #4949)
51222cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
51322cf8c97SRob Bradford* Improve README and documentation
51422cf8c97SRob Bradford
51566460765SRob Bradford# v28.0
51666460765SRob Bradford
51766460765SRob BradfordThis release has been tracked in our new [roadmap
51866460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
51966460765SRob Bradfordv28.0.
52066460765SRob Bradford
52166460765SRob Bradford### Community Engagement (Reminder)
52266460765SRob Bradford
52366460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
52466460765SRob Bradforddiscussions.  Please consider
52566460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
52666460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
52766460765SRob BradfordHypervisor development.
52866460765SRob Bradford
52966460765SRob Bradford### Long Term Support (LTS) Release
53066460765SRob Bradford
53166460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
53266460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
53366460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
53466460765SRob Bradfordreleases of the LTS.
53566460765SRob Bradford
53666460765SRob Bradford### Virtualised TPM Support
53766460765SRob Bradford
53866460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
53966460765SRob Bradforddocumentation](docs/tpm.md).
54066460765SRob Bradford
54166460765SRob Bradford### Transparent Huge Page Support
54266460765SRob Bradford
54366460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
54466460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
54566460765SRob Bradfordthen this will be used resulting in improved boot performance.
54666460765SRob Bradford
54766460765SRob Bradford### README Quick Start Improved
54866460765SRob Bradford
54966460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
55066460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
55166460765SRob Bradford
55266460765SRob Bradford### Notable Bug Fixes
55366460765SRob Bradford
55466460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
55566460765SRob Bradford  memory consumption (#4835)
55666460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
55766460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
55866460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
55966460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
56066460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
56166460765SRob Bradford  newer Linux kernels (#4744)
56266460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
56366460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
56466460765SRob Bradford
56566460765SRob Bradford### Removals
56666460765SRob Bradford
56766460765SRob BradfordThe following functionality has been removed:
56866460765SRob Bradford
56966460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
57066460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
57166460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
57266460765SRob Bradford
57366460765SRob Bradford### Contributors
57466460765SRob Bradford
57566460765SRob BradfordMany thanks to everyone who has contributed to our release:
57666460765SRob Bradford
57766460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
57866460765SRob Bradford* Bo Chen <chen.bo@intel.com>
57966460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
58066460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
58166460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
58266460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
58366460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
58466460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
58566460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
58666460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
58766460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
58866460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
58966460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
59066460765SRob Bradford
5912ba6a9bfSRob Bradford# v27.0
5922ba6a9bfSRob Bradford
5932ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
5942ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5952ba6a9bfSRob Bradfordv27.0.
5962ba6a9bfSRob Bradford
5972ba6a9bfSRob Bradford### Community Engagement
5982ba6a9bfSRob Bradford
5992ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
6002ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
6012ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
6022ba6a9bfSRob Bradford
6032ba6a9bfSRob Bradford### Prebuilt Packages
6042ba6a9bfSRob Bradford
6052ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
6062ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
6072ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
6082ba6a9bfSRob Bradfordfirmware options available.
6092ba6a9bfSRob Bradford
6102ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
6112ba6a9bfSRob Bradford
6122ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
6132ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
6142ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
6152ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
6162ba6a9bfSRob Bradford(#4658, #4676.)
6172ba6a9bfSRob Bradford
6182ba6a9bfSRob Bradford### Boot Tracing
6192ba6a9bfSRob Bradford
6202ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
6212ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
6222ba6a9bfSRob Bradford
6232ba6a9bfSRob Bradford### Simplified Build Feature Flags
6242ba6a9bfSRob Bradford
6252ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
6262ba6a9bfSRob Bradford
6272ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
6282ba6a9bfSRob Bradford  (with `kvm` enabled by default),
6292ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
6302ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
6312ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
6322ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
6332ba6a9bfSRob Bradford  feature) and dumping guest memory.
6342ba6a9bfSRob Bradford
6352ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
6362ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
6372ba6a9bfSRob Bradford
6382ba6a9bfSRob Bradford### Asynchronous Kernel Loading
6392ba6a9bfSRob Bradford
6402ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
6412ba6a9bfSRob Bradfordx86-64. (#4538)
6422ba6a9bfSRob Bradford
6432ba6a9bfSRob Bradford### GDB Support for AArch64
6442ba6a9bfSRob Bradford
6452ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
6462ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
6472ba6a9bfSRob Bradford
6482ba6a9bfSRob Bradford### Notable Bug Fixes
6492ba6a9bfSRob Bradford
6502ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
6512ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
6522ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
6532ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
6542ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
6552ba6a9bfSRob Bradford
6562ba6a9bfSRob Bradford### Deprecations
6572ba6a9bfSRob Bradford
6582ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
6592ba6a9bfSRob Bradfordplan to use alternatives.
6602ba6a9bfSRob Bradford
6612ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
6622ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
6632ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
6642ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
6652ba6a9bfSRob Bradford
6662ba6a9bfSRob Bradford### Contributors
6672ba6a9bfSRob Bradford
6682ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
6692ba6a9bfSRob Bradford
6702ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
6712ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
6722ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
6732ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
6742ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
6752ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
6762ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
6772ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
6782ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
6792ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
6802ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
6812ba6a9bfSRob Bradford
682ed9e54d6SRob Bradford# v26.0
683ed9e54d6SRob Bradford
684ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
685ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
686ed9e54d6SRob Bradford
687ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
688ed9e54d6SRob Bradford
689ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
690ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
691ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
692ed9e54d6SRob Bradford
693ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
694ed9e54d6SRob Bradford
695ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
696ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
697ed9e54d6SRob Bradford
698ed9e54d6SRob Bradford### Notable Bug Fixes
699ed9e54d6SRob Bradford
700ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
701ed9e54d6SRob Bradford* PCI Express capabilties for functionality we do not support are now filtered
702ed9e54d6SRob Bradford  out (#4456)
703ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
704ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
705ed9e54d6SRob Bradford  (#4269, #4293)
706ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
707ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
708ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
709ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
710ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
711ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
712ed9e54d6SRob Bradford
713ed9e54d6SRob Bradford### Deprecations
714ed9e54d6SRob Bradford
715ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
716ed9e54d6SRob Bradfordplan to use alternatives.
717ed9e54d6SRob Bradford
718ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
719ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
720ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
721ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
722ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
723ed9e54d6SRob Bradford
724ed9e54d6SRob Bradford### Removals
725ed9e54d6SRob Bradford
726ed9e54d6SRob BradfordThe following functionality has been removed:
727ed9e54d6SRob Bradford
728ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
729ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
730ed9e54d6SRob Bradford  spawning feature (#4402.)
731ed9e54d6SRob Bradford
732ed9e54d6SRob Bradford### Contributors
733ed9e54d6SRob Bradford
734ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
735ed9e54d6SRob Bradford
736ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
737ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
738ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
739ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
740ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
741ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
742ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
743ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
744ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
745ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
746ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
747ed9e54d6SRob Bradford
748b132cd21SRob Bradford# v25.0
749b132cd21SRob Bradford
750b132cd21SRob BradfordThis release has been tracked through the [v25.0
751b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
752b132cd21SRob Bradford
753b132cd21SRob Bradford### `ch-remote` Improvements
754b132cd21SRob Bradford
755b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
756b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
757b132cd21SRob Bradford
758b132cd21SRob Bradford### VM "Coredump" Support
759b132cd21SRob Bradford
760b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
761b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
762b132cd21SRob Bradford
763b132cd21SRob Bradford### Notable Bug Fixes
764b132cd21SRob Bradford
765b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
766b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
767b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
768b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
769b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
770b132cd21SRob Bradford  5.16 (#4156)
771b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
772b132cd21SRob Bradford  Linux guest
773b132cd21SRob Bradford
774b132cd21SRob Bradford### Removals
775b132cd21SRob Bradford
776b132cd21SRob BradfordThe following functionality has been removed:
777b132cd21SRob Bradford
778b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
779b132cd21SRob Bradford  (#3968)
780b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
781b132cd21SRob Bradford
782b132cd21SRob Bradford### Contributors
783b132cd21SRob Bradford
784b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
785b132cd21SRob Bradford
786b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
787b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
788b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
789b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
790b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
791b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
792b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
793b132cd21SRob Bradford
7940150de55SSebastien Boeuf# v24.0
7950150de55SSebastien Boeuf
7960150de55SSebastien BoeufThis release has been tracked through the [v24.0
7970150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
7980150de55SSebastien Boeuf
7990150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
8000150de55SSebastien Boeuf
8010150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
8020150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
8030150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
8040150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
8050150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
8060150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
8070150de55SSebastien Boeuf
8080150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
8090150de55SSebastien Boeuf
8100150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
8110150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
8120150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
8130150de55SSebastien Boeuf
8140150de55SSebastien Boeuf### Sparse Mmap support
8150150de55SSebastien Boeuf
8160150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
8170150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
8180150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
8190150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
8200150de55SSebastien Boeufimpacts the performance related to this device.
8210150de55SSebastien Boeuf
8220150de55SSebastien Boeuf### Expose Platform Serial Number
8230150de55SSebastien Boeuf
8240150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
8250150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
8260150de55SSebastien Boeufguest through the SMBIOS.
8270150de55SSebastien Boeuf
8280150de55SSebastien Boeuf### Notable Bug Fixes
8290150de55SSebastien Boeuf
8300150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
8310150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
8320150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
8330150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
8340150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
8350150de55SSebastien Boeuf
8360150de55SSebastien Boeuf### Notable Improvements
8370150de55SSebastien Boeuf
8380150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
8390150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
8400150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
8410150de55SSebastien Boeuf
8420150de55SSebastien Boeuf### Deprecations
8430150de55SSebastien Boeuf
8440150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
8450150de55SSebastien Boeufplan to use alternatives
8460150de55SSebastien Boeuf
8470150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
8480150de55SSebastien Boeuf  (#3968)
8490150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
8500150de55SSebastien Boeuf
8510150de55SSebastien Boeuf### New on the Website
8520150de55SSebastien Boeuf
8530150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
8540150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
8550150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
8560150de55SSebastien Boeuf
8570150de55SSebastien Boeuf### Contributors
8580150de55SSebastien Boeuf
8590150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
8600150de55SSebastien Boeuf
8610150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
8620150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
8630150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
8640150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
8650150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
8660150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
8670150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
8680150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
8690150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
8700150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
8710150de55SSebastien Boeuf
8720150de55SSebastien Boeuf# v23.1
8730150de55SSebastien Boeuf
8740150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
8750150de55SSebastien Boeuf
8760150de55SSebastien Boeuf* Add some missing seccomp rules
8770150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
8780150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
8790150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
8800150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
8810150de55SSebastien Boeuf
8820c9c56f5SRob Bradford# v23.0
8830c9c56f5SRob Bradford
8840c9c56f5SRob BradfordThis release has been tracked through the [v23.0
8850c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
8860c9c56f5SRob Bradford
8870c9c56f5SRob Bradford### vDPA Support
8880c9c56f5SRob Bradford
8890c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
8900c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
8910c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
8920c9c56f5SRob Bradford
8930c9c56f5SRob Bradford### Updated OS Support list
8940c9c56f5SRob Bradford
8950c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
8960c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
8970c9c56f5SRob Bradford
8980c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
8990c9c56f5SRob Bradford
9000c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
9010c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
9020c9c56f5SRob Bradfordallocated RAM. (#3938)
9030c9c56f5SRob Bradford
9040c9c56f5SRob Bradford### `AMX` Support
9050c9c56f5SRob Bradford
9060c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
9070c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
9080c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
9090c9c56f5SRob Bradford
9100c9c56f5SRob Bradford### Notable Bug Fixes
9110c9c56f5SRob Bradford
9120c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
9130c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
9140c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
9150c9c56f5SRob Bradford  `virtio-mem` (#3883)
9160c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
9170c9c56f5SRob Bradford  vIOMMU (#3870)
9180c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
9190c9c56f5SRob Bradford  (#3848)
9200c9c56f5SRob Bradford
9210c9c56f5SRob Bradford### Deprecations
9220c9c56f5SRob Bradford
9230c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
9240c9c56f5SRob Bradfordplan to use alternatives
9250c9c56f5SRob Bradford
9260c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
9270c9c56f5SRob Bradford  (#3968)
9280c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
9290c9c56f5SRob Bradford
9300c9c56f5SRob Bradford### Contributors
9310c9c56f5SRob Bradford
9320c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
9330c9c56f5SRob Bradford
9340c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
9350c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
9360c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
9370c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9380c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
9390c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
9400c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
9410c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
9420c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
9430c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
9440c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
9450c9c56f5SRob Bradford
9460c9c56f5SRob Bradford# v22.1
9470c9c56f5SRob Bradford
9480c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
9490c9c56f5SRob Bradford
9500c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
9510c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
9520c9c56f5SRob Bradford
9536aa10938SRob Bradford# v22.0
9546aa10938SRob Bradford
9550c9c56f5SRob BradfordThis release has been tracked through the [v22.0
9560c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
9576aa10938SRob Bradford
9586aa10938SRob Bradford### GDB Debug Stub Support
9596aa10938SRob Bradford
9606aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
9616aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
9626aa10938SRob Bradfordthe [gdb
9636aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
9646aa10938SRob Bradford
9656aa10938SRob Bradford### `virtio-iommu` Backed Segments
9666aa10938SRob Bradford
9676aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
9686aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
9696aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
9706aa10938SRob Bradford
9716aa10938SRob Bradford### Before Boot Configuration Changes
9726aa10938SRob Bradford
9736aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
9746aa10938SRob Bradfordresize) before the VM is booted.
9756aa10938SRob Bradford
9766aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
9776aa10938SRob Bradford
9786aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
9796aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
9806aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
9816aa10938SRob Bradfordmemory density.
9826aa10938SRob Bradford
9836aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
9846aa10938SRob Bradford
9856aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
9866aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
9876aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
9886aa10938SRob Bradfordhas been updated for this usage.
9896aa10938SRob Bradford
9906aa10938SRob Bradford### PMU Support for AArch64
9916aa10938SRob Bradford
9926aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
9936aa10938SRob Bradfordexposed automatically if available from the host.
9946aa10938SRob Bradford
9950c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
9966aa10938SRob Bradford
9976aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
9986aa10938SRob BradfordInternational" license which is aligned with the project charter under the
9996aa10938SRob BradfordLinux Foundation.
10006aa10938SRob Bradford
10016aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
10026aa10938SRob Bradford
10036aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
10046aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
10056aa10938SRob Bradfordversion.
10066aa10938SRob Bradford
10076aa10938SRob Bradford### Notable Bug Fixes
10086aa10938SRob Bradford
10096aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
10106aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
10116aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
10126aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
10136aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
10146aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
10156aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
10166aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
10176aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
10186aa10938SRob Bradford
10196aa10938SRob Bradford### Contributors
10206aa10938SRob Bradford
10216aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
10226aa10938SRob Bradford
10236aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
10246aa10938SRob Bradford* Barret Rhoden <brho@google.com>
10256aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
10266aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
10276aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
10286aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
10296aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
10306aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
10316aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
10326aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
10336aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10346aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
10356aa10938SRob Bradford
103695ca7997SRob Bradford# v21.0
103795ca7997SRob Bradford
103895ca7997SRob BradfordThis release has been tracked through the [v21.0
103995ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
104095ca7997SRob Bradford
104195ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
104295ca7997SRob Bradford
10436aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
10446aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
10456aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
10466aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
10476aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
104895ca7997SRob Bradford
104995ca7997SRob Bradford### Recommended Kernel is Now 5.15
105095ca7997SRob Bradford
10516aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
10526aa10938SRob Bradfordis now 5.15. (#3530)
105395ca7997SRob Bradford
105495ca7997SRob Bradford### Notable Bug fixes
105595ca7997SRob Bradford
105695ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
105795ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
105895ca7997SRob Bradford* Support live migration within firmware (#3586)
105995ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
106095ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
106195ca7997SRob Bradford
106295ca7997SRob Bradford### Contributors
106395ca7997SRob Bradford
106495ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
106595ca7997SRob Bradford
106695ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
106795ca7997SRob Bradford* Barret Rhoden <brho@google.com>
106895ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
106995ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
107095ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
107195ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
107295ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
107395ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
107495ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
107595ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
107695ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
107795ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
107895ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
107995ca7997SRob Bradford
108095ca7997SRob Bradford# v20.2
108195ca7997SRob Bradford
108295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
108395ca7997SRob Bradford
108495ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
108595ca7997SRob Bradford  when this fails due to older kernel (#3456)
108695ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
108795ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
108895ca7997SRob Bradford  (#3496)
108995ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
109095ca7997SRob Bradford
109195ca7997SRob Bradford# v20.1
109295ca7997SRob Bradford
109395ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
109495ca7997SRob Bradford
109595ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
109695ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
109795ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
109895ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
109995ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
110095ca7997SRob Bradford
11017fc0776aSSebastien Boeuf# v20.0
11027fc0776aSSebastien Boeuf
11037fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
11047fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
11057fc0776aSSebastien Boeuf
11067fc0776aSSebastien Boeuf### Multiple PCI segments support
11077fc0776aSSebastien Boeuf
11087fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
11097fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
11107fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
11117fc0776aSSebastien Boeuf
11127fc0776aSSebastien Boeuf### CPU pinning
11137fc0776aSSebastien Boeuf
11147fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
11157fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
11167fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
11177fc0776aSSebastien Boeuf
11187fc0776aSSebastien Boeuf### Improved VFIO support
11197fc0776aSSebastien Boeuf
11207fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
11217fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
11227fc0776aSSebastien Boeufthe passthrough device.
11237fc0776aSSebastien Boeuf
11247fc0776aSSebastien Boeuf### Safer code
11257fc0776aSSebastien Boeuf
11267fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
11277fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
11287fc0776aSSebastien Boeufunsafe sections are safe to use.
11297fc0776aSSebastien Boeuf
11307fc0776aSSebastien Boeuf### Extended documentation
11317fc0776aSSebastien Boeuf
11327fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
11337fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
11347fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
11357fc0776aSSebastien Boeuf
11367fc0776aSSebastien Boeuf### Notable bug fixes
11377fc0776aSSebastien Boeuf
11387fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
11397fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
11407fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
11417fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
11427fc0776aSSebastien Boeuf
11437fc0776aSSebastien Boeuf### Contributors
11447fc0776aSSebastien Boeuf
11457fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
11467fc0776aSSebastien Boeuf
11477fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
11487fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
11497fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
11507fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
11517fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
11527fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
11537fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
11547fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
11557fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
11567fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
11577fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
11587fc0776aSSebastien Boeuf
1159d00eb4aaSRob Bradford# v19.0
1160d00eb4aaSRob Bradford
1161d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1162d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1163d00eb4aaSRob Bradford
1164d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1165d00eb4aaSRob Bradford
1166d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1167d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1168d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1169d00eb4aaSRob Bradford
1170d00eb4aaSRob Bradford### PCI boot time optimisations
1171d00eb4aaSRob Bradford
1172d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1173d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1174d00eb4aaSRob Bradford
1175d00eb4aaSRob Bradford### Improved TDX support
1176d00eb4aaSRob Bradford
1177d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1178d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1179d00eb4aaSRob Bradford
1180d00eb4aaSRob Bradford### Live migration enhancements
1181d00eb4aaSRob Bradford
1182d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1183d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1184d00eb4aaSRob Bradfordmigration.
1185d00eb4aaSRob Bradford
1186d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1187d00eb4aaSRob Bradford
1188d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1189d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1190d00eb4aaSRob Bradford
1191d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1192d00eb4aaSRob Bradford
1193d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1194d00eb4aaSRob Bradford
1195d00eb4aaSRob Bradford### Notable bug fixes
1196d00eb4aaSRob Bradford
1197d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1198d00eb4aaSRob Bradford  snapshot/restore (#3165)
1199d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1200d00eb4aaSRob Bradford  (#3078 #3113)
1201d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1202d00eb4aaSRob Bradford  the underlying crate (#3157)
1203d00eb4aaSRob Bradford
1204d00eb4aaSRob Bradford### Contributors
1205d00eb4aaSRob Bradford
1206d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1207d00eb4aaSRob Bradford
1208d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1209d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1210d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1211d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1212d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1213d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1214d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1215d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1216d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1217d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1218d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1219d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1220d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1221d00eb4aaSRob Bradford
12222c4f8d22SRob Bradford# v18.0
12232c4f8d22SRob Bradford
12242c4f8d22SRob BradfordThis release has been tracked through the [v18.0
12252c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
12262c4f8d22SRob Bradford
12272c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
12282c4f8d22SRob Bradford
12292c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
12302c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
12312c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
12322c4f8d22SRob Bradford
12332c4f8d22SRob Bradford### Migration support for `vhost-user` devices
12342c4f8d22SRob Bradford
12352c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
12362c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
12372c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
12382c4f8d22SRob Bradford
12392c4f8d22SRob Bradford### VHDX disk image support
12402c4f8d22SRob Bradford
12412c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
12422c4f8d22SRob Bradford
12432c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
12442c4f8d22SRob Bradford
12452c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
12462c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
12472c4f8d22SRob Bradford
12482c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
12492c4f8d22SRob Bradford
12502c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
12512c4f8d22SRob Bradford
12522c4f8d22SRob Bradford### Live migration on MSHV hypervisor
12532c4f8d22SRob Bradford
12542c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
12552c4f8d22SRob Bradfordefficient tracking of dirty pages.
12562c4f8d22SRob Bradford
12572c4f8d22SRob Bradford### AArch64 CPU topology support
12582c4f8d22SRob Bradford
12592c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
12602c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
12612c4f8d22SRob Bradfordtree.
12622c4f8d22SRob Bradford
12632c4f8d22SRob Bradford### Power button support on AArch64
12642c4f8d22SRob Bradford
12652c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
12662c4f8d22SRob Bradfordis now supported when running on AArch64.
12672c4f8d22SRob Bradford
12682c4f8d22SRob Bradford### Notable bug fixes
12692c4f8d22SRob Bradford
12702c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
12712c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
12722c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
12732c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
12742c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
12752c4f8d22SRob Bradford
12762c4f8d22SRob Bradford### Contributors
12772c4f8d22SRob Bradford
12782c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
12792c4f8d22SRob Bradford
12802c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
12812c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
12822c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
12832c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
12842c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
12852c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
12862c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
12872c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
12882c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
12892c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
12902c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
12912c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12922c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
12932c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1294e6db5999SRob Bradford
1295e6db5999SRob Bradford# v17.0
1296e6db5999SRob Bradford
1297e6db5999SRob BradfordThis release has been tracked through the [v17.0
1298e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1299e6db5999SRob Bradford
1300e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1301e6db5999SRob Bradford
1302e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1303e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1304e6db5999SRob Bradford
1305e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1306e6db5999SRob Bradford
1307e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1308e6db5999SRob Bradfordhypervisor backend.
1309e6db5999SRob Bradford
1310e6db5999SRob Bradford### Hotplug of `macvtap` devices
1311e6db5999SRob Bradford
1312e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1313e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1314e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1315e6db5999SRob Bradford
1316e6db5999SRob Bradford### Improved SGX support
1317e6db5999SRob Bradford
1318e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1319e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1320e6db5999SRob Bradford
1321e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1322e6db5999SRob Bradford
1323e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1324e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1325e6db5999SRob Bradford
1326e6db5999SRob Bradford### Notable bug fixes
1327e6db5999SRob Bradford
1328e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1329e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1330e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1331e6db5999SRob Bradford(#2833).
1332e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1333e6db5999SRob Bradford
1334e6db5999SRob Bradford### Contributors
1335e6db5999SRob Bradford
1336e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1337e6db5999SRob Bradford
1338e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1339e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1340e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1341e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1342e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1343e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1344e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1345e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1346e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1347e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1348e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1349e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1350e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1351e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1352e6db5999SRob Bradford
13535ed8e01fSRob Bradford# v16.0
13545ed8e01fSRob Bradford
13555ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
13565ed8e01fSRob Bradford
13575ed8e01fSRob Bradford### Improved live migration support
13585ed8e01fSRob Bradford
13595ed8e01fSRob 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.
13605ed8e01fSRob Bradford
13615ed8e01fSRob Bradford### Improved `vhost-user` support
13625ed8e01fSRob Bradford
13635ed8e01fSRob 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.
13645ed8e01fSRob Bradford
13655ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
13665ed8e01fSRob Bradford
13675ed8e01fSRob 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.
13685ed8e01fSRob Bradford
13695ed8e01fSRob Bradford### Notable bug fixes
13705ed8e01fSRob Bradford
13715ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
13725ed8e01fSRob 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).
13735ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
13745ed8e01fSRob Bradford
13755ed8e01fSRob Bradford### Removed functionality
13765ed8e01fSRob Bradford
13775ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
13785ed8e01fSRob Bradford
13795ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
13805ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
13815ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
13825ed8e01fSRob Bradford
13835ed8e01fSRob Bradford### Contributors
13845ed8e01fSRob Bradford
13855ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
13865ed8e01fSRob Bradford
13875ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
13885ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
13895ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
13905ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
13915ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
13925ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13935ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
13945ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
13955ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
13965ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
13975ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
13985ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13995ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
14005ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
14015ed8e01fSRob Bradford
140230a01277SRob Bradford# v15.0
140330a01277SRob Bradford
140430a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
140530a01277SRob Bradford
140630a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
140730a01277SRob Bradford
140830a01277SRob Bradford### Version numbering and stability guarantees
140930a01277SRob Bradford
141030a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
141130a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
141230a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
141330a01277SRob Bradford
141430a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
141530a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
141630a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
141730a01277SRob Bradford  will be documented in the release notes.
141830a01277SRob Bradford* Point releases will be made between individual releases where there are
141930a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
142030a01277SRob Bradford
142130a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
142230a01277SRob Bradford
142330a01277SRob Bradford* Snapshot/restore is not supported across different versions
142430a01277SRob Bradford* Live migration is not supported across different versions
142530a01277SRob Bradford* The following features are considered experimental and may change
142630a01277SRob Bradford  substantially between releases: TDX, SGX.
142730a01277SRob Bradford
142830a01277SRob Bradford### Network device rate limiting
142930a01277SRob Bradford
143030a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
143130a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
143230a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
143330a01277SRob Bradford
143430a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
143530a01277SRob Bradford
143630a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
143730a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
143830a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
143930a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
144030a01277SRob Bradford
144130a01277SRob Bradford### `--api-socket` supports file descriptor parameter
144230a01277SRob Bradford
144330a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
144430a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
144530a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
144630a01277SRob Bradford
144730a01277SRob Bradford### Bug fixes
144830a01277SRob Bradford
144930a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
145030a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
145130a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
145230a01277SRob Bradford  reprogram them (#1797,#1798)
145330a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
145430a01277SRob Bradford  exhaustion on the host) (#2517)
145530a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
145630a01277SRob Bradford  prevents snapshot & restore working (#2535)
145730a01277SRob Bradford
145830a01277SRob Bradford### Deprecations
145930a01277SRob Bradford
146030a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
146130a01277SRob Bradford
146230a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
146330a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
146430a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
146530a01277SRob Bradford
146630a01277SRob Bradford### Contributors
146730a01277SRob Bradford
146830a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
146930a01277SRob Bradford
147030a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
147130a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
147230a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
147330a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
147430a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
147530a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
147630a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
147730a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
147830a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
147930a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
148030a01277SRob Bradford* William Douglas <william.douglas@intel.com>
148130a01277SRob Bradford
148230a01277SRob Bradford# v0.14.1
148330a01277SRob Bradford
148430a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
148530a01277SRob Bradfordin this release:
148630a01277SRob Bradford
148730a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
148830a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
148930a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
149030a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
149130a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
149230a01277SRob Bradford
149340c63dcfSRob Bradford# v0.14.0
149440c63dcfSRob Bradford
149540c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
149640c63dcfSRob Bradford
149740c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
149840c63dcfSRob Bradford
149940c63dcfSRob Bradford### Structured event monitoring
150040c63dcfSRob Bradford
150140c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
150240c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
150340c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
150440c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
150540c63dcfSRob BradfordHypervisor API surface.
150640c63dcfSRob Bradford
150740c63dcfSRob Bradford### MSHV improvements
150840c63dcfSRob Bradford
150940c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
151040c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
151140c63dcfSRob Bradfordthe MSHV support.
151240c63dcfSRob Bradford
151340c63dcfSRob Bradford### Improved aarch64 platform
151440c63dcfSRob Bradford
151540c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
151640c63dcfSRob BradfordVM including an enhanced serial UART.
151740c63dcfSRob Bradford
151840c63dcfSRob Bradford### Updated hotplug documentation
151940c63dcfSRob Bradford
152040c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
152140c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
152240c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
152340c63dcfSRob Bradford
152440c63dcfSRob Bradford### PTY control for serial and `virtio-console`
152540c63dcfSRob Bradford
152640c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
152740c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
152840c63dcfSRob BradfordPTY subsystem.
152940c63dcfSRob Bradford
153040c63dcfSRob Bradford### Block device rate limiting
153140c63dcfSRob Bradford
153240c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
153340c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
153430a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
153540c63dcfSRob Bradford
153640c63dcfSRob Bradford
153740c63dcfSRob Bradford### Deprecations
153840c63dcfSRob Bradford
153940c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
154040c63dcfSRob Bradford
154140c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
154240c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
154340c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
154440c63dcfSRob Bradford
154540c63dcfSRob Bradford
154640c63dcfSRob Bradford### Contributors
154740c63dcfSRob Bradford
154840c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
154940c63dcfSRob Bradfordsome new faces.
155040c63dcfSRob Bradford
155140c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
155240c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
155340c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
155440c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
155540c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
155640c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
155740c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
155840c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
155940c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
156040c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
156140c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
156240c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
156340c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
156440c63dcfSRob Bradford
1565f58b6f84SRob Bradford# v0.13.0
1566f58b6f84SRob Bradford
1567f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1568f58b6f84SRob Bradford
1569f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1570f58b6f84SRob Bradford
1571f58b6f84SRob Bradford### Wider VFIO device support
1572f58b6f84SRob Bradford
1573f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1574f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1575f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1576f58b6f84SRob Bradforddrivers.
1577f58b6f84SRob Bradford
157840c63dcfSRob Bradford### Improved huge page support
1579f58b6f84SRob Bradford
1580f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1581f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1582f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1583f58b6f84SRob Bradforddesired size in their pool.
1584f58b6f84SRob Bradford
1585f58b6f84SRob Bradford### MACvTAP support
1586f58b6f84SRob Bradford
1587f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1588f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1589f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1590f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1591f58b6f84SRob Bradford
1592f58b6f84SRob Bradford### VHD disk image support
1593f58b6f84SRob Bradford
1594f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1595f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1596f58b6f84SRob Bradford
1597f58b6f84SRob Bradford### Improved Virtio device threading
1598f58b6f84SRob Bradford
1599f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1600f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1601f58b6f84SRob Bradfordpredictable name derived from the device id.
1602f58b6f84SRob Bradford
1603f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1604f58b6f84SRob Bradford
1605f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1606f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1607f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1608f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1609f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1610f58b6f84SRob Bradford
1611f58b6f84SRob Bradford### Contributors
1612f58b6f84SRob Bradford
1613f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1614f58b6f84SRob Bradfordsome new faces.
1615f58b6f84SRob Bradford
1616f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1617f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1618f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1619f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1620f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1621f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1622f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1623f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1624f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1625f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1626f58b6f84SRob Bradford
1627d42b5084SRob Bradford# v0.12.0
1628d42b5084SRob Bradford
1629d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1630d42b5084SRob Bradford
1631d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1632d42b5084SRob Bradford
1633d42b5084SRob Bradford### ARM64 enhancements
1634d42b5084SRob Bradford
1635d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1636d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1637d42b5084SRob Bradford
1638d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1639d42b5084SRob Bradford
1640d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1641d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1642d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1643d42b5084SRob Bradfordremoved.
1644d42b5084SRob Bradford
1645d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1646d42b5084SRob Bradford
1647d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1648d42b5084SRob Bradfordinstead hosted in [it's own
1649d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1650d42b5084SRob Bradford
1651d42b5084SRob Bradford### Enhanced "info" API
1652d42b5084SRob Bradford
1653d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1654d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1655d42b5084SRob Bradford
1656d42b5084SRob Bradford### Contributors
1657d42b5084SRob Bradford
1658d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1659d42b5084SRob Bradford
1660d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1661d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1662d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1663d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1664d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1665d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1666d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1667d42b5084SRob Bradford
16687dcd3affSRob Bradford# v0.11.0
16697dcd3affSRob Bradford
16707dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
16717dcd3affSRob Bradford
16727dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
16737dcd3affSRob Bradford
16747dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
16757dcd3affSRob Bradford
16767dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
16777dcd3affSRob Bradfordbe used for a significantly higher performance block device.
16787dcd3affSRob Bradford
16797dcd3affSRob Bradford### Windows Guest Support
16807dcd3affSRob Bradford
16817dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
16827dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
16837dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
16847dcd3affSRob Bradforddocumentation](docs/windows.md).
16857dcd3affSRob Bradford
16867dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
16877dcd3affSRob Bradford
16887dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
16897dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
16907dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
16917dcd3affSRob Bradford
1692d00eb4aaSRob Bradford### `virtio-mmio` Removal
16937dcd3affSRob Bradford
16947dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
16957dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
16967dcd3affSRob Bradfordreduce the testing burden of the project.
16977dcd3affSRob Bradford
16987dcd3affSRob Bradford### Snapshot/Restore support for ARM64
16997dcd3affSRob Bradford
17007dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
17017dcd3affSRob Bradfordimplemented.
17027dcd3affSRob Bradford
17037dcd3affSRob Bradford### Improved Linux Boot Time
17047dcd3affSRob Bradford
17057dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
17067dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
17077dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
17087dcd3affSRob Bradford
17097dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
17107dcd3affSRob Bradford
17117dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
17127dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
17137dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
17147dcd3affSRob Bradfordresources.
17157dcd3affSRob Bradford
17167dcd3affSRob Bradford### Default Log Level Changed
17177dcd3affSRob Bradford
17187dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
17197dcd3affSRob Bradfordeasier to see potential issues. New [logging
17207dcd3affSRob Bradforddocumentation](docs/logging) was also added.
17217dcd3affSRob Bradford
17227dcd3affSRob Bradford### New `--balloon` Parameter Added
17237dcd3affSRob Bradford
17247dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
17257dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
17267dcd3affSRob Bradfordcontrols without overloading `--memory`.
17277dcd3affSRob Bradford
17287dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
17297dcd3affSRob Bradford
17307dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
17317dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
17327dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
17337dcd3affSRob Bradford
17347dcd3affSRob Bradford### Notable Bug Fixes
17357dcd3affSRob Bradford
17367dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
17377dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
17387dcd3affSRob Bradford* CPU identification string is now exposed to the guest
17397dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
17407dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
17417dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
17427dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
17437dcd3affSRob Bradford  can be used (#1803)
17447dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
17457dcd3affSRob Bradford  correctly
17467dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
17477dcd3affSRob Bradford  correctly
17487dcd3affSRob Bradford
17497dcd3affSRob Bradford### Contributors
17507dcd3affSRob Bradford
17517dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
17527dcd3affSRob Bradford
17537dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
17547dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
17557dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
17567dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
17577dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
17587dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
17597dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
17607dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
17617dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
17627dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
17637dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
17647dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
17657dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
17667dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17677dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
17687dcd3affSRob Bradford
17697dcd3affSRob Bradford
1770198bd551SRob Bradford# v0.10.0
1771198bd551SRob Bradford
1772198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1773198bd551SRob Bradford
1774198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1775198bd551SRob Bradford
1776198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1777198bd551SRob Bradford
1778198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1779198bd551SRob Bradford
1780198bd551SRob Bradford### Memory Zones
1781198bd551SRob Bradford
1782198bd551SRob 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).
1783198bd551SRob Bradford
1784198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1785198bd551SRob Bradford
1786198bd551SRob 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`.
1787198bd551SRob Bradford
1788198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1789198bd551SRob Bradford
1790198bd551SRob 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.
1791198bd551SRob Bradford
1792198bd551SRob Bradford### Notable Bug Fixes
1793198bd551SRob Bradford
1794198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1795198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1796198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1797198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1798198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1799198bd551SRob Bradford
1800198bd551SRob Bradford### Contributors
1801198bd551SRob Bradford
1802198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1803198bd551SRob Bradford
1804198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1805198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1806198bd551SRob Bradford* Anatol Belski <ab@php.net>
1807198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1808198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1809198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1810198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1811198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1812198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1813198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1814198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1815198bd551SRob Bradford
1816d714cf81SRob Bradford# v0.9.0
1817d714cf81SRob Bradford
1818d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1819d714cf81SRob Bradford
1820d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1821d714cf81SRob Bradford
1822d714cf81SRob Bradford### `io_uring` Based Block Device Support
1823d714cf81SRob Bradford
1824d714cf81SRob 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.
1825d714cf81SRob Bradford
1826d714cf81SRob Bradford### Block and Network Device Statistics
1827d714cf81SRob Bradford
1828d714cf81SRob 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.
1829d714cf81SRob Bradford
1830d714cf81SRob Bradford### HTTP API Responses
1831d714cf81SRob Bradford
1832d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1833d714cf81SRob Bradford
1834d714cf81SRob Bradford### CPU Topology
1835d714cf81SRob Bradford
1836d714cf81SRob 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.
1837d714cf81SRob Bradford
1838d714cf81SRob Bradford### Release Build Optimization
1839d714cf81SRob Bradford
1840d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1841d714cf81SRob Bradford
1842d714cf81SRob Bradford### Hypervisor Abstraction
1843d714cf81SRob Bradford
1844d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1845d714cf81SRob Bradford
1846d714cf81SRob Bradford### Snapshot/Restore Improvements
1847d714cf81SRob Bradford
1848d714cf81SRob 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.
1849d714cf81SRob Bradford
1850d714cf81SRob Bradford### Virtio Memory Ballooning Support
1851d714cf81SRob Bradford
1852d714cf81SRob 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.
1853d714cf81SRob Bradford
1854d714cf81SRob Bradford### Enhancements to ARM64 Support
1855d714cf81SRob Bradford
1856d714cf81SRob 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.
1857d714cf81SRob Bradford
1858d714cf81SRob Bradford### Intel SGX Support
1859d714cf81SRob Bradford
1860d714cf81SRob 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).
1861d714cf81SRob Bradford
1862d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1863d714cf81SRob Bradford
1864d714cf81SRob 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.
1865d714cf81SRob Bradford
1866d714cf81SRob Bradford### Notable Bug Fixes
1867d714cf81SRob Bradford
1868d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1869d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1870d714cf81SRob 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).
1871d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1872d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1873d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1874d714cf81SRob Bradford
1875d714cf81SRob Bradford### Contributors
1876d714cf81SRob Bradford
1877d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1878d714cf81SRob Bradford
1879d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1880d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1881d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1882d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1883d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1884d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1885d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1886d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1887d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1888d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1889d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1890d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1891d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1892d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1893d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1894d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1895d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1896d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1897d714cf81SRob Bradford
1898d714cf81SRob Bradford
189952b83969SRob Bradford# v0.8.0
190052b83969SRob Bradford
190152b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
190252b83969SRob Bradford
190352b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
190452b83969SRob Bradford
190552b83969SRob Bradford### Experimental Snapshot and Restore Support
190652b83969SRob Bradford
190752b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
190852b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
190952b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
191052b83969SRob Bradfordoriginal VM at the point it was paused.
191152b83969SRob Bradford
191252b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
191352b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
191452b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
191552b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
191652b83969SRob Bradford(#1176).
191752b83969SRob Bradford
191852b83969SRob Bradford### Experimental ARM64 Support
191952b83969SRob Bradford
192052b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
192152b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
192252b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
192352b83969SRob Bradford
192452b83969SRob Bradford### Support for Using 5-level Paging in Guests
192552b83969SRob Bradford
192652b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
192752b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
192852b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
192952b83969SRob Bradfordwork due to current limitations in the PVH boot process.
193052b83969SRob Bradford
193152b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
193252b83969SRob Bradford
193352b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
193452b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
193552b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
193652b83969SRob Bradfordthe guest must service.
193752b83969SRob Bradford
193852b83969SRob Bradford### `vhost_user_fs` Improvements
193952b83969SRob Bradford
194052b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
194152b83969SRob Bradford
194252b83969SRob Bradford
194352b83969SRob Bradford### Notable Bug Fixes
194452b83969SRob Bradford
194552b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
194652b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
194752b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
194852b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
194952b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
195052b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
195152b83969SRob Bradford  #1216).
195252b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
195352b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
195452b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
195552b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
195652b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
195752b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
195852b83969SRob Bradford  (#751).
195952b83969SRob Bradford
196052b83969SRob Bradford### Command Line and API Changes
196152b83969SRob Bradford
196252b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
196352b83969SRob Bradford
196452b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
196552b83969SRob Bradford  rather than `sock` in some cases.
196652b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
196752b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
196852b83969SRob Bradford  offered for negotiation.
196952b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
197052b83969SRob Bradford  address for the `tap` device on the host.
197152b83969SRob Bradford
197252b83969SRob Bradford### Contributors
197352b83969SRob Bradford
197452b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
197552b83969SRob Bradford
197652b83969SRob Bradford* Anatol Belski <ab@php.net>
197752b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
197852b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
197952b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
198052b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
198152b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
198252b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
198352b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
198452b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
198552b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
198652b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
198752b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
198852b83969SRob Bradford
198996be8229SRob Bradford# v0.7.0
199096be8229SRob Bradford
199196be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
199296be8229SRob Bradford
199396be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
199496be8229SRob Bradford
199596be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
199696be8229SRob Bradford
199796be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
199896be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
199996be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
20005c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
200196be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
200296be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
200396be8229SRob Bradforddevices to ease their removal.
200496be8229SRob Bradford
200596be8229SRob Bradford### Alternative `libc` Support
200696be8229SRob Bradford
200796be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
200896be8229SRob Bradfordcontains a static binary compiled using that toolchain.
200996be8229SRob Bradford
201096be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
201196be8229SRob Bradford
201296be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
201396be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
201496be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
201596be8229SRob Bradfordis passed when the devices are created.
201696be8229SRob Bradford
201796be8229SRob Bradford### Initial RamFS Support
201896be8229SRob Bradford
201996be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
202096be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
202196be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
202296be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
202396be8229SRob Bradfordminimal image.
202496be8229SRob Bradford
202596be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
202696be8229SRob Bradford
202796be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
202896be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
202996be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
203096be8229SRob Bradfordrequires kernel patches to be able to support it.
203196be8229SRob Bradford
203296be8229SRob Bradford### `Seccomp` Sandboxing
203396be8229SRob Bradford
203496be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
203596be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
203696be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
203796be8229SRob Bradford
203896be8229SRob Bradford### Updated Distribution Support
203996be8229SRob Bradford
204096be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
204196be8229SRob Bradforddistributions and is part of our regular testing programme.
204296be8229SRob Bradford
204396be8229SRob Bradford### Command Line and API Changes
204496be8229SRob Bradford
204596be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
204696be8229SRob Bradford
204796be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
204896be8229SRob Bradford  If no name is specified the VMM chooses one.
204996be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
205096be8229SRob Bradford  memory instead of providing a path.
205196be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
205296be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
205396be8229SRob Bradford  option and replaced it with a single optional field.
205496be8229SRob Bradford* There is enhanced validation of the command line and API provided
205596be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
205696be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
205796be8229SRob Bradford  device.
205896be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
205996be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
206096be8229SRob Bradford  has appropriate new HTTP endpoints too.
206196be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
206296be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
206396be8229SRob Bradford  to provide the equivalent of a read-only file.
206496be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
206596be8229SRob Bradford  with those used by `--disk`.
206696be8229SRob Bradford
206796be8229SRob Bradford### Contributors
206896be8229SRob Bradford
206996be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
207096be8229SRob Bradford
207196be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
207296be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
207396be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
207496be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
207596be8229SRob Bradford* Dean Sheather <dean@coder.com>
207696be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
207796be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
207896be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
207996be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
208096be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
208196be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
208296be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
208396be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
208496be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
208596be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
208696be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
208796be8229SRob Bradford
208803cb26ccSSamuel Ortiz# v0.6.0
208903cb26ccSSamuel Ortiz
209003cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
209103cb26ccSSamuel Ortiz
209203cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
209303cb26ccSSamuel Ortiz
209403cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
209503cb26ccSSamuel Ortiz
209603cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
209703cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
209803cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
209903cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
210003cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
210103cb26ccSSamuel Ortiz
210203cb26ccSSamuel Ortiz### Shared Filesystem Improvements
210303cb26ccSSamuel Ortiz
210403cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
210503cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
210603cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
210703cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
210803cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
210903cb26ccSSamuel Ortiz
211003cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
211103cb26ccSSamuel Ortiz
211203cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
211303cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
211403cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
211503cb26ccSSamuel Ortizinto their own, separate processes.
21165c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
211703cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
211803cb26ccSSamuel Ortiz
211903cb26ccSSamuel Ortiz### Command Line Interface
212003cb26ccSSamuel Ortiz
212103cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
212237a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
212337a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
212437a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
212537a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
212637a2c13aSAlyssa Rossis created with each build and available e.g. at
212703cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
212803cb26ccSSamuel Ortiz
212903cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
213003cb26ccSSamuel Ortizcommands.
213103cb26ccSSamuel Ortiz
213203cb26ccSSamuel Ortiz### PVH Boot
213303cb26ccSSamuel Ortiz
213403cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
213503cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
213603cb26ccSSamuel Ortiz
213703cb26ccSSamuel Ortiz### Contributors
213803cb26ccSSamuel Ortiz
213903cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
214003cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
214103cb26ccSSamuel Ortiz
214203cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
214303cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
214403cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
214503cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
214603cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
214703cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
214803cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
214903cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
215003cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
215103cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
215203cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
215303cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
215403cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
215503cb26ccSSamuel Ortiz
215694f2fc33SRob Bradford# v0.5.1
215794f2fc33SRob Bradford
215894f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
215994f2fc33SRob Bradford
216094f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
216194f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
216294f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
216394f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
216494f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
21658e8a7b6dSSamuel Ortiz
21662f395e60SSamuel Ortiz# v0.5.0
21672f395e60SSamuel Ortiz
21682f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
21692f395e60SSamuel Ortiz
21702f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
21712f395e60SSamuel Ortiz
21722f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
21732f395e60SSamuel Ortiz
21742f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
21752f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
21762f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
21772f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
21782f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
21792f395e60SSamuel Ortiz
21802f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
21812f395e60SSamuel Ortiz
21822f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
21832f395e60SSamuel Ortiz
21842f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
21852f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
21862f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
21872f395e60SSamuel Ortiz
21882f395e60SSamuel Ortiz### New Interrupt Management Framework
21892f395e60SSamuel Ortiz
21902f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
21912f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
21922f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
21932f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
21942f395e60SSamuel Ortizvirtio ones.
21952f395e60SSamuel Ortiz
21962f395e60SSamuel Ortiz### Development Tools
21972f395e60SSamuel Ortiz
21982f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
21992f395e60SSamuel Ortizbuild, development and testing tools.
22002f395e60SSamuel OrtizSomehow similar to the excellent
22012f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
220237a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
22032f395e60SSamuel Ortiz
22042f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
22052f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
22062f395e60SSamuel Ortiz
22072f395e60SSamuel Ortiz### Kata Containers Integration
22082f395e60SSamuel Ortiz
22092f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
22102f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
22112f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
22122f395e60SSamuel Ortizintegrated into the project's CI.
22132f395e60SSamuel Ortiz
22142f395e60SSamuel Ortiz### Contributors
22152f395e60SSamuel Ortiz
22162f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
22172f395e60SSamuel Ortiz
22182f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
22192f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
22202f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
22212f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
22222f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
22232f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
22242f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
22252f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
22262f395e60SSamuel Ortiz
2227cec884e8SSamuel Ortiz# v0.4.0
2228cec884e8SSamuel Ortiz
2229cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2230cec884e8SSamuel Ortiz
2231cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2232cec884e8SSamuel Ortiz
2233cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2234cec884e8SSamuel Ortiz
2235e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2236cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2237cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2238cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
223937a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2240cec884e8SSamuel Ortiz
2241cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2242cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2243cec884e8SSamuel Ortiz
2244cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2245cec884e8SSamuel Ortiz
2246cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2247cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2248cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2249cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2250cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2251cec884e8SSamuel Ortiz
2252cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2253cec884e8SSamuel Ortiz
2254cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2255cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2256cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2257cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2258cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2259cec884e8SSamuel Ortiz
2260cec884e8SSamuel Ortiz### Guest pause and resume
2261cec884e8SSamuel Ortiz
22625c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2263cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2264cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2265cec884e8SSamuel Ortizand resume capabilities.
2266cec884e8SSamuel Ortiz
2267cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2268cec884e8SSamuel Ortiz
2269cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2270cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2271cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2272cec884e8SSamuel Ortizdefault.
2273cec884e8SSamuel Ortiz
2274cec884e8SSamuel Ortiz### PCI BAR reprogramming
2275cec884e8SSamuel Ortiz
2276cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2277cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2278cec884e8SSamuel Ortizreprogramming.
2279cec884e8SSamuel Ortiz
2280cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2281cec884e8SSamuel Ortiz
2282cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2283cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2284cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2285cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2286cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2287cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2288cec884e8SSamuel Ortiztemporarily fork.
2289cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2290cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2291cec884e8SSamuel Ortiz
2292cec884e8SSamuel Ortiz### Contributors
2293cec884e8SSamuel Ortiz
2294cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2295cec884e8SSamuel Ortiz
2296cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2297cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2298cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2299cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2300cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2301cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2302cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2303cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2304cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2305cec884e8SSamuel Ortiz
23068e8a7b6dSSamuel Ortiz# v0.3.0
23078e8a7b6dSSamuel Ortiz
23088ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
23098e8a7b6dSSamuel Ortiz
23108e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
23118e8a7b6dSSamuel Ortiz
23128e8a7b6dSSamuel Ortiz### Block device offloading
23138e8a7b6dSSamuel Ortiz
23148e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
23158e8a7b6dSSamuel Ortizand we added support for
23168e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
23178e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
23188e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
23198e8a7b6dSSamuel Ortizbackend.
23208e8a7b6dSSamuel Ortiz
23218e8a7b6dSSamuel Ortiz### Network device backend
23228e8a7b6dSSamuel Ortiz
23238e8a7b6dSSamuel OrtizThe previous release provided support for
23248e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
23258e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
23268e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
23278e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
23288e8a7b6dSSamuel Ortiz
23298e8a7b6dSSamuel Ortiz### Virtual sockets
23308e8a7b6dSSamuel Ortiz
23318e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
23328e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
23338e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
23348e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
23358e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
23368e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
23378e8a7b6dSSamuel Ortiz
23388e8a7b6dSSamuel Ortiz### HTTP based API
23398e8a7b6dSSamuel Ortiz
23408e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
23418e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
23428e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
23438e8a7b6dSSamuel Ortiznext release cycle.
23448e8a7b6dSSamuel Ortiz
23458e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
23468e8a7b6dSSamuel Ortiz
23478e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
23488e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
23498e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
23508e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
23518e8a7b6dSSamuel Ortiz
23528e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
23538e8a7b6dSSamuel Ortiz
23548e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
235537a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
235637a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
23578e8a7b6dSSamuel Ortiz
23588e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
23598e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
23608e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
23618e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
23628e8a7b6dSSamuel Ortizsetting.
23638e8a7b6dSSamuel Ortiz
23648e8a7b6dSSamuel Ortiz### Ubuntu 19.10
23658e8a7b6dSSamuel Ortiz
23668ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
23678e8a7b6dSSamuel Ortizwe can now support the latest
23688e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
23698e8a7b6dSSamuel Ortiz
23708e8a7b6dSSamuel Ortiz### Large memory guests
23718e8a7b6dSSamuel Ortiz
23728e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
23738e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
23747688e6e2SSamuel Ortiz
2375d784ac29SSamuel Ortiz# v0.2.0
2376d784ac29SSamuel Ortiz
23778ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2378d784ac29SSamuel Ortiz
2379d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2380d784ac29SSamuel Ortiz
2381d784ac29SSamuel Ortiz### Network device offloading
2382d784ac29SSamuel Ortiz
2383d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2384d784ac29SSamuel Ortizprocesses, we added support for
2385d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2386d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2387d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2388d784ac29SSamuel Ortiz
2389d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2390d784ac29SSamuel Ortiz
2391d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2392d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2393d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2394d784ac29SSamuel Ortizcleanly reboot and shutdown.
2395d784ac29SSamuel Ortiz
2396d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2397d784ac29SSamuel Ortizenabled by default.
2398d784ac29SSamuel Ortiz
2399d784ac29SSamuel Ortiz### Debug I/O port
2400d784ac29SSamuel Ortiz
2401d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2402d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2403d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2404d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
240537a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
240637a2c13aSAlyssa Rossdetails.
2407d784ac29SSamuel Ortiz
2408d784ac29SSamuel Ortiz### Improved direct device assignment
2409d784ac29SSamuel Ortiz
2410d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2411d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2412d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2413d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2414d784ac29SSamuel Ortizdirectly assigned devices.
2415d784ac29SSamuel Ortiz
2416d784ac29SSamuel Ortiz### Improved shared filesystem
2417d784ac29SSamuel Ortiz
2418d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2419d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2420d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2421d784ac29SSamuel Ortizmemory footprint.
2422d784ac29SSamuel Ortiz
2423d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2424d784ac29SSamuel Ortiz
24258ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2426d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2427d784ac29SSamuel Ortizour CI pipeline.
2428d784ac29SSamuel Ortiz
242993b77530SSamuel Ortiz# v0.1.0
243093b77530SSamuel Ortiz
24318ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
243293b77530SSamuel Ortiz
243393b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
243493b77530SSamuel Ortiz
243593b77530SSamuel Ortiz### Shared filesystem
243693b77530SSamuel Ortiz
243793b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
243893b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
243993b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
244093b77530SSamuel Ortiz
244137a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
244237a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
244393b77530SSamuel Ortiz
244493b77530SSamuel Ortiz### Initial direct device assignment support
244593b77530SSamuel Ortiz
244693b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
244793b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
244893b77530SSamuel Ortizphysical devices into its guest.
244993b77530SSamuel Ortiz
245037a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
245137a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
245293b77530SSamuel Ortiz
245393b77530SSamuel Ortiz### Userspace IOAPIC
245493b77530SSamuel Ortiz
245593b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
245693b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
245793b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
245893b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
245993b77530SSamuel Ortiz
246093b77530SSamuel Ortiz### Virtual persistent memory
246193b77530SSamuel Ortiz
246293b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
246393b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
246493b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
246593b77530SSamuel Ortiz
246693b77530SSamuel Ortiz### Linux kernel bzImage
246793b77530SSamuel Ortiz
246893b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
246993b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
247093b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
247193b77530SSamuel Ortizdistribution kernel image.
247293b77530SSamuel Ortiz
247393b77530SSamuel Ortiz### Console over virtio
247493b77530SSamuel Ortiz
247593b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
247693b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
247793b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
247893b77530SSamuel Ortizimplementation.
247993b77530SSamuel Ortiz
248093b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
248193b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
248293b77530SSamuel Ortiz`--serial tty --console off` from the command line.
248393b77530SSamuel Ortiz
248493b77530SSamuel Ortiz### Unit testing
248593b77530SSamuel Ortiz
248693b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
248793b77530SSamuel Ortiz
248893b77530SSamuel Ortiz### Integration tests parallelization
248993b77530SSamuel Ortiz
249093b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
249193b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2492