xref: /cloud-hypervisor/release-notes.md (revision 42ca292dce4292f0f69bd7cecd7db09eee3b64bb)
1*42ca292dSRob Bradford- [v32.0](#v320)
2*42ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
3*42ca292dSRob Bradford    - [API Changes](#api-changes)
4*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes)
5*42ca292dSRob Bradford    - [Contributors](#contributors)
6*42ca292dSRob Bradford- [v31.1](#v311)
7f3522e85SMichael Zhao- [v31.0](#v310)
8f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
9f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
10f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
11f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
12f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements)
13*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
14*42ca292dSRob Bradford    - [Contributors](#contributors-1)
15ece0e6faSBo Chen- [v30.0](#v300)
16ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
17ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
18ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
19f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements-1)
20*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
21*42ca292dSRob Bradford    - [Contributors](#contributors-2)
22ece0e6faSBo Chen- [v28.2](#v282)
2322cf8c97SRob Bradford- [v29.0](#v290)
2422cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
2522cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
2622cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
2722cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
2822cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
2922cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
3022cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
31*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
3222cf8c97SRob Bradford    - [Removals](#removals)
3322cf8c97SRob Bradford    - [Deprecations](#deprecations)
34*42ca292dSRob Bradford    - [Contributors](#contributors-3)
3522cf8c97SRob Bradford- [v28.1](#v281)
3666460765SRob Bradford- [v28.0](#v280)
3766460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
3866460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
3966460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
4066460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
4166460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
42*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
4322cf8c97SRob Bradford    - [Removals](#removals-1)
44*42ca292dSRob Bradford    - [Contributors](#contributors-4)
452ba6a9bfSRob Bradford- [v27.0](#v270)
462ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
472ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
482ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
492ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
502ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
512ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
522ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
53*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
54f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
55*42ca292dSRob Bradford    - [Contributors](#contributors-5)
56f3522e85SMichael Zhao- [v26.0](#v260)
57f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
58f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
59*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
6022cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
6166460765SRob Bradford    - [Removals](#removals-2)
62*42ca292dSRob Bradford    - [Contributors](#contributors-6)
6322cf8c97SRob Bradford- [v25.0](#v250)
6422cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
6522cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
66*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
6722cf8c97SRob Bradford    - [Removals](#removals-3)
68*42ca292dSRob Bradford    - [Contributors](#contributors-7)
690150de55SSebastien Boeuf- [v24.0](#v240)
700150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
710150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
720150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
730150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
74*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
750150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
7622cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
770150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
78*42ca292dSRob Bradford    - [Contributors](#contributors-8)
790150de55SSebastien Boeuf- [v23.1](#v231)
800c9c56f5SRob Bradford- [v23.0](#v230)
810c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
820c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
830c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
840c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
85*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
8622cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
87*42ca292dSRob Bradford    - [Contributors](#contributors-9)
880c9c56f5SRob Bradford- [v22.1](#v221)
896aa10938SRob Bradford- [v22.0](#v220)
906aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
916aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
926aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
936aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
946aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
956aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
960c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
976aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
98*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
99*42ca292dSRob Bradford    - [Contributors](#contributors-10)
10095ca7997SRob Bradford- [v21.0](#v210)
10195ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
10295ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
103*42ca292dSRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-11)
104*42ca292dSRob Bradford    - [Contributors](#contributors-11)
10595ca7997SRob Bradford- [v20.2](#v202)
10695ca7997SRob Bradford- [v20.1](#v201)
1077fc0776aSSebastien Boeuf- [v20.0](#v200)
1087fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1097fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1107fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1117fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1127fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
113*42ca292dSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-12)
114*42ca292dSRob Bradford    - [Contributors](#contributors-12)
115d00eb4aaSRob Bradford- [v19.0](#v190)
116d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
117d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
118d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
119d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
120d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
121d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
122*42ca292dSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-13)
123*42ca292dSRob Bradford    - [Contributors](#contributors-13)
1242c4f8d22SRob Bradford- [v18.0](#v180)
1252c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1262c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1272c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1282c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1292c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1302c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1312c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1322c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
133*42ca292dSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-14)
134*42ca292dSRob Bradford    - [Contributors](#contributors-14)
135e6db5999SRob Bradford- [v17.0](#v170)
136e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
137e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
138e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
139e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
140e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
141*42ca292dSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-15)
142*42ca292dSRob Bradford    - [Contributors](#contributors-15)
1435ed8e01fSRob Bradford- [v16.0](#v160)
1445ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1455ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1465ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
147*42ca292dSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-16)
1485ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
149*42ca292dSRob Bradford    - [Contributors](#contributors-16)
15030a01277SRob Bradford- [v15.0](#v150)
15130a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
15230a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
15330a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
154f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
15530a01277SRob Bradford    - [Bug fixes](#bug-fixes)
15622cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
157*42ca292dSRob Bradford    - [Contributors](#contributors-17)
15830a01277SRob Bradford- [v0.14.1](#v0141)
15940c63dcfSRob Bradford- [v0.14.0](#v0140)
16040c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
16140c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
16240c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
16340c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
16440c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
16540c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
16622cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
167*42ca292dSRob Bradford    - [Contributors](#contributors-18)
168f58b6f84SRob Bradford- [v0.13.0](#v0130)
169f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
17040c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
171f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
172f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
173f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
174f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
175*42ca292dSRob Bradford    - [Contributors](#contributors-19)
176d42b5084SRob Bradford- [v0.12.0](#v0120)
177d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
178d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
179d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
180d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
181*42ca292dSRob Bradford    - [Contributors](#contributors-20)
1827dcd3affSRob Bradford- [v0.11.0](#v0110)
1837dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1847dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1857dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
186d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1877dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1887dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1897dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1907dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
191f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
1927dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
193*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-17)
194*42ca292dSRob Bradford    - [Contributors](#contributors-21)
195198bd551SRob Bradford- [v0.10.0](#v0100)
196198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
197198bd551SRob Bradford    - [Memory Zones](#memory-zones)
198198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
199198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
200*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-18)
201*42ca292dSRob Bradford    - [Contributors](#contributors-22)
202d714cf81SRob Bradford- [v0.9.0](#v090)
203d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
204d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
205d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
206d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
207d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
208d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
209d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
210d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
211d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
212d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
213198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
214*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-19)
215*42ca292dSRob Bradford    - [Contributors](#contributors-23)
216d714cf81SRob Bradford- [v0.8.0](#v080)
217d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
218d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
219d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
220d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
221d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
222*42ca292dSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-20)
223d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
224*42ca292dSRob Bradford    - [Contributors](#contributors-24)
22596be8229SRob Bradford- [v0.7.0](#v070)
22696be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
22796be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
22896be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
22996be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
23096be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
23196be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
23296be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
23352b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
234*42ca292dSRob Bradford    - [Contributors](#contributors-25)
23503cb26ccSSamuel Ortiz- [v0.6.0](#v060)
23603cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
23703cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
23803cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
23903cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
24003cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
241*42ca292dSRob Bradford    - [Contributors](#contributors-26)
24294f2fc33SRob Bradford- [v0.5.1](#v051)
2432f395e60SSamuel Ortiz- [v0.5.0](#v050)
24494f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
24594f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
24694f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
24794f2fc33SRob Bradford    - [Development Tools](#development-tools)
24894f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
249*42ca292dSRob Bradford    - [Contributors](#contributors-27)
250cec884e8SSamuel Ortiz- [v0.4.0](#v040)
25194f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
25294f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
25394f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
25494f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
25594f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
25694f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
25794f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
258*42ca292dSRob Bradford    - [Contributors](#contributors-28)
2598e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
26094f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
26194f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
26294f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
26394f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
26494f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
26594f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
26694f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
26794f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2687688e6e2SSamuel Ortiz- [v0.2.0](#v020)
26994f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
27094f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
27194f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
27294f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
27394f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
27494f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2757688e6e2SSamuel Ortiz- [v0.1.0](#v010)
27694f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
27794f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
27894f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
27994f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
28094f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
28194f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
28294f2fc33SRob Bradford    - [Unit testing](#unit-testing)
28394f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
28494f2fc33SRob Bradford
285*42ca292dSRob Bradford# v32.0
286*42ca292dSRob Bradford
287*42ca292dSRob BradfordThis release has been tracked in our [roadmap
288*42ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
289*42ca292dSRob Bradfordv32.0. The following user visible changes have been made:
290*42ca292dSRob Bradford
291*42ca292dSRob Bradford### Increased PCI Segment Limit
292*42ca292dSRob Bradford
293*42ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
294*42ca292dSRob Bradford
295*42ca292dSRob Bradford### API Changes
296*42ca292dSRob Bradford
297*42ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
298*42ca292dSRob Bradford  (#5348)
299*42ca292dSRob Bradford
300*42ca292dSRob Bradford### Notable Bug Fixes
301*42ca292dSRob Bradford
302*42ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
303*42ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
304*42ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
305*42ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
306*42ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
307*42ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
308*42ca292dSRob Bradford* Fixes for TTY reset (#5414)
309*42ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
310*42ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
311*42ca292dSRob Bradford
312*42ca292dSRob Bradford### Contributors
313*42ca292dSRob Bradford
314*42ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
315*42ca292dSRob Bradford
316*42ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
317*42ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
318*42ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
319*42ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
320*42ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
321*42ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
322*42ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
323*42ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
324*42ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
325*42ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
326*42ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
327*42ca292dSRob Bradford
328*42ca292dSRob Bradford# v31.1
329*42ca292dSRob Bradford
330*42ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
331*42ca292dSRob Bradford
332*42ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
333*42ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
334*42ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
335*42ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
336*42ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
337*42ca292dSRob Bradford
338f3522e85SMichael Zhao# v31.0
339f3522e85SMichael Zhao
340f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
341f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
342f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
343f3522e85SMichael Zhao
344f3522e85SMichael Zhao### Update to Latest `acpi_tables`
345f3522e85SMichael Zhao
346f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
347f3522e85SMichael ZhaoThere has been significant API changes in the crate.
348f3522e85SMichael Zhao
349f3522e85SMichael Zhao### Update Reference Kernel to 6.2
350f3522e85SMichael Zhao
351f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
352f3522e85SMichael Zhao
353f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
354f3522e85SMichael Zhao
355f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
356f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
357f3522e85SMichael Zhao
358f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
359f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
360f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
361f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
362f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
363f3522e85SMichael Zhao
364f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
365f3522e85SMichael Zhao
366f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
367f3522e85SMichael Zhao
368f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
369f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
370f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
371f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
372f3522e85SMichael Zhao
373f3522e85SMichael Zhao### Documentation Improvements
374f3522e85SMichael Zhao
375f3522e85SMichael Zhao* Various improvements in API document
376f3522e85SMichael Zhao* Improvements in Doc comments
377f3522e85SMichael Zhao* Updated Slack channel information in README
378f3522e85SMichael Zhao
379f3522e85SMichael Zhao### Notable Bug Fixes
380f3522e85SMichael Zhao
381f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
382f3522e85SMichael Zhao  client.
383f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
384f3522e85SMichael Zhao  endpoint.
385f3522e85SMichael Zhao
386f3522e85SMichael Zhao### Contributors
387f3522e85SMichael Zhao
388f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
389f3522e85SMichael Zhao
390f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
391f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
392f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
393f3522e85SMichael Zhao* Dom <peng6662001@163.com>
394f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
395f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
396f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
397f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
398f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
399f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
400f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
401f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
402f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
403f3522e85SMichael Zhao
404ece0e6faSBo Chen# v30.0
405ece0e6faSBo Chen
406ece0e6faSBo ChenThis release has been tracked in our [roadmap
407ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
408ece0e6faSBo Chenv30.0. The following user visible changes have been made:
409ece0e6faSBo Chen
410ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
411ece0e6faSBo Chen
412ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
413ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
414ece0e6faSBo Chenwere several syntax changes:
415ece0e6faSBo Chen
416ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
417ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
418ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
419ece0e6faSBo Chen
420ece0e6faSBo Chen### Basic vfio-user Server Support
421ece0e6faSBo Chen
422ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
423ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
424ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
425ece0e6faSBo Chen`rust-vmm` organization.
426ece0e6faSBo Chen
427ece0e6faSBo Chen### Heap Profiling Support
428ece0e6faSBo Chen
429ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
430ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
431ece0e6faSBo Chen
432ece0e6faSBo Chen### Documentation Improvements
433ece0e6faSBo Chen
434ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
435ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
436ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
437ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
438ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
439ece0e6faSBo Chenexisting 'profiling' documentation.
440ece0e6faSBo Chen
441ece0e6faSBo Chen### Notable Bug Fixes
442ece0e6faSBo Chen
443ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
444ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
445ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
446ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
447ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
448ece0e6faSBo Chen
449ece0e6faSBo Chen### Contributors
450ece0e6faSBo Chen
451ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
452ece0e6faSBo Chen
453ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
454ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
455ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
456ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
457ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
458ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
459ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
460ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
461ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
462ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
463ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
464ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
465ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
466ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
467ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
468ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
469ece0e6faSBo Chen
470ece0e6faSBo Chen# v28.2
471ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
472ece0e6faSBo Chen
473ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
474ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
475ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
476ece0e6faSBo Chen
47722cf8c97SRob Bradford# v29.0
47822cf8c97SRob Bradford
47922cf8c97SRob BradfordThis release has been tracked in our [roadmap
48022cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
48122cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
48222cf8c97SRob Bradford
48322cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
48422cf8c97SRob Bradford
48522cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
48622cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
48722cf8c97SRob Bradford
48822cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
48922cf8c97SRob Bradford
49022cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
49122cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
49222cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
49322cf8c97SRob Bradfordsupported but has worked for some versions.)
49422cf8c97SRob Bradford
49522cf8c97SRob Bradford### Heap Allocation Improvements
49622cf8c97SRob Bradford
49722cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
49822cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
49922cf8c97SRob Bradford
50022cf8c97SRob Bradford### `ch-remote` Improvements
50122cf8c97SRob Bradford
50222cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
50322cf8c97SRob Bradford`ch-remote`.
50422cf8c97SRob Bradford
50522cf8c97SRob Bradford### `AArch64` Documentation Integration
50622cf8c97SRob Bradford
50722cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
50822cf8c97SRob BradfordREADME.
50922cf8c97SRob Bradford
51022cf8c97SRob Bradford### `virtio-block` Counters Enhancement
51122cf8c97SRob Bradford
51222cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
51322cf8c97SRob Bradfordlatency counters.
51422cf8c97SRob Bradford
51522cf8c97SRob Bradford### TCP Offload Control
51622cf8c97SRob Bradford
51722cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
51822cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
51922cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
52022cf8c97SRob Bradford
52122cf8c97SRob Bradford### Notable Bug Fixes
52222cf8c97SRob Bradford
52322cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
52422cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
52522cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
52622cf8c97SRob Bradford  (#4924, #4949)
52722cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
52822cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
52922cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
53022cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
53122cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
53222cf8c97SRob Bradford
53322cf8c97SRob Bradford### Removals
53422cf8c97SRob Bradford
53522cf8c97SRob BradfordNo functionality has been removed in this release.
53622cf8c97SRob Bradford
53722cf8c97SRob Bradford### Deprecations
53822cf8c97SRob Bradford
53922cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
54022cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
54122cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
54222cf8c97SRob Bradford  (#5085)
54322cf8c97SRob Bradford
54422cf8c97SRob Bradford### Contributors
54522cf8c97SRob Bradford
54622cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
54722cf8c97SRob Bradford
54822cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
54922cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
55022cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
55122cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
55222cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
55322cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
55422cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
55522cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
55622cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
55722cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
55822cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
55922cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
56022cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
56122cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
56222cf8c97SRob Bradford
56322cf8c97SRob Bradford
56422cf8c97SRob Bradford# v28.1
56522cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
56622cf8c97SRob Bradford
56722cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
56822cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
56922cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
57022cf8c97SRob Bradford  (#4924, #4949)
57122cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
57222cf8c97SRob Bradford* Improve README and documentation
57322cf8c97SRob Bradford
57466460765SRob Bradford# v28.0
57566460765SRob Bradford
57666460765SRob BradfordThis release has been tracked in our new [roadmap
57766460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
57866460765SRob Bradfordv28.0.
57966460765SRob Bradford
58066460765SRob Bradford### Community Engagement (Reminder)
58166460765SRob Bradford
58266460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
58366460765SRob Bradforddiscussions.  Please consider
58466460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
58566460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
58666460765SRob BradfordHypervisor development.
58766460765SRob Bradford
58866460765SRob Bradford### Long Term Support (LTS) Release
58966460765SRob Bradford
59066460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
59166460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
59266460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
59366460765SRob Bradfordreleases of the LTS.
59466460765SRob Bradford
59566460765SRob Bradford### Virtualised TPM Support
59666460765SRob Bradford
59766460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
59866460765SRob Bradforddocumentation](docs/tpm.md).
59966460765SRob Bradford
60066460765SRob Bradford### Transparent Huge Page Support
60166460765SRob Bradford
60266460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
60366460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
60466460765SRob Bradfordthen this will be used resulting in improved boot performance.
60566460765SRob Bradford
60666460765SRob Bradford### README Quick Start Improved
60766460765SRob Bradford
60866460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
60966460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
61066460765SRob Bradford
61166460765SRob Bradford### Notable Bug Fixes
61266460765SRob Bradford
61366460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
61466460765SRob Bradford  memory consumption (#4835)
61566460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
61666460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
61766460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
61866460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
61966460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
62066460765SRob Bradford  newer Linux kernels (#4744)
62166460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
62266460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
62366460765SRob Bradford
62466460765SRob Bradford### Removals
62566460765SRob Bradford
62666460765SRob BradfordThe following functionality has been removed:
62766460765SRob Bradford
62866460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
62966460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
63066460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
63166460765SRob Bradford
63266460765SRob Bradford### Contributors
63366460765SRob Bradford
63466460765SRob BradfordMany thanks to everyone who has contributed to our release:
63566460765SRob Bradford
63666460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
63766460765SRob Bradford* Bo Chen <chen.bo@intel.com>
63866460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
63966460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
64066460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
64166460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
64266460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
64366460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
64466460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
64566460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
64666460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
64766460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
64866460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
64966460765SRob Bradford
6502ba6a9bfSRob Bradford# v27.0
6512ba6a9bfSRob Bradford
6522ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
6532ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
6542ba6a9bfSRob Bradfordv27.0.
6552ba6a9bfSRob Bradford
6562ba6a9bfSRob Bradford### Community Engagement
6572ba6a9bfSRob Bradford
6582ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
6592ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
6602ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
6612ba6a9bfSRob Bradford
6622ba6a9bfSRob Bradford### Prebuilt Packages
6632ba6a9bfSRob Bradford
6642ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
6652ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
6662ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
6672ba6a9bfSRob Bradfordfirmware options available.
6682ba6a9bfSRob Bradford
6692ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
6702ba6a9bfSRob Bradford
6712ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
6722ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
6732ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
6742ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
6752ba6a9bfSRob Bradford(#4658, #4676.)
6762ba6a9bfSRob Bradford
6772ba6a9bfSRob Bradford### Boot Tracing
6782ba6a9bfSRob Bradford
6792ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
6802ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
6812ba6a9bfSRob Bradford
6822ba6a9bfSRob Bradford### Simplified Build Feature Flags
6832ba6a9bfSRob Bradford
6842ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
6852ba6a9bfSRob Bradford
6862ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
6872ba6a9bfSRob Bradford  (with `kvm` enabled by default),
6882ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
6892ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
6902ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
6912ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
6922ba6a9bfSRob Bradford  feature) and dumping guest memory.
6932ba6a9bfSRob Bradford
6942ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
6952ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
6962ba6a9bfSRob Bradford
6972ba6a9bfSRob Bradford### Asynchronous Kernel Loading
6982ba6a9bfSRob Bradford
6992ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
7002ba6a9bfSRob Bradfordx86-64. (#4538)
7012ba6a9bfSRob Bradford
7022ba6a9bfSRob Bradford### GDB Support for AArch64
7032ba6a9bfSRob Bradford
7042ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
7052ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
7062ba6a9bfSRob Bradford
7072ba6a9bfSRob Bradford### Notable Bug Fixes
7082ba6a9bfSRob Bradford
7092ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
7102ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
7112ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
7122ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
7132ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
7142ba6a9bfSRob Bradford
7152ba6a9bfSRob Bradford### Deprecations
7162ba6a9bfSRob Bradford
7172ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
7182ba6a9bfSRob Bradfordplan to use alternatives.
7192ba6a9bfSRob Bradford
7202ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
7212ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
7222ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
7232ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
7242ba6a9bfSRob Bradford
7252ba6a9bfSRob Bradford### Contributors
7262ba6a9bfSRob Bradford
7272ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
7282ba6a9bfSRob Bradford
7292ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
7302ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
7312ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
7322ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
7332ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
7342ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
7352ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
7362ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
7372ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
7382ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
7392ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
7402ba6a9bfSRob Bradford
741ed9e54d6SRob Bradford# v26.0
742ed9e54d6SRob Bradford
743ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
744ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
745ed9e54d6SRob Bradford
746ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
747ed9e54d6SRob Bradford
748ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
749ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
750ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
751ed9e54d6SRob Bradford
752ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
753ed9e54d6SRob Bradford
754ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
755ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
756ed9e54d6SRob Bradford
757ed9e54d6SRob Bradford### Notable Bug Fixes
758ed9e54d6SRob Bradford
759ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
760ed9e54d6SRob Bradford* PCI Express capabilties for functionality we do not support are now filtered
761ed9e54d6SRob Bradford  out (#4456)
762ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
763ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
764ed9e54d6SRob Bradford  (#4269, #4293)
765ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
766ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
767ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
768ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
769ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
770ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
771ed9e54d6SRob Bradford
772ed9e54d6SRob Bradford### Deprecations
773ed9e54d6SRob Bradford
774ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
775ed9e54d6SRob Bradfordplan to use alternatives.
776ed9e54d6SRob Bradford
777ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
778ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
779ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
780ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
781ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
782ed9e54d6SRob Bradford
783ed9e54d6SRob Bradford### Removals
784ed9e54d6SRob Bradford
785ed9e54d6SRob BradfordThe following functionality has been removed:
786ed9e54d6SRob Bradford
787ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
788ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
789ed9e54d6SRob Bradford  spawning feature (#4402.)
790ed9e54d6SRob Bradford
791ed9e54d6SRob Bradford### Contributors
792ed9e54d6SRob Bradford
793ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
794ed9e54d6SRob Bradford
795ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
796ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
797ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
798ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
799ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
800ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
801ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
802ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
803ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
804ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
805ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
806ed9e54d6SRob Bradford
807b132cd21SRob Bradford# v25.0
808b132cd21SRob Bradford
809b132cd21SRob BradfordThis release has been tracked through the [v25.0
810b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
811b132cd21SRob Bradford
812b132cd21SRob Bradford### `ch-remote` Improvements
813b132cd21SRob Bradford
814b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
815b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
816b132cd21SRob Bradford
817b132cd21SRob Bradford### VM "Coredump" Support
818b132cd21SRob Bradford
819b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
820b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
821b132cd21SRob Bradford
822b132cd21SRob Bradford### Notable Bug Fixes
823b132cd21SRob Bradford
824b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
825b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
826b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
827b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
828b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
829b132cd21SRob Bradford  5.16 (#4156)
830b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
831b132cd21SRob Bradford  Linux guest
832b132cd21SRob Bradford
833b132cd21SRob Bradford### Removals
834b132cd21SRob Bradford
835b132cd21SRob BradfordThe following functionality has been removed:
836b132cd21SRob Bradford
837b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
838b132cd21SRob Bradford  (#3968)
839b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
840b132cd21SRob Bradford
841b132cd21SRob Bradford### Contributors
842b132cd21SRob Bradford
843b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
844b132cd21SRob Bradford
845b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
846b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
847b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
848b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
849b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
850b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
851b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
852b132cd21SRob Bradford
8530150de55SSebastien Boeuf# v24.0
8540150de55SSebastien Boeuf
8550150de55SSebastien BoeufThis release has been tracked through the [v24.0
8560150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
8570150de55SSebastien Boeuf
8580150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
8590150de55SSebastien Boeuf
8600150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
8610150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
8620150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
8630150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
8640150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
8650150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
8660150de55SSebastien Boeuf
8670150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
8680150de55SSebastien Boeuf
8690150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
8700150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
8710150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
8720150de55SSebastien Boeuf
8730150de55SSebastien Boeuf### Sparse Mmap support
8740150de55SSebastien Boeuf
8750150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
8760150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
8770150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
8780150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
8790150de55SSebastien Boeufimpacts the performance related to this device.
8800150de55SSebastien Boeuf
8810150de55SSebastien Boeuf### Expose Platform Serial Number
8820150de55SSebastien Boeuf
8830150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
8840150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
8850150de55SSebastien Boeufguest through the SMBIOS.
8860150de55SSebastien Boeuf
8870150de55SSebastien Boeuf### Notable Bug Fixes
8880150de55SSebastien Boeuf
8890150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
8900150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
8910150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
8920150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
8930150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
8940150de55SSebastien Boeuf
8950150de55SSebastien Boeuf### Notable Improvements
8960150de55SSebastien Boeuf
8970150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
8980150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
8990150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
9000150de55SSebastien Boeuf
9010150de55SSebastien Boeuf### Deprecations
9020150de55SSebastien Boeuf
9030150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
9040150de55SSebastien Boeufplan to use alternatives
9050150de55SSebastien Boeuf
9060150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
9070150de55SSebastien Boeuf  (#3968)
9080150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
9090150de55SSebastien Boeuf
9100150de55SSebastien Boeuf### New on the Website
9110150de55SSebastien Boeuf
9120150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
9130150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
9140150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
9150150de55SSebastien Boeuf
9160150de55SSebastien Boeuf### Contributors
9170150de55SSebastien Boeuf
9180150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
9190150de55SSebastien Boeuf
9200150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
9210150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
9220150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
9230150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
9240150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
9250150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
9260150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
9270150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
9280150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
9290150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
9300150de55SSebastien Boeuf
9310150de55SSebastien Boeuf# v23.1
9320150de55SSebastien Boeuf
9330150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
9340150de55SSebastien Boeuf
9350150de55SSebastien Boeuf* Add some missing seccomp rules
9360150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
9370150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
9380150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
9390150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
9400150de55SSebastien Boeuf
9410c9c56f5SRob Bradford# v23.0
9420c9c56f5SRob Bradford
9430c9c56f5SRob BradfordThis release has been tracked through the [v23.0
9440c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
9450c9c56f5SRob Bradford
9460c9c56f5SRob Bradford### vDPA Support
9470c9c56f5SRob Bradford
9480c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
9490c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
9500c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
9510c9c56f5SRob Bradford
9520c9c56f5SRob Bradford### Updated OS Support list
9530c9c56f5SRob Bradford
9540c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
9550c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
9560c9c56f5SRob Bradford
9570c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
9580c9c56f5SRob Bradford
9590c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
9600c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
9610c9c56f5SRob Bradfordallocated RAM. (#3938)
9620c9c56f5SRob Bradford
9630c9c56f5SRob Bradford### `AMX` Support
9640c9c56f5SRob Bradford
9650c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
9660c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
9670c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
9680c9c56f5SRob Bradford
9690c9c56f5SRob Bradford### Notable Bug Fixes
9700c9c56f5SRob Bradford
9710c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
9720c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
9730c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
9740c9c56f5SRob Bradford  `virtio-mem` (#3883)
9750c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
9760c9c56f5SRob Bradford  vIOMMU (#3870)
9770c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
9780c9c56f5SRob Bradford  (#3848)
9790c9c56f5SRob Bradford
9800c9c56f5SRob Bradford### Deprecations
9810c9c56f5SRob Bradford
9820c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
9830c9c56f5SRob Bradfordplan to use alternatives
9840c9c56f5SRob Bradford
9850c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
9860c9c56f5SRob Bradford  (#3968)
9870c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
9880c9c56f5SRob Bradford
9890c9c56f5SRob Bradford### Contributors
9900c9c56f5SRob Bradford
9910c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
9920c9c56f5SRob Bradford
9930c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
9940c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
9950c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
9960c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9970c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
9980c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
9990c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
10000c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10010c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
10020c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
10030c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
10040c9c56f5SRob Bradford
10050c9c56f5SRob Bradford# v22.1
10060c9c56f5SRob Bradford
10070c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
10080c9c56f5SRob Bradford
10090c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
10100c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
10110c9c56f5SRob Bradford
10126aa10938SRob Bradford# v22.0
10136aa10938SRob Bradford
10140c9c56f5SRob BradfordThis release has been tracked through the [v22.0
10150c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
10166aa10938SRob Bradford
10176aa10938SRob Bradford### GDB Debug Stub Support
10186aa10938SRob Bradford
10196aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
10206aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
10216aa10938SRob Bradfordthe [gdb
10226aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
10236aa10938SRob Bradford
10246aa10938SRob Bradford### `virtio-iommu` Backed Segments
10256aa10938SRob Bradford
10266aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
10276aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
10286aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
10296aa10938SRob Bradford
10306aa10938SRob Bradford### Before Boot Configuration Changes
10316aa10938SRob Bradford
10326aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
10336aa10938SRob Bradfordresize) before the VM is booted.
10346aa10938SRob Bradford
10356aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
10366aa10938SRob Bradford
10376aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
10386aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
10396aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
10406aa10938SRob Bradfordmemory density.
10416aa10938SRob Bradford
10426aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
10436aa10938SRob Bradford
10446aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
10456aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
10466aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
10476aa10938SRob Bradfordhas been updated for this usage.
10486aa10938SRob Bradford
10496aa10938SRob Bradford### PMU Support for AArch64
10506aa10938SRob Bradford
10516aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
10526aa10938SRob Bradfordexposed automatically if available from the host.
10536aa10938SRob Bradford
10540c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
10556aa10938SRob Bradford
10566aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
10576aa10938SRob BradfordInternational" license which is aligned with the project charter under the
10586aa10938SRob BradfordLinux Foundation.
10596aa10938SRob Bradford
10606aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
10616aa10938SRob Bradford
10626aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
10636aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
10646aa10938SRob Bradfordversion.
10656aa10938SRob Bradford
10666aa10938SRob Bradford### Notable Bug Fixes
10676aa10938SRob Bradford
10686aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
10696aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
10706aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
10716aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
10726aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
10736aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
10746aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
10756aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
10766aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
10776aa10938SRob Bradford
10786aa10938SRob Bradford### Contributors
10796aa10938SRob Bradford
10806aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
10816aa10938SRob Bradford
10826aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
10836aa10938SRob Bradford* Barret Rhoden <brho@google.com>
10846aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
10856aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
10866aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
10876aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
10886aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
10896aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
10906aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
10916aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
10926aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
10936aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
10946aa10938SRob Bradford
109595ca7997SRob Bradford# v21.0
109695ca7997SRob Bradford
109795ca7997SRob BradfordThis release has been tracked through the [v21.0
109895ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
109995ca7997SRob Bradford
110095ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
110195ca7997SRob Bradford
11026aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
11036aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
11046aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
11056aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
11066aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
110795ca7997SRob Bradford
110895ca7997SRob Bradford### Recommended Kernel is Now 5.15
110995ca7997SRob Bradford
11106aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
11116aa10938SRob Bradfordis now 5.15. (#3530)
111295ca7997SRob Bradford
111395ca7997SRob Bradford### Notable Bug fixes
111495ca7997SRob Bradford
111595ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
111695ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
111795ca7997SRob Bradford* Support live migration within firmware (#3586)
111895ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
111995ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
112095ca7997SRob Bradford
112195ca7997SRob Bradford### Contributors
112295ca7997SRob Bradford
112395ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
112495ca7997SRob Bradford
112595ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
112695ca7997SRob Bradford* Barret Rhoden <brho@google.com>
112795ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
112895ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
112995ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
113095ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
113195ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
113295ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
113395ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
113495ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
113595ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
113695ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
113795ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
113895ca7997SRob Bradford
113995ca7997SRob Bradford# v20.2
114095ca7997SRob Bradford
114195ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
114295ca7997SRob Bradford
114395ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
114495ca7997SRob Bradford  when this fails due to older kernel (#3456)
114595ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
114695ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
114795ca7997SRob Bradford  (#3496)
114895ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
114995ca7997SRob Bradford
115095ca7997SRob Bradford# v20.1
115195ca7997SRob Bradford
115295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
115395ca7997SRob Bradford
115495ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
115595ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
115695ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
115795ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
115895ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
115995ca7997SRob Bradford
11607fc0776aSSebastien Boeuf# v20.0
11617fc0776aSSebastien Boeuf
11627fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
11637fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
11647fc0776aSSebastien Boeuf
11657fc0776aSSebastien Boeuf### Multiple PCI segments support
11667fc0776aSSebastien Boeuf
11677fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
11687fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
11697fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
11707fc0776aSSebastien Boeuf
11717fc0776aSSebastien Boeuf### CPU pinning
11727fc0776aSSebastien Boeuf
11737fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
11747fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
11757fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
11767fc0776aSSebastien Boeuf
11777fc0776aSSebastien Boeuf### Improved VFIO support
11787fc0776aSSebastien Boeuf
11797fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
11807fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
11817fc0776aSSebastien Boeufthe passthrough device.
11827fc0776aSSebastien Boeuf
11837fc0776aSSebastien Boeuf### Safer code
11847fc0776aSSebastien Boeuf
11857fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
11867fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
11877fc0776aSSebastien Boeufunsafe sections are safe to use.
11887fc0776aSSebastien Boeuf
11897fc0776aSSebastien Boeuf### Extended documentation
11907fc0776aSSebastien Boeuf
11917fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
11927fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
11937fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
11947fc0776aSSebastien Boeuf
11957fc0776aSSebastien Boeuf### Notable bug fixes
11967fc0776aSSebastien Boeuf
11977fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
11987fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
11997fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
12007fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
12017fc0776aSSebastien Boeuf
12027fc0776aSSebastien Boeuf### Contributors
12037fc0776aSSebastien Boeuf
12047fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
12057fc0776aSSebastien Boeuf
12067fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
12077fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
12087fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
12097fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
12107fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
12117fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
12127fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
12137fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
12147fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
12157fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
12167fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
12177fc0776aSSebastien Boeuf
1218d00eb4aaSRob Bradford# v19.0
1219d00eb4aaSRob Bradford
1220d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1221d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1222d00eb4aaSRob Bradford
1223d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1224d00eb4aaSRob Bradford
1225d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1226d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1227d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1228d00eb4aaSRob Bradford
1229d00eb4aaSRob Bradford### PCI boot time optimisations
1230d00eb4aaSRob Bradford
1231d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1232d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1233d00eb4aaSRob Bradford
1234d00eb4aaSRob Bradford### Improved TDX support
1235d00eb4aaSRob Bradford
1236d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1237d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1238d00eb4aaSRob Bradford
1239d00eb4aaSRob Bradford### Live migration enhancements
1240d00eb4aaSRob Bradford
1241d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1242d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1243d00eb4aaSRob Bradfordmigration.
1244d00eb4aaSRob Bradford
1245d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1246d00eb4aaSRob Bradford
1247d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1248d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1249d00eb4aaSRob Bradford
1250d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1251d00eb4aaSRob Bradford
1252d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1253d00eb4aaSRob Bradford
1254d00eb4aaSRob Bradford### Notable bug fixes
1255d00eb4aaSRob Bradford
1256d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1257d00eb4aaSRob Bradford  snapshot/restore (#3165)
1258d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1259d00eb4aaSRob Bradford  (#3078 #3113)
1260d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1261d00eb4aaSRob Bradford  the underlying crate (#3157)
1262d00eb4aaSRob Bradford
1263d00eb4aaSRob Bradford### Contributors
1264d00eb4aaSRob Bradford
1265d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1266d00eb4aaSRob Bradford
1267d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1268d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1269d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1270d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1271d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1272d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1273d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1274d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1275d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1276d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1277d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1278d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1279d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1280d00eb4aaSRob Bradford
12812c4f8d22SRob Bradford# v18.0
12822c4f8d22SRob Bradford
12832c4f8d22SRob BradfordThis release has been tracked through the [v18.0
12842c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
12852c4f8d22SRob Bradford
12862c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
12872c4f8d22SRob Bradford
12882c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
12892c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
12902c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
12912c4f8d22SRob Bradford
12922c4f8d22SRob Bradford### Migration support for `vhost-user` devices
12932c4f8d22SRob Bradford
12942c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
12952c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
12962c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
12972c4f8d22SRob Bradford
12982c4f8d22SRob Bradford### VHDX disk image support
12992c4f8d22SRob Bradford
13002c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
13012c4f8d22SRob Bradford
13022c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
13032c4f8d22SRob Bradford
13042c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
13052c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
13062c4f8d22SRob Bradford
13072c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
13082c4f8d22SRob Bradford
13092c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
13102c4f8d22SRob Bradford
13112c4f8d22SRob Bradford### Live migration on MSHV hypervisor
13122c4f8d22SRob Bradford
13132c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
13142c4f8d22SRob Bradfordefficient tracking of dirty pages.
13152c4f8d22SRob Bradford
13162c4f8d22SRob Bradford### AArch64 CPU topology support
13172c4f8d22SRob Bradford
13182c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
13192c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
13202c4f8d22SRob Bradfordtree.
13212c4f8d22SRob Bradford
13222c4f8d22SRob Bradford### Power button support on AArch64
13232c4f8d22SRob Bradford
13242c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
13252c4f8d22SRob Bradfordis now supported when running on AArch64.
13262c4f8d22SRob Bradford
13272c4f8d22SRob Bradford### Notable bug fixes
13282c4f8d22SRob Bradford
13292c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
13302c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
13312c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
13322c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
13332c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
13342c4f8d22SRob Bradford
13352c4f8d22SRob Bradford### Contributors
13362c4f8d22SRob Bradford
13372c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
13382c4f8d22SRob Bradford
13392c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
13402c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
13412c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
13422c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
13432c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
13442c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
13452c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13462c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
13472c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
13482c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
13492c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
13502c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13512c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
13522c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1353e6db5999SRob Bradford
1354e6db5999SRob Bradford# v17.0
1355e6db5999SRob Bradford
1356e6db5999SRob BradfordThis release has been tracked through the [v17.0
1357e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1358e6db5999SRob Bradford
1359e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1360e6db5999SRob Bradford
1361e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1362e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1363e6db5999SRob Bradford
1364e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1365e6db5999SRob Bradford
1366e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1367e6db5999SRob Bradfordhypervisor backend.
1368e6db5999SRob Bradford
1369e6db5999SRob Bradford### Hotplug of `macvtap` devices
1370e6db5999SRob Bradford
1371e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1372e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1373e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1374e6db5999SRob Bradford
1375e6db5999SRob Bradford### Improved SGX support
1376e6db5999SRob Bradford
1377e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1378e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1379e6db5999SRob Bradford
1380e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1381e6db5999SRob Bradford
1382e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1383e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1384e6db5999SRob Bradford
1385e6db5999SRob Bradford### Notable bug fixes
1386e6db5999SRob Bradford
1387e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1388e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1389e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1390e6db5999SRob Bradford(#2833).
1391e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1392e6db5999SRob Bradford
1393e6db5999SRob Bradford### Contributors
1394e6db5999SRob Bradford
1395e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1396e6db5999SRob Bradford
1397e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1398e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1399e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1400e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1401e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1402e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1403e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1404e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1405e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1406e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1407e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1408e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1409e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1410e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1411e6db5999SRob Bradford
14125ed8e01fSRob Bradford# v16.0
14135ed8e01fSRob Bradford
14145ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
14155ed8e01fSRob Bradford
14165ed8e01fSRob Bradford### Improved live migration support
14175ed8e01fSRob Bradford
14185ed8e01fSRob 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.
14195ed8e01fSRob Bradford
14205ed8e01fSRob Bradford### Improved `vhost-user` support
14215ed8e01fSRob Bradford
14225ed8e01fSRob 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.
14235ed8e01fSRob Bradford
14245ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
14255ed8e01fSRob Bradford
14265ed8e01fSRob 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.
14275ed8e01fSRob Bradford
14285ed8e01fSRob Bradford### Notable bug fixes
14295ed8e01fSRob Bradford
14305ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
14315ed8e01fSRob 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).
14325ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
14335ed8e01fSRob Bradford
14345ed8e01fSRob Bradford### Removed functionality
14355ed8e01fSRob Bradford
14365ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
14375ed8e01fSRob Bradford
14385ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
14395ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
14405ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
14415ed8e01fSRob Bradford
14425ed8e01fSRob Bradford### Contributors
14435ed8e01fSRob Bradford
14445ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
14455ed8e01fSRob Bradford
14465ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
14475ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
14485ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
14495ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
14505ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
14515ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
14525ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
14535ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
14545ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
14555ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
14565ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
14575ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
14585ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
14595ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
14605ed8e01fSRob Bradford
146130a01277SRob Bradford# v15.0
146230a01277SRob Bradford
146330a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
146430a01277SRob Bradford
146530a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
146630a01277SRob Bradford
146730a01277SRob Bradford### Version numbering and stability guarantees
146830a01277SRob Bradford
146930a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
147030a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
147130a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
147230a01277SRob Bradford
147330a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
147430a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
147530a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
147630a01277SRob Bradford  will be documented in the release notes.
147730a01277SRob Bradford* Point releases will be made between individual releases where there are
147830a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
147930a01277SRob Bradford
148030a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
148130a01277SRob Bradford
148230a01277SRob Bradford* Snapshot/restore is not supported across different versions
148330a01277SRob Bradford* Live migration is not supported across different versions
148430a01277SRob Bradford* The following features are considered experimental and may change
148530a01277SRob Bradford  substantially between releases: TDX, SGX.
148630a01277SRob Bradford
148730a01277SRob Bradford### Network device rate limiting
148830a01277SRob Bradford
148930a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
149030a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
149130a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
149230a01277SRob Bradford
149330a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
149430a01277SRob Bradford
149530a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
149630a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
149730a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
149830a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
149930a01277SRob Bradford
150030a01277SRob Bradford### `--api-socket` supports file descriptor parameter
150130a01277SRob Bradford
150230a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
150330a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
150430a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
150530a01277SRob Bradford
150630a01277SRob Bradford### Bug fixes
150730a01277SRob Bradford
150830a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
150930a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
151030a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
151130a01277SRob Bradford  reprogram them (#1797,#1798)
151230a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
151330a01277SRob Bradford  exhaustion on the host) (#2517)
151430a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
151530a01277SRob Bradford  prevents snapshot & restore working (#2535)
151630a01277SRob Bradford
151730a01277SRob Bradford### Deprecations
151830a01277SRob Bradford
151930a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
152030a01277SRob Bradford
152130a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
152230a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
152330a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
152430a01277SRob Bradford
152530a01277SRob Bradford### Contributors
152630a01277SRob Bradford
152730a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
152830a01277SRob Bradford
152930a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
153030a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
153130a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
153230a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
153330a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
153430a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
153530a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
153630a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
153730a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
153830a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
153930a01277SRob Bradford* William Douglas <william.douglas@intel.com>
154030a01277SRob Bradford
154130a01277SRob Bradford# v0.14.1
154230a01277SRob Bradford
154330a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
154430a01277SRob Bradfordin this release:
154530a01277SRob Bradford
154630a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
154730a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
154830a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
154930a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
155030a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
155130a01277SRob Bradford
155240c63dcfSRob Bradford# v0.14.0
155340c63dcfSRob Bradford
155440c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
155540c63dcfSRob Bradford
155640c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
155740c63dcfSRob Bradford
155840c63dcfSRob Bradford### Structured event monitoring
155940c63dcfSRob Bradford
156040c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
156140c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
156240c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
156340c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
156440c63dcfSRob BradfordHypervisor API surface.
156540c63dcfSRob Bradford
156640c63dcfSRob Bradford### MSHV improvements
156740c63dcfSRob Bradford
156840c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
156940c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
157040c63dcfSRob Bradfordthe MSHV support.
157140c63dcfSRob Bradford
157240c63dcfSRob Bradford### Improved aarch64 platform
157340c63dcfSRob Bradford
157440c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
157540c63dcfSRob BradfordVM including an enhanced serial UART.
157640c63dcfSRob Bradford
157740c63dcfSRob Bradford### Updated hotplug documentation
157840c63dcfSRob Bradford
157940c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
158040c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
158140c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
158240c63dcfSRob Bradford
158340c63dcfSRob Bradford### PTY control for serial and `virtio-console`
158440c63dcfSRob Bradford
158540c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
158640c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
158740c63dcfSRob BradfordPTY subsystem.
158840c63dcfSRob Bradford
158940c63dcfSRob Bradford### Block device rate limiting
159040c63dcfSRob Bradford
159140c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
159240c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
159330a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
159440c63dcfSRob Bradford
159540c63dcfSRob Bradford
159640c63dcfSRob Bradford### Deprecations
159740c63dcfSRob Bradford
159840c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
159940c63dcfSRob Bradford
160040c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
160140c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
160240c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
160340c63dcfSRob Bradford
160440c63dcfSRob Bradford
160540c63dcfSRob Bradford### Contributors
160640c63dcfSRob Bradford
160740c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
160840c63dcfSRob Bradfordsome new faces.
160940c63dcfSRob Bradford
161040c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
161140c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
161240c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
161340c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
161440c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
161540c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
161640c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
161740c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
161840c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
161940c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
162040c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
162140c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
162240c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
162340c63dcfSRob Bradford
1624f58b6f84SRob Bradford# v0.13.0
1625f58b6f84SRob Bradford
1626f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1627f58b6f84SRob Bradford
1628f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1629f58b6f84SRob Bradford
1630f58b6f84SRob Bradford### Wider VFIO device support
1631f58b6f84SRob Bradford
1632f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1633f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1634f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1635f58b6f84SRob Bradforddrivers.
1636f58b6f84SRob Bradford
163740c63dcfSRob Bradford### Improved huge page support
1638f58b6f84SRob Bradford
1639f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1640f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1641f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1642f58b6f84SRob Bradforddesired size in their pool.
1643f58b6f84SRob Bradford
1644f58b6f84SRob Bradford### MACvTAP support
1645f58b6f84SRob Bradford
1646f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1647f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1648f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1649f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1650f58b6f84SRob Bradford
1651f58b6f84SRob Bradford### VHD disk image support
1652f58b6f84SRob Bradford
1653f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1654f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1655f58b6f84SRob Bradford
1656f58b6f84SRob Bradford### Improved Virtio device threading
1657f58b6f84SRob Bradford
1658f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1659f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1660f58b6f84SRob Bradfordpredictable name derived from the device id.
1661f58b6f84SRob Bradford
1662f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1663f58b6f84SRob Bradford
1664f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1665f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1666f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1667f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1668f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1669f58b6f84SRob Bradford
1670f58b6f84SRob Bradford### Contributors
1671f58b6f84SRob Bradford
1672f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1673f58b6f84SRob Bradfordsome new faces.
1674f58b6f84SRob Bradford
1675f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1676f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1677f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1678f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1679f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1680f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1681f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1682f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1683f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1684f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1685f58b6f84SRob Bradford
1686d42b5084SRob Bradford# v0.12.0
1687d42b5084SRob Bradford
1688d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1689d42b5084SRob Bradford
1690d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1691d42b5084SRob Bradford
1692d42b5084SRob Bradford### ARM64 enhancements
1693d42b5084SRob Bradford
1694d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1695d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1696d42b5084SRob Bradford
1697d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1698d42b5084SRob Bradford
1699d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1700d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1701d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1702d42b5084SRob Bradfordremoved.
1703d42b5084SRob Bradford
1704d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1705d42b5084SRob Bradford
1706d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1707d42b5084SRob Bradfordinstead hosted in [it's own
1708d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1709d42b5084SRob Bradford
1710d42b5084SRob Bradford### Enhanced "info" API
1711d42b5084SRob Bradford
1712d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1713d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1714d42b5084SRob Bradford
1715d42b5084SRob Bradford### Contributors
1716d42b5084SRob Bradford
1717d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1718d42b5084SRob Bradford
1719d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1720d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1721d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1722d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1723d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1724d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1725d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1726d42b5084SRob Bradford
17277dcd3affSRob Bradford# v0.11.0
17287dcd3affSRob Bradford
17297dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
17307dcd3affSRob Bradford
17317dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
17327dcd3affSRob Bradford
17337dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
17347dcd3affSRob Bradford
17357dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
17367dcd3affSRob Bradfordbe used for a significantly higher performance block device.
17377dcd3affSRob Bradford
17387dcd3affSRob Bradford### Windows Guest Support
17397dcd3affSRob Bradford
17407dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
17417dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
17427dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
17437dcd3affSRob Bradforddocumentation](docs/windows.md).
17447dcd3affSRob Bradford
17457dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
17467dcd3affSRob Bradford
17477dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
17487dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
17497dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
17507dcd3affSRob Bradford
1751d00eb4aaSRob Bradford### `virtio-mmio` Removal
17527dcd3affSRob Bradford
17537dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
17547dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
17557dcd3affSRob Bradfordreduce the testing burden of the project.
17567dcd3affSRob Bradford
17577dcd3affSRob Bradford### Snapshot/Restore support for ARM64
17587dcd3affSRob Bradford
17597dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
17607dcd3affSRob Bradfordimplemented.
17617dcd3affSRob Bradford
17627dcd3affSRob Bradford### Improved Linux Boot Time
17637dcd3affSRob Bradford
17647dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
17657dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
17667dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
17677dcd3affSRob Bradford
17687dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
17697dcd3affSRob Bradford
17707dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
17717dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
17727dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
17737dcd3affSRob Bradfordresources.
17747dcd3affSRob Bradford
17757dcd3affSRob Bradford### Default Log Level Changed
17767dcd3affSRob Bradford
17777dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
17787dcd3affSRob Bradfordeasier to see potential issues. New [logging
17797dcd3affSRob Bradforddocumentation](docs/logging) was also added.
17807dcd3affSRob Bradford
17817dcd3affSRob Bradford### New `--balloon` Parameter Added
17827dcd3affSRob Bradford
17837dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
17847dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
17857dcd3affSRob Bradfordcontrols without overloading `--memory`.
17867dcd3affSRob Bradford
17877dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
17887dcd3affSRob Bradford
17897dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
17907dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
17917dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
17927dcd3affSRob Bradford
17937dcd3affSRob Bradford### Notable Bug Fixes
17947dcd3affSRob Bradford
17957dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
17967dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
17977dcd3affSRob Bradford* CPU identification string is now exposed to the guest
17987dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
17997dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
18007dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
18017dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
18027dcd3affSRob Bradford  can be used (#1803)
18037dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
18047dcd3affSRob Bradford  correctly
18057dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
18067dcd3affSRob Bradford  correctly
18077dcd3affSRob Bradford
18087dcd3affSRob Bradford### Contributors
18097dcd3affSRob Bradford
18107dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
18117dcd3affSRob Bradford
18127dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
18137dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
18147dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
18157dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
18167dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
18177dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
18187dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
18197dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
18207dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
18217dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
18227dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
18237dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
18247dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
18257dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
18267dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
18277dcd3affSRob Bradford
18287dcd3affSRob Bradford
1829198bd551SRob Bradford# v0.10.0
1830198bd551SRob Bradford
1831198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1832198bd551SRob Bradford
1833198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1834198bd551SRob Bradford
1835198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1836198bd551SRob Bradford
1837198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1838198bd551SRob Bradford
1839198bd551SRob Bradford### Memory Zones
1840198bd551SRob Bradford
1841198bd551SRob 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).
1842198bd551SRob Bradford
1843198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1844198bd551SRob Bradford
1845198bd551SRob 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`.
1846198bd551SRob Bradford
1847198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1848198bd551SRob Bradford
1849198bd551SRob 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.
1850198bd551SRob Bradford
1851198bd551SRob Bradford### Notable Bug Fixes
1852198bd551SRob Bradford
1853198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1854198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1855198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1856198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1857198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1858198bd551SRob Bradford
1859198bd551SRob Bradford### Contributors
1860198bd551SRob Bradford
1861198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1862198bd551SRob Bradford
1863198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1864198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1865198bd551SRob Bradford* Anatol Belski <ab@php.net>
1866198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1867198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1868198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1869198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1870198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1871198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1872198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1873198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1874198bd551SRob Bradford
1875d714cf81SRob Bradford# v0.9.0
1876d714cf81SRob Bradford
1877d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1878d714cf81SRob Bradford
1879d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1880d714cf81SRob Bradford
1881d714cf81SRob Bradford### `io_uring` Based Block Device Support
1882d714cf81SRob Bradford
1883d714cf81SRob 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.
1884d714cf81SRob Bradford
1885d714cf81SRob Bradford### Block and Network Device Statistics
1886d714cf81SRob Bradford
1887d714cf81SRob 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.
1888d714cf81SRob Bradford
1889d714cf81SRob Bradford### HTTP API Responses
1890d714cf81SRob Bradford
1891d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1892d714cf81SRob Bradford
1893d714cf81SRob Bradford### CPU Topology
1894d714cf81SRob Bradford
1895d714cf81SRob 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.
1896d714cf81SRob Bradford
1897d714cf81SRob Bradford### Release Build Optimization
1898d714cf81SRob Bradford
1899d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1900d714cf81SRob Bradford
1901d714cf81SRob Bradford### Hypervisor Abstraction
1902d714cf81SRob Bradford
1903d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1904d714cf81SRob Bradford
1905d714cf81SRob Bradford### Snapshot/Restore Improvements
1906d714cf81SRob Bradford
1907d714cf81SRob 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.
1908d714cf81SRob Bradford
1909d714cf81SRob Bradford### Virtio Memory Ballooning Support
1910d714cf81SRob Bradford
1911d714cf81SRob 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.
1912d714cf81SRob Bradford
1913d714cf81SRob Bradford### Enhancements to ARM64 Support
1914d714cf81SRob Bradford
1915d714cf81SRob 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.
1916d714cf81SRob Bradford
1917d714cf81SRob Bradford### Intel SGX Support
1918d714cf81SRob Bradford
1919d714cf81SRob 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).
1920d714cf81SRob Bradford
1921d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1922d714cf81SRob Bradford
1923d714cf81SRob 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.
1924d714cf81SRob Bradford
1925d714cf81SRob Bradford### Notable Bug Fixes
1926d714cf81SRob Bradford
1927d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1928d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1929d714cf81SRob 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).
1930d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1931d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1932d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1933d714cf81SRob Bradford
1934d714cf81SRob Bradford### Contributors
1935d714cf81SRob Bradford
1936d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1937d714cf81SRob Bradford
1938d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1939d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1940d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1941d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1942d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1943d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1944d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1945d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1946d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1947d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1948d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1949d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1950d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1951d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1952d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1953d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1954d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1955d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1956d714cf81SRob Bradford
1957d714cf81SRob Bradford
195852b83969SRob Bradford# v0.8.0
195952b83969SRob Bradford
196052b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
196152b83969SRob Bradford
196252b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
196352b83969SRob Bradford
196452b83969SRob Bradford### Experimental Snapshot and Restore Support
196552b83969SRob Bradford
196652b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
196752b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
196852b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
196952b83969SRob Bradfordoriginal VM at the point it was paused.
197052b83969SRob Bradford
197152b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
197252b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
197352b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
197452b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
197552b83969SRob Bradford(#1176).
197652b83969SRob Bradford
197752b83969SRob Bradford### Experimental ARM64 Support
197852b83969SRob Bradford
197952b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
198052b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
198152b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
198252b83969SRob Bradford
198352b83969SRob Bradford### Support for Using 5-level Paging in Guests
198452b83969SRob Bradford
198552b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
198652b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
198752b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
198852b83969SRob Bradfordwork due to current limitations in the PVH boot process.
198952b83969SRob Bradford
199052b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
199152b83969SRob Bradford
199252b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
199352b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
199452b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
199552b83969SRob Bradfordthe guest must service.
199652b83969SRob Bradford
199752b83969SRob Bradford### `vhost_user_fs` Improvements
199852b83969SRob Bradford
199952b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
200052b83969SRob Bradford
200152b83969SRob Bradford
200252b83969SRob Bradford### Notable Bug Fixes
200352b83969SRob Bradford
200452b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
200552b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
200652b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
200752b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
200852b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
200952b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
201052b83969SRob Bradford  #1216).
201152b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
201252b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
201352b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
201452b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
201552b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
201652b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
201752b83969SRob Bradford  (#751).
201852b83969SRob Bradford
201952b83969SRob Bradford### Command Line and API Changes
202052b83969SRob Bradford
202152b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
202252b83969SRob Bradford
202352b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
202452b83969SRob Bradford  rather than `sock` in some cases.
202552b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
202652b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
202752b83969SRob Bradford  offered for negotiation.
202852b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
202952b83969SRob Bradford  address for the `tap` device on the host.
203052b83969SRob Bradford
203152b83969SRob Bradford### Contributors
203252b83969SRob Bradford
203352b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
203452b83969SRob Bradford
203552b83969SRob Bradford* Anatol Belski <ab@php.net>
203652b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
203752b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
203852b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
203952b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
204052b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
204152b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
204252b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
204352b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
204452b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
204552b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
204652b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
204752b83969SRob Bradford
204896be8229SRob Bradford# v0.7.0
204996be8229SRob Bradford
205096be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
205196be8229SRob Bradford
205296be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
205396be8229SRob Bradford
205496be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
205596be8229SRob Bradford
205696be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
205796be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
205896be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
20595c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
206096be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
206196be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
206296be8229SRob Bradforddevices to ease their removal.
206396be8229SRob Bradford
206496be8229SRob Bradford### Alternative `libc` Support
206596be8229SRob Bradford
206696be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
206796be8229SRob Bradfordcontains a static binary compiled using that toolchain.
206896be8229SRob Bradford
206996be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
207096be8229SRob Bradford
207196be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
207296be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
207396be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
207496be8229SRob Bradfordis passed when the devices are created.
207596be8229SRob Bradford
207696be8229SRob Bradford### Initial RamFS Support
207796be8229SRob Bradford
207896be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
207996be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
208096be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
208196be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
208296be8229SRob Bradfordminimal image.
208396be8229SRob Bradford
208496be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
208596be8229SRob Bradford
208696be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
208796be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
208896be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
208996be8229SRob Bradfordrequires kernel patches to be able to support it.
209096be8229SRob Bradford
209196be8229SRob Bradford### `Seccomp` Sandboxing
209296be8229SRob Bradford
209396be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
209496be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
209596be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
209696be8229SRob Bradford
209796be8229SRob Bradford### Updated Distribution Support
209896be8229SRob Bradford
209996be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
210096be8229SRob Bradforddistributions and is part of our regular testing programme.
210196be8229SRob Bradford
210296be8229SRob Bradford### Command Line and API Changes
210396be8229SRob Bradford
210496be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
210596be8229SRob Bradford
210696be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
210796be8229SRob Bradford  If no name is specified the VMM chooses one.
210896be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
210996be8229SRob Bradford  memory instead of providing a path.
211096be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
211196be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
211296be8229SRob Bradford  option and replaced it with a single optional field.
211396be8229SRob Bradford* There is enhanced validation of the command line and API provided
211496be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
211596be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
211696be8229SRob Bradford  device.
211796be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
211896be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
211996be8229SRob Bradford  has appropriate new HTTP endpoints too.
212096be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
212196be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
212296be8229SRob Bradford  to provide the equivalent of a read-only file.
212396be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
212496be8229SRob Bradford  with those used by `--disk`.
212596be8229SRob Bradford
212696be8229SRob Bradford### Contributors
212796be8229SRob Bradford
212896be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
212996be8229SRob Bradford
213096be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
213196be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
213296be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
213396be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
213496be8229SRob Bradford* Dean Sheather <dean@coder.com>
213596be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
213696be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
213796be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
213896be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
213996be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
214096be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
214196be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
214296be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
214396be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
214496be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
214596be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
214696be8229SRob Bradford
214703cb26ccSSamuel Ortiz# v0.6.0
214803cb26ccSSamuel Ortiz
214903cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
215003cb26ccSSamuel Ortiz
215103cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
215203cb26ccSSamuel Ortiz
215303cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
215403cb26ccSSamuel Ortiz
215503cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
215603cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
215703cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
215803cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
215903cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
216003cb26ccSSamuel Ortiz
216103cb26ccSSamuel Ortiz### Shared Filesystem Improvements
216203cb26ccSSamuel Ortiz
216303cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
216403cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
216503cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
216603cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
216703cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
216803cb26ccSSamuel Ortiz
216903cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
217003cb26ccSSamuel Ortiz
217103cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
217203cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
217303cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
217403cb26ccSSamuel Ortizinto their own, separate processes.
21755c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
217603cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
217703cb26ccSSamuel Ortiz
217803cb26ccSSamuel Ortiz### Command Line Interface
217903cb26ccSSamuel Ortiz
218003cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
218137a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
218237a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
218337a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
218437a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
218537a2c13aSAlyssa Rossis created with each build and available e.g. at
218603cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
218703cb26ccSSamuel Ortiz
218803cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
218903cb26ccSSamuel Ortizcommands.
219003cb26ccSSamuel Ortiz
219103cb26ccSSamuel Ortiz### PVH Boot
219203cb26ccSSamuel Ortiz
219303cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
219403cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
219503cb26ccSSamuel Ortiz
219603cb26ccSSamuel Ortiz### Contributors
219703cb26ccSSamuel Ortiz
219803cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
219903cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
220003cb26ccSSamuel Ortiz
220103cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
220203cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
220303cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
220403cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
220503cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
220603cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
220703cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
220803cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
220903cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
221003cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
221103cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
221203cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
221303cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
221403cb26ccSSamuel Ortiz
221594f2fc33SRob Bradford# v0.5.1
221694f2fc33SRob Bradford
221794f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
221894f2fc33SRob Bradford
221994f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
222094f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
222194f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
222294f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
222394f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
22248e8a7b6dSSamuel Ortiz
22252f395e60SSamuel Ortiz# v0.5.0
22262f395e60SSamuel Ortiz
22272f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
22282f395e60SSamuel Ortiz
22292f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
22302f395e60SSamuel Ortiz
22312f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
22322f395e60SSamuel Ortiz
22332f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
22342f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
22352f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
22362f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
22372f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
22382f395e60SSamuel Ortiz
22392f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
22402f395e60SSamuel Ortiz
22412f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
22422f395e60SSamuel Ortiz
22432f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
22442f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
22452f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
22462f395e60SSamuel Ortiz
22472f395e60SSamuel Ortiz### New Interrupt Management Framework
22482f395e60SSamuel Ortiz
22492f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
22502f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
22512f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
22522f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
22532f395e60SSamuel Ortizvirtio ones.
22542f395e60SSamuel Ortiz
22552f395e60SSamuel Ortiz### Development Tools
22562f395e60SSamuel Ortiz
22572f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
22582f395e60SSamuel Ortizbuild, development and testing tools.
22592f395e60SSamuel OrtizSomehow similar to the excellent
22602f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
226137a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
22622f395e60SSamuel Ortiz
22632f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
22642f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
22652f395e60SSamuel Ortiz
22662f395e60SSamuel Ortiz### Kata Containers Integration
22672f395e60SSamuel Ortiz
22682f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
22692f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
22702f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
22712f395e60SSamuel Ortizintegrated into the project's CI.
22722f395e60SSamuel Ortiz
22732f395e60SSamuel Ortiz### Contributors
22742f395e60SSamuel Ortiz
22752f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
22762f395e60SSamuel Ortiz
22772f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
22782f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
22792f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
22802f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
22812f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
22822f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
22832f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
22842f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
22852f395e60SSamuel Ortiz
2286cec884e8SSamuel Ortiz# v0.4.0
2287cec884e8SSamuel Ortiz
2288cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2289cec884e8SSamuel Ortiz
2290cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2291cec884e8SSamuel Ortiz
2292cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2293cec884e8SSamuel Ortiz
2294e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2295cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2296cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2297cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
229837a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2299cec884e8SSamuel Ortiz
2300cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2301cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2302cec884e8SSamuel Ortiz
2303cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2304cec884e8SSamuel Ortiz
2305cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2306cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2307cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2308cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2309cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2310cec884e8SSamuel Ortiz
2311cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2312cec884e8SSamuel Ortiz
2313cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2314cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2315cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2316cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2317cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2318cec884e8SSamuel Ortiz
2319cec884e8SSamuel Ortiz### Guest pause and resume
2320cec884e8SSamuel Ortiz
23215c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2322cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2323cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2324cec884e8SSamuel Ortizand resume capabilities.
2325cec884e8SSamuel Ortiz
2326cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2327cec884e8SSamuel Ortiz
2328cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2329cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2330cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2331cec884e8SSamuel Ortizdefault.
2332cec884e8SSamuel Ortiz
2333cec884e8SSamuel Ortiz### PCI BAR reprogramming
2334cec884e8SSamuel Ortiz
2335cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2336cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2337cec884e8SSamuel Ortizreprogramming.
2338cec884e8SSamuel Ortiz
2339cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2340cec884e8SSamuel Ortiz
2341cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2342cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2343cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2344cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2345cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2346cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2347cec884e8SSamuel Ortiztemporarily fork.
2348cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2349cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2350cec884e8SSamuel Ortiz
2351cec884e8SSamuel Ortiz### Contributors
2352cec884e8SSamuel Ortiz
2353cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2354cec884e8SSamuel Ortiz
2355cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2356cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2357cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2358cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2359cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2360cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2361cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2362cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2363cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2364cec884e8SSamuel Ortiz
23658e8a7b6dSSamuel Ortiz# v0.3.0
23668e8a7b6dSSamuel Ortiz
23678ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
23688e8a7b6dSSamuel Ortiz
23698e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
23708e8a7b6dSSamuel Ortiz
23718e8a7b6dSSamuel Ortiz### Block device offloading
23728e8a7b6dSSamuel Ortiz
23738e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
23748e8a7b6dSSamuel Ortizand we added support for
23758e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
23768e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
23778e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
23788e8a7b6dSSamuel Ortizbackend.
23798e8a7b6dSSamuel Ortiz
23808e8a7b6dSSamuel Ortiz### Network device backend
23818e8a7b6dSSamuel Ortiz
23828e8a7b6dSSamuel OrtizThe previous release provided support for
23838e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
23848e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
23858e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
23868e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
23878e8a7b6dSSamuel Ortiz
23888e8a7b6dSSamuel Ortiz### Virtual sockets
23898e8a7b6dSSamuel Ortiz
23908e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
23918e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
23928e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
23938e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
23948e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
23958e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
23968e8a7b6dSSamuel Ortiz
23978e8a7b6dSSamuel Ortiz### HTTP based API
23988e8a7b6dSSamuel Ortiz
23998e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
24008e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
24018e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
24028e8a7b6dSSamuel Ortiznext release cycle.
24038e8a7b6dSSamuel Ortiz
24048e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
24058e8a7b6dSSamuel Ortiz
24068e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
24078e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
24088e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
24098e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
24108e8a7b6dSSamuel Ortiz
24118e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
24128e8a7b6dSSamuel Ortiz
24138e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
241437a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
241537a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
24168e8a7b6dSSamuel Ortiz
24178e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
24188e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
24198e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
24208e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
24218e8a7b6dSSamuel Ortizsetting.
24228e8a7b6dSSamuel Ortiz
24238e8a7b6dSSamuel Ortiz### Ubuntu 19.10
24248e8a7b6dSSamuel Ortiz
24258ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
24268e8a7b6dSSamuel Ortizwe can now support the latest
24278e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
24288e8a7b6dSSamuel Ortiz
24298e8a7b6dSSamuel Ortiz### Large memory guests
24308e8a7b6dSSamuel Ortiz
24318e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
24328e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
24337688e6e2SSamuel Ortiz
2434d784ac29SSamuel Ortiz# v0.2.0
2435d784ac29SSamuel Ortiz
24368ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2437d784ac29SSamuel Ortiz
2438d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2439d784ac29SSamuel Ortiz
2440d784ac29SSamuel Ortiz### Network device offloading
2441d784ac29SSamuel Ortiz
2442d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2443d784ac29SSamuel Ortizprocesses, we added support for
2444d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2445d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2446d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2447d784ac29SSamuel Ortiz
2448d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2449d784ac29SSamuel Ortiz
2450d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2451d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2452d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2453d784ac29SSamuel Ortizcleanly reboot and shutdown.
2454d784ac29SSamuel Ortiz
2455d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2456d784ac29SSamuel Ortizenabled by default.
2457d784ac29SSamuel Ortiz
2458d784ac29SSamuel Ortiz### Debug I/O port
2459d784ac29SSamuel Ortiz
2460d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2461d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2462d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2463d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
246437a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
246537a2c13aSAlyssa Rossdetails.
2466d784ac29SSamuel Ortiz
2467d784ac29SSamuel Ortiz### Improved direct device assignment
2468d784ac29SSamuel Ortiz
2469d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2470d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2471d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2472d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2473d784ac29SSamuel Ortizdirectly assigned devices.
2474d784ac29SSamuel Ortiz
2475d784ac29SSamuel Ortiz### Improved shared filesystem
2476d784ac29SSamuel Ortiz
2477d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2478d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2479d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2480d784ac29SSamuel Ortizmemory footprint.
2481d784ac29SSamuel Ortiz
2482d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2483d784ac29SSamuel Ortiz
24848ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2485d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2486d784ac29SSamuel Ortizour CI pipeline.
2487d784ac29SSamuel Ortiz
248893b77530SSamuel Ortiz# v0.1.0
248993b77530SSamuel Ortiz
24908ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
249193b77530SSamuel Ortiz
249293b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
249393b77530SSamuel Ortiz
249493b77530SSamuel Ortiz### Shared filesystem
249593b77530SSamuel Ortiz
249693b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
249793b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
249893b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
249993b77530SSamuel Ortiz
250037a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
250137a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
250293b77530SSamuel Ortiz
250393b77530SSamuel Ortiz### Initial direct device assignment support
250493b77530SSamuel Ortiz
250593b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
250693b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
250793b77530SSamuel Ortizphysical devices into its guest.
250893b77530SSamuel Ortiz
250937a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
251037a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
251193b77530SSamuel Ortiz
251293b77530SSamuel Ortiz### Userspace IOAPIC
251393b77530SSamuel Ortiz
251493b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
251593b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
251693b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
251793b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
251893b77530SSamuel Ortiz
251993b77530SSamuel Ortiz### Virtual persistent memory
252093b77530SSamuel Ortiz
252193b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
252293b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
252393b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
252493b77530SSamuel Ortiz
252593b77530SSamuel Ortiz### Linux kernel bzImage
252693b77530SSamuel Ortiz
252793b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
252893b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
252993b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
253093b77530SSamuel Ortizdistribution kernel image.
253193b77530SSamuel Ortiz
253293b77530SSamuel Ortiz### Console over virtio
253393b77530SSamuel Ortiz
253493b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
253593b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
253693b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
253793b77530SSamuel Ortizimplementation.
253893b77530SSamuel Ortiz
253993b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
254093b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
254193b77530SSamuel Ortiz`--serial tty --console off` from the command line.
254293b77530SSamuel Ortiz
254393b77530SSamuel Ortiz### Unit testing
254493b77530SSamuel Ortiz
254593b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
254693b77530SSamuel Ortiz
254793b77530SSamuel Ortiz### Integration tests parallelization
254893b77530SSamuel Ortiz
254993b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
255093b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2551