xref: /cloud-hypervisor/release-notes.md (revision ece0e6fa92298fffac57f57e3bcc3d5a59874c98)
1*ece0e6faSBo Chen- [v30.0](#v300)
2*ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
3*ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
4*ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
5*ece0e6faSBo Chen    - [Documentation Improvements](#documentation-improvements)
6*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
7*ece0e6faSBo Chen    - [Contributors](#contributors)
8*ece0e6faSBo Chen- [v28.2](#v282)
922cf8c97SRob Bradford- [v29.0](#v290)
1022cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
1122cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
1222cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
1322cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
1422cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
1522cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
1622cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
17*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
1822cf8c97SRob Bradford    - [Removals](#removals)
1922cf8c97SRob Bradford    - [Deprecations](#deprecations)
20*ece0e6faSBo Chen    - [Contributors](#contributors-1)
2122cf8c97SRob Bradford- [v28.1](#v281)
2266460765SRob Bradford- [v28.0](#v280)
2366460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
2466460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
2566460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
2666460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
2766460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
28*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
2922cf8c97SRob Bradford    - [Removals](#removals-1)
30*ece0e6faSBo Chen    - [Contributors](#contributors-2)
312ba6a9bfSRob Bradford- [v27.0](#v270)
322ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
332ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
342ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
352ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
362ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
372ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
382ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
3966460765SRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
40*ece0e6faSBo Chen    - [Deprecations](#deprecations-1)
41*ece0e6faSBo Chen    - [Contributors](#contributors-3)
42*ece0e6faSBo Chen- [v26.0](#v260)
43*ece0e6faSBo Chen    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via-platform)
44*ece0e6faSBo Chen    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
45*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
4622cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
4766460765SRob Bradford    - [Removals](#removals-2)
48*ece0e6faSBo Chen    - [Contributors](#contributors-4)
4922cf8c97SRob Bradford- [v25.0](#v250)
5022cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
5122cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
52*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
5322cf8c97SRob Bradford    - [Removals](#removals-3)
54*ece0e6faSBo Chen    - [Contributors](#contributors-5)
550150de55SSebastien Boeuf- [v24.0](#v240)
560150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
570150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
580150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
590150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
60*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
610150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
6222cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
630150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
64*ece0e6faSBo Chen    - [Contributors](#contributors-6)
650150de55SSebastien Boeuf- [v23.1](#v231)
660c9c56f5SRob Bradford- [v23.0](#v230)
670c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
680c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
690c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
700c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
71*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
7222cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
73*ece0e6faSBo Chen    - [Contributors](#contributors-7)
740c9c56f5SRob Bradford- [v22.1](#v221)
756aa10938SRob Bradford- [v22.0](#v220)
766aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
776aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
786aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
796aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
806aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
816aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
820c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
836aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
84*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
85*ece0e6faSBo Chen    - [Contributors](#contributors-8)
8695ca7997SRob Bradford- [v21.0](#v210)
8795ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
8895ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
89*ece0e6faSBo Chen    - [Notable Bug fixes](#notable-bug-fixes-9)
90*ece0e6faSBo Chen    - [Contributors](#contributors-9)
9195ca7997SRob Bradford- [v20.2](#v202)
9295ca7997SRob Bradford- [v20.1](#v201)
937fc0776aSSebastien Boeuf- [v20.0](#v200)
947fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
957fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
967fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
977fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
987fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
99*ece0e6faSBo Chen    - [Notable bug fixes](#notable-bug-fixes-10)
100*ece0e6faSBo Chen    - [Contributors](#contributors-10)
101d00eb4aaSRob Bradford- [v19.0](#v190)
102d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
103d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
104d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
105d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
106d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
107d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
108*ece0e6faSBo Chen    - [Notable bug fixes](#notable-bug-fixes-11)
109*ece0e6faSBo Chen    - [Contributors](#contributors-11)
1102c4f8d22SRob Bradford- [v18.0](#v180)
1112c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1122c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1132c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1142c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1152c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1162c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1172c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1182c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
119*ece0e6faSBo Chen    - [Notable bug fixes](#notable-bug-fixes-12)
120*ece0e6faSBo Chen    - [Contributors](#contributors-12)
121e6db5999SRob Bradford- [v17.0](#v170)
122e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
123e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
124e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
125e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
126e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
127*ece0e6faSBo Chen    - [Notable bug fixes](#notable-bug-fixes-13)
128*ece0e6faSBo Chen    - [Contributors](#contributors-13)
1295ed8e01fSRob Bradford- [v16.0](#v160)
1305ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1315ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1325ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
133*ece0e6faSBo Chen    - [Notable bug fixes](#notable-bug-fixes-14)
1345ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
135*ece0e6faSBo Chen    - [Contributors](#contributors-14)
13630a01277SRob Bradford- [v15.0](#v150)
13730a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
13830a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
13930a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
140*ece0e6faSBo Chen    - [`--api-socket` supports file descriptor parameter](#-api-socket-supports-file-descriptor-parameter)
14130a01277SRob Bradford    - [Bug fixes](#bug-fixes)
14222cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
143*ece0e6faSBo Chen    - [Contributors](#contributors-15)
14430a01277SRob Bradford- [v0.14.1](#v0141)
14540c63dcfSRob Bradford- [v0.14.0](#v0140)
14640c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
14740c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
14840c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
14940c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
15040c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
15140c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
15222cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
153*ece0e6faSBo Chen    - [Contributors](#contributors-16)
154f58b6f84SRob Bradford- [v0.13.0](#v0130)
155f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
15640c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
157f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
158f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
159f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
160f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
161*ece0e6faSBo Chen    - [Contributors](#contributors-17)
162d42b5084SRob Bradford- [v0.12.0](#v0120)
163d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
164d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
165d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
166d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
167*ece0e6faSBo Chen    - [Contributors](#contributors-18)
1687dcd3affSRob Bradford- [v0.11.0](#v0110)
1697dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1707dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1717dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
172d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1737dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
1747dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
1757dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
1767dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
177*ece0e6faSBo Chen    - [New `--balloon` Parameter Added](#new-balloon-parameter-added)
1787dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
179*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-15)
180*ece0e6faSBo Chen    - [Contributors](#contributors-19)
181198bd551SRob Bradford- [v0.10.0](#v0100)
182198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
183198bd551SRob Bradford    - [Memory Zones](#memory-zones)
184198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
185198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
186*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-16)
187*ece0e6faSBo Chen    - [Contributors](#contributors-20)
188d714cf81SRob Bradford- [v0.9.0](#v090)
189d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
190d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
191d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
192d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
193d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
194d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
195d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
196d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
197d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
198d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
199198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
200*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-17)
201*ece0e6faSBo Chen    - [Contributors](#contributors-21)
202d714cf81SRob Bradford- [v0.8.0](#v080)
203d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
204d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
205d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
206d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
207d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
208*ece0e6faSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-18)
209d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
210*ece0e6faSBo Chen    - [Contributors](#contributors-22)
21196be8229SRob Bradford- [v0.7.0](#v070)
21296be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
21396be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
21496be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
21596be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
21696be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
21796be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
21896be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
21952b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
220*ece0e6faSBo Chen    - [Contributors](#contributors-23)
22103cb26ccSSamuel Ortiz- [v0.6.0](#v060)
22203cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
22303cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
22403cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
22503cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
22603cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
227*ece0e6faSBo Chen    - [Contributors](#contributors-24)
22894f2fc33SRob Bradford- [v0.5.1](#v051)
2292f395e60SSamuel Ortiz- [v0.5.0](#v050)
23094f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
23194f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
23294f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
23394f2fc33SRob Bradford    - [Development Tools](#development-tools)
23494f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
235*ece0e6faSBo Chen    - [Contributors](#contributors-25)
236cec884e8SSamuel Ortiz- [v0.4.0](#v040)
23794f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
23894f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
23994f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
24094f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
24194f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
24294f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
24394f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
244*ece0e6faSBo Chen    - [Contributors](#contributors-26)
2458e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
24694f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
24794f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
24894f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
24994f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
25094f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
25194f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
25294f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
25394f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2547688e6e2SSamuel Ortiz- [v0.2.0](#v020)
25594f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
25694f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
25794f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
25894f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
25994f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
26094f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2617688e6e2SSamuel Ortiz- [v0.1.0](#v010)
26294f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
26394f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
26494f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
26594f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
26694f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
26794f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
26894f2fc33SRob Bradford    - [Unit testing](#unit-testing)
26994f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
27094f2fc33SRob Bradford
271*ece0e6faSBo Chen# v30.0
272*ece0e6faSBo Chen
273*ece0e6faSBo ChenThis release has been tracked in our [roadmap
274*ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
275*ece0e6faSBo Chenv30.0. The following user visible changes have been made:
276*ece0e6faSBo Chen
277*ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
278*ece0e6faSBo Chen
279*ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
280*ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
281*ece0e6faSBo Chenwere several syntax changes:
282*ece0e6faSBo Chen
283*ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
284*ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
285*ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
286*ece0e6faSBo Chen
287*ece0e6faSBo Chen### Basic vfio-user Server Support
288*ece0e6faSBo Chen
289*ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
290*ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
291*ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
292*ece0e6faSBo Chen`rust-vmm` organization.
293*ece0e6faSBo Chen
294*ece0e6faSBo Chen### Heap Profiling Support
295*ece0e6faSBo Chen
296*ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
297*ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
298*ece0e6faSBo Chen
299*ece0e6faSBo Chen### Documentation Improvements
300*ece0e6faSBo Chen
301*ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
302*ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
303*ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
304*ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
305*ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
306*ece0e6faSBo Chenexisting 'profiling' documentation.
307*ece0e6faSBo Chen
308*ece0e6faSBo Chen### Notable Bug Fixes
309*ece0e6faSBo Chen
310*ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
311*ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
312*ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
313*ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
314*ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
315*ece0e6faSBo Chen
316*ece0e6faSBo Chen### Contributors
317*ece0e6faSBo Chen
318*ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
319*ece0e6faSBo Chen
320*ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
321*ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
322*ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
323*ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
324*ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
325*ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
326*ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
327*ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
328*ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
329*ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
330*ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
331*ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
332*ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
333*ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
334*ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
335*ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
336*ece0e6faSBo Chen
337*ece0e6faSBo Chen# v28.2
338*ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
339*ece0e6faSBo Chen
340*ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
341*ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
342*ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
343*ece0e6faSBo Chen
34422cf8c97SRob Bradford# v29.0
34522cf8c97SRob Bradford
34622cf8c97SRob BradfordThis release has been tracked in our [roadmap
34722cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
34822cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
34922cf8c97SRob Bradford
35022cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
35122cf8c97SRob Bradford
35222cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
35322cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
35422cf8c97SRob Bradford
35522cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
35622cf8c97SRob Bradford
35722cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
35822cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
35922cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
36022cf8c97SRob Bradfordsupported but has worked for some versions.)
36122cf8c97SRob Bradford
36222cf8c97SRob Bradford### Heap Allocation Improvements
36322cf8c97SRob Bradford
36422cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
36522cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
36622cf8c97SRob Bradford
36722cf8c97SRob Bradford### `ch-remote` Improvements
36822cf8c97SRob Bradford
36922cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
37022cf8c97SRob Bradford`ch-remote`.
37122cf8c97SRob Bradford
37222cf8c97SRob Bradford### `AArch64` Documentation Integration
37322cf8c97SRob Bradford
37422cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
37522cf8c97SRob BradfordREADME.
37622cf8c97SRob Bradford
37722cf8c97SRob Bradford### `virtio-block` Counters Enhancement
37822cf8c97SRob Bradford
37922cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
38022cf8c97SRob Bradfordlatency counters.
38122cf8c97SRob Bradford
38222cf8c97SRob Bradford### TCP Offload Control
38322cf8c97SRob Bradford
38422cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
38522cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
38622cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
38722cf8c97SRob Bradford
38822cf8c97SRob Bradford### Notable Bug Fixes
38922cf8c97SRob Bradford
39022cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
39122cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
39222cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
39322cf8c97SRob Bradford  (#4924, #4949)
39422cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
39522cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
39622cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
39722cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
39822cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
39922cf8c97SRob Bradford
40022cf8c97SRob Bradford### Removals
40122cf8c97SRob Bradford
40222cf8c97SRob BradfordNo functionality has been removed in this release.
40322cf8c97SRob Bradford
40422cf8c97SRob Bradford### Deprecations
40522cf8c97SRob Bradford
40622cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
40722cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
40822cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
40922cf8c97SRob Bradford  (#5085)
41022cf8c97SRob Bradford
41122cf8c97SRob Bradford### Contributors
41222cf8c97SRob Bradford
41322cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
41422cf8c97SRob Bradford
41522cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
41622cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
41722cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
41822cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
41922cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
42022cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
42122cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
42222cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
42322cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
42422cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
42522cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
42622cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
42722cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
42822cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
42922cf8c97SRob Bradford
43022cf8c97SRob Bradford
43122cf8c97SRob Bradford# v28.1
43222cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
43322cf8c97SRob Bradford
43422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
43522cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
43622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
43722cf8c97SRob Bradford  (#4924, #4949)
43822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
43922cf8c97SRob Bradford* Improve README and documentation
44022cf8c97SRob Bradford
44166460765SRob Bradford# v28.0
44266460765SRob Bradford
44366460765SRob BradfordThis release has been tracked in our new [roadmap
44466460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
44566460765SRob Bradfordv28.0.
44666460765SRob Bradford
44766460765SRob Bradford### Community Engagement (Reminder)
44866460765SRob Bradford
44966460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
45066460765SRob Bradforddiscussions.  Please consider
45166460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
45266460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
45366460765SRob BradfordHypervisor development.
45466460765SRob Bradford
45566460765SRob Bradford### Long Term Support (LTS) Release
45666460765SRob Bradford
45766460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
45866460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
45966460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
46066460765SRob Bradfordreleases of the LTS.
46166460765SRob Bradford
46266460765SRob Bradford### Virtualised TPM Support
46366460765SRob Bradford
46466460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
46566460765SRob Bradforddocumentation](docs/tpm.md).
46666460765SRob Bradford
46766460765SRob Bradford### Transparent Huge Page Support
46866460765SRob Bradford
46966460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
47066460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
47166460765SRob Bradfordthen this will be used resulting in improved boot performance.
47266460765SRob Bradford
47366460765SRob Bradford### README Quick Start Improved
47466460765SRob Bradford
47566460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
47666460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
47766460765SRob Bradford
47866460765SRob Bradford### Notable Bug Fixes
47966460765SRob Bradford
48066460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
48166460765SRob Bradford  memory consumption (#4835)
48266460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
48366460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
48466460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
48566460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
48666460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
48766460765SRob Bradford  newer Linux kernels (#4744)
48866460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
48966460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
49066460765SRob Bradford
49166460765SRob Bradford### Removals
49266460765SRob Bradford
49366460765SRob BradfordThe following functionality has been removed:
49466460765SRob Bradford
49566460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
49666460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
49766460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
49866460765SRob Bradford
49966460765SRob Bradford### Contributors
50066460765SRob Bradford
50166460765SRob BradfordMany thanks to everyone who has contributed to our release:
50266460765SRob Bradford
50366460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
50466460765SRob Bradford* Bo Chen <chen.bo@intel.com>
50566460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
50666460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
50766460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
50866460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
50966460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
51066460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
51166460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
51266460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
51366460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
51466460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
51566460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
51666460765SRob Bradford
5172ba6a9bfSRob Bradford# v27.0
5182ba6a9bfSRob Bradford
5192ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
5202ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
5212ba6a9bfSRob Bradfordv27.0.
5222ba6a9bfSRob Bradford
5232ba6a9bfSRob Bradford### Community Engagement
5242ba6a9bfSRob Bradford
5252ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
5262ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
5272ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
5282ba6a9bfSRob Bradford
5292ba6a9bfSRob Bradford### Prebuilt Packages
5302ba6a9bfSRob Bradford
5312ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
5322ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
5332ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
5342ba6a9bfSRob Bradfordfirmware options available.
5352ba6a9bfSRob Bradford
5362ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
5372ba6a9bfSRob Bradford
5382ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
5392ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
5402ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
5412ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
5422ba6a9bfSRob Bradford(#4658, #4676.)
5432ba6a9bfSRob Bradford
5442ba6a9bfSRob Bradford### Boot Tracing
5452ba6a9bfSRob Bradford
5462ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
5472ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
5482ba6a9bfSRob Bradford
5492ba6a9bfSRob Bradford### Simplified Build Feature Flags
5502ba6a9bfSRob Bradford
5512ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
5522ba6a9bfSRob Bradford
5532ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
5542ba6a9bfSRob Bradford  (with `kvm` enabled by default),
5552ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
5562ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
5572ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
5582ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
5592ba6a9bfSRob Bradford  feature) and dumping guest memory.
5602ba6a9bfSRob Bradford
5612ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
5622ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
5632ba6a9bfSRob Bradford
5642ba6a9bfSRob Bradford### Asynchronous Kernel Loading
5652ba6a9bfSRob Bradford
5662ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
5672ba6a9bfSRob Bradfordx86-64. (#4538)
5682ba6a9bfSRob Bradford
5692ba6a9bfSRob Bradford### GDB Support for AArch64
5702ba6a9bfSRob Bradford
5712ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
5722ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
5732ba6a9bfSRob Bradford
5742ba6a9bfSRob Bradford### Notable Bug Fixes
5752ba6a9bfSRob Bradford
5762ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
5772ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
5782ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
5792ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
5802ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
5812ba6a9bfSRob Bradford
5822ba6a9bfSRob Bradford### Deprecations
5832ba6a9bfSRob Bradford
5842ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
5852ba6a9bfSRob Bradfordplan to use alternatives.
5862ba6a9bfSRob Bradford
5872ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
5882ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
5892ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
5902ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
5912ba6a9bfSRob Bradford
5922ba6a9bfSRob Bradford### Contributors
5932ba6a9bfSRob Bradford
5942ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
5952ba6a9bfSRob Bradford
5962ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
5972ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
5982ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
5992ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
6002ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
6012ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
6022ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
6032ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
6042ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
6052ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
6062ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
6072ba6a9bfSRob Bradford
608ed9e54d6SRob Bradford# v26.0
609ed9e54d6SRob Bradford
610ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
611ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
612ed9e54d6SRob Bradford
613ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
614ed9e54d6SRob Bradford
615ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
616ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
617ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
618ed9e54d6SRob Bradford
619ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
620ed9e54d6SRob Bradford
621ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
622ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
623ed9e54d6SRob Bradford
624ed9e54d6SRob Bradford### Notable Bug Fixes
625ed9e54d6SRob Bradford
626ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
627ed9e54d6SRob Bradford* PCI Express capabilties for functionality we do not support are now filtered
628ed9e54d6SRob Bradford  out (#4456)
629ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
630ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
631ed9e54d6SRob Bradford  (#4269, #4293)
632ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
633ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
634ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
635ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
636ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
637ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
638ed9e54d6SRob Bradford
639ed9e54d6SRob Bradford### Deprecations
640ed9e54d6SRob Bradford
641ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
642ed9e54d6SRob Bradfordplan to use alternatives.
643ed9e54d6SRob Bradford
644ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
645ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
646ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
647ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
648ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
649ed9e54d6SRob Bradford
650ed9e54d6SRob Bradford### Removals
651ed9e54d6SRob Bradford
652ed9e54d6SRob BradfordThe following functionality has been removed:
653ed9e54d6SRob Bradford
654ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
655ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
656ed9e54d6SRob Bradford  spawning feature (#4402.)
657ed9e54d6SRob Bradford
658ed9e54d6SRob Bradford### Contributors
659ed9e54d6SRob Bradford
660ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
661ed9e54d6SRob Bradford
662ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
663ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
664ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
665ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
666ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
667ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
668ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
669ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
670ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
671ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
672ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
673ed9e54d6SRob Bradford
674b132cd21SRob Bradford# v25.0
675b132cd21SRob Bradford
676b132cd21SRob BradfordThis release has been tracked through the [v25.0
677b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
678b132cd21SRob Bradford
679b132cd21SRob Bradford### `ch-remote` Improvements
680b132cd21SRob Bradford
681b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
682b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
683b132cd21SRob Bradford
684b132cd21SRob Bradford### VM "Coredump" Support
685b132cd21SRob Bradford
686b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
687b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
688b132cd21SRob Bradford
689b132cd21SRob Bradford### Notable Bug Fixes
690b132cd21SRob Bradford
691b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
692b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
693b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
694b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
695b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
696b132cd21SRob Bradford  5.16 (#4156)
697b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
698b132cd21SRob Bradford  Linux guest
699b132cd21SRob Bradford
700b132cd21SRob Bradford### Removals
701b132cd21SRob Bradford
702b132cd21SRob BradfordThe following functionality has been removed:
703b132cd21SRob Bradford
704b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
705b132cd21SRob Bradford  (#3968)
706b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
707b132cd21SRob Bradford
708b132cd21SRob Bradford### Contributors
709b132cd21SRob Bradford
710b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
711b132cd21SRob Bradford
712b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
713b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
714b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
715b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
716b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
717b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
718b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
719b132cd21SRob Bradford
7200150de55SSebastien Boeuf# v24.0
7210150de55SSebastien Boeuf
7220150de55SSebastien BoeufThis release has been tracked through the [v24.0
7230150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
7240150de55SSebastien Boeuf
7250150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
7260150de55SSebastien Boeuf
7270150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
7280150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
7290150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
7300150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
7310150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
7320150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
7330150de55SSebastien Boeuf
7340150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
7350150de55SSebastien Boeuf
7360150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
7370150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
7380150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
7390150de55SSebastien Boeuf
7400150de55SSebastien Boeuf### Sparse Mmap support
7410150de55SSebastien Boeuf
7420150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
7430150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
7440150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
7450150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
7460150de55SSebastien Boeufimpacts the performance related to this device.
7470150de55SSebastien Boeuf
7480150de55SSebastien Boeuf### Expose Platform Serial Number
7490150de55SSebastien Boeuf
7500150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
7510150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
7520150de55SSebastien Boeufguest through the SMBIOS.
7530150de55SSebastien Boeuf
7540150de55SSebastien Boeuf### Notable Bug Fixes
7550150de55SSebastien Boeuf
7560150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
7570150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
7580150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
7590150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
7600150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
7610150de55SSebastien Boeuf
7620150de55SSebastien Boeuf### Notable Improvements
7630150de55SSebastien Boeuf
7640150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
7650150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
7660150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
7670150de55SSebastien Boeuf
7680150de55SSebastien Boeuf### Deprecations
7690150de55SSebastien Boeuf
7700150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
7710150de55SSebastien Boeufplan to use alternatives
7720150de55SSebastien Boeuf
7730150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
7740150de55SSebastien Boeuf  (#3968)
7750150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
7760150de55SSebastien Boeuf
7770150de55SSebastien Boeuf### New on the Website
7780150de55SSebastien Boeuf
7790150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
7800150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
7810150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
7820150de55SSebastien Boeuf
7830150de55SSebastien Boeuf### Contributors
7840150de55SSebastien Boeuf
7850150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
7860150de55SSebastien Boeuf
7870150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
7880150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
7890150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
7900150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
7910150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
7920150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
7930150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
7940150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
7950150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
7960150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
7970150de55SSebastien Boeuf
7980150de55SSebastien Boeuf# v23.1
7990150de55SSebastien Boeuf
8000150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
8010150de55SSebastien Boeuf
8020150de55SSebastien Boeuf* Add some missing seccomp rules
8030150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
8040150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
8050150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
8060150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
8070150de55SSebastien Boeuf
8080c9c56f5SRob Bradford# v23.0
8090c9c56f5SRob Bradford
8100c9c56f5SRob BradfordThis release has been tracked through the [v23.0
8110c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
8120c9c56f5SRob Bradford
8130c9c56f5SRob Bradford### vDPA Support
8140c9c56f5SRob Bradford
8150c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
8160c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
8170c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
8180c9c56f5SRob Bradford
8190c9c56f5SRob Bradford### Updated OS Support list
8200c9c56f5SRob Bradford
8210c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
8220c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
8230c9c56f5SRob Bradford
8240c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
8250c9c56f5SRob Bradford
8260c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
8270c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
8280c9c56f5SRob Bradfordallocated RAM. (#3938)
8290c9c56f5SRob Bradford
8300c9c56f5SRob Bradford### `AMX` Support
8310c9c56f5SRob Bradford
8320c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
8330c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
8340c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
8350c9c56f5SRob Bradford
8360c9c56f5SRob Bradford### Notable Bug Fixes
8370c9c56f5SRob Bradford
8380c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
8390c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
8400c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
8410c9c56f5SRob Bradford  `virtio-mem` (#3883)
8420c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
8430c9c56f5SRob Bradford  vIOMMU (#3870)
8440c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
8450c9c56f5SRob Bradford  (#3848)
8460c9c56f5SRob Bradford
8470c9c56f5SRob Bradford### Deprecations
8480c9c56f5SRob Bradford
8490c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
8500c9c56f5SRob Bradfordplan to use alternatives
8510c9c56f5SRob Bradford
8520c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
8530c9c56f5SRob Bradford  (#3968)
8540c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
8550c9c56f5SRob Bradford
8560c9c56f5SRob Bradford### Contributors
8570c9c56f5SRob Bradford
8580c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
8590c9c56f5SRob Bradford
8600c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
8610c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
8620c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
8630c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
8640c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
8650c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
8660c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
8670c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
8680c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
8690c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
8700c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
8710c9c56f5SRob Bradford
8720c9c56f5SRob Bradford# v22.1
8730c9c56f5SRob Bradford
8740c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
8750c9c56f5SRob Bradford
8760c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
8770c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
8780c9c56f5SRob Bradford
8796aa10938SRob Bradford# v22.0
8806aa10938SRob Bradford
8810c9c56f5SRob BradfordThis release has been tracked through the [v22.0
8820c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
8836aa10938SRob Bradford
8846aa10938SRob Bradford### GDB Debug Stub Support
8856aa10938SRob Bradford
8866aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
8876aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
8886aa10938SRob Bradfordthe [gdb
8896aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
8906aa10938SRob Bradford
8916aa10938SRob Bradford### `virtio-iommu` Backed Segments
8926aa10938SRob Bradford
8936aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
8946aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
8956aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
8966aa10938SRob Bradford
8976aa10938SRob Bradford### Before Boot Configuration Changes
8986aa10938SRob Bradford
8996aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
9006aa10938SRob Bradfordresize) before the VM is booted.
9016aa10938SRob Bradford
9026aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
9036aa10938SRob Bradford
9046aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
9056aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
9066aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
9076aa10938SRob Bradfordmemory density.
9086aa10938SRob Bradford
9096aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
9106aa10938SRob Bradford
9116aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
9126aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
9136aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
9146aa10938SRob Bradfordhas been updated for this usage.
9156aa10938SRob Bradford
9166aa10938SRob Bradford### PMU Support for AArch64
9176aa10938SRob Bradford
9186aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
9196aa10938SRob Bradfordexposed automatically if available from the host.
9206aa10938SRob Bradford
9210c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
9226aa10938SRob Bradford
9236aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
9246aa10938SRob BradfordInternational" license which is aligned with the project charter under the
9256aa10938SRob BradfordLinux Foundation.
9266aa10938SRob Bradford
9276aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
9286aa10938SRob Bradford
9296aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
9306aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
9316aa10938SRob Bradfordversion.
9326aa10938SRob Bradford
9336aa10938SRob Bradford### Notable Bug Fixes
9346aa10938SRob Bradford
9356aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
9366aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
9376aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
9386aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
9396aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
9406aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
9416aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
9426aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
9436aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
9446aa10938SRob Bradford
9456aa10938SRob Bradford### Contributors
9466aa10938SRob Bradford
9476aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
9486aa10938SRob Bradford
9496aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
9506aa10938SRob Bradford* Barret Rhoden <brho@google.com>
9516aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
9526aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
9536aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
9546aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
9556aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
9566aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
9576aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
9586aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
9596aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
9606aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
9616aa10938SRob Bradford
96295ca7997SRob Bradford# v21.0
96395ca7997SRob Bradford
96495ca7997SRob BradfordThis release has been tracked through the [v21.0
96595ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
96695ca7997SRob Bradford
96795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
96895ca7997SRob Bradford
9696aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
9706aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
9716aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
9726aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
9736aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
97495ca7997SRob Bradford
97595ca7997SRob Bradford### Recommended Kernel is Now 5.15
97695ca7997SRob Bradford
9776aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
9786aa10938SRob Bradfordis now 5.15. (#3530)
97995ca7997SRob Bradford
98095ca7997SRob Bradford### Notable Bug fixes
98195ca7997SRob Bradford
98295ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562)
98395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
98495ca7997SRob Bradford* Support live migration within firmware (#3586)
98595ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548)
98695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
98795ca7997SRob Bradford
98895ca7997SRob Bradford### Contributors
98995ca7997SRob Bradford
99095ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
99195ca7997SRob Bradford
99295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
99395ca7997SRob Bradford* Barret Rhoden <brho@google.com>
99495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
99595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
99695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
99795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
99895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
99995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
100095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
100195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
100295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
100395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
100495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
100595ca7997SRob Bradford
100695ca7997SRob Bradford# v20.2
100795ca7997SRob Bradford
100895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
100995ca7997SRob Bradford
101095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
101195ca7997SRob Bradford  when this fails due to older kernel (#3456)
101295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
101395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
101495ca7997SRob Bradford  (#3496)
101595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
101695ca7997SRob Bradford
101795ca7997SRob Bradford# v20.1
101895ca7997SRob Bradford
101995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
102095ca7997SRob Bradford
102195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
102295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
102395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
102495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
102595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
102695ca7997SRob Bradford
10277fc0776aSSebastien Boeuf# v20.0
10287fc0776aSSebastien Boeuf
10297fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
10307fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
10317fc0776aSSebastien Boeuf
10327fc0776aSSebastien Boeuf### Multiple PCI segments support
10337fc0776aSSebastien Boeuf
10347fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
10357fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
10367fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
10377fc0776aSSebastien Boeuf
10387fc0776aSSebastien Boeuf### CPU pinning
10397fc0776aSSebastien Boeuf
10407fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
10417fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
10427fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
10437fc0776aSSebastien Boeuf
10447fc0776aSSebastien Boeuf### Improved VFIO support
10457fc0776aSSebastien Boeuf
10467fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
10477fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
10487fc0776aSSebastien Boeufthe passthrough device.
10497fc0776aSSebastien Boeuf
10507fc0776aSSebastien Boeuf### Safer code
10517fc0776aSSebastien Boeuf
10527fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
10537fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
10547fc0776aSSebastien Boeufunsafe sections are safe to use.
10557fc0776aSSebastien Boeuf
10567fc0776aSSebastien Boeuf### Extended documentation
10577fc0776aSSebastien Boeuf
10587fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
10597fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
10607fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
10617fc0776aSSebastien Boeuf
10627fc0776aSSebastien Boeuf### Notable bug fixes
10637fc0776aSSebastien Boeuf
10647fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
10657fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
10667fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
10677fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
10687fc0776aSSebastien Boeuf
10697fc0776aSSebastien Boeuf### Contributors
10707fc0776aSSebastien Boeuf
10717fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
10727fc0776aSSebastien Boeuf
10737fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
10747fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
10757fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
10767fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
10777fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
10787fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
10797fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
10807fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
10817fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
10827fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
10837fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
10847fc0776aSSebastien Boeuf
1085d00eb4aaSRob Bradford# v19.0
1086d00eb4aaSRob Bradford
1087d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1088d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1089d00eb4aaSRob Bradford
1090d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1091d00eb4aaSRob Bradford
1092d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1093d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1094d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1095d00eb4aaSRob Bradford
1096d00eb4aaSRob Bradford### PCI boot time optimisations
1097d00eb4aaSRob Bradford
1098d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1099d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1100d00eb4aaSRob Bradford
1101d00eb4aaSRob Bradford### Improved TDX support
1102d00eb4aaSRob Bradford
1103d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1104d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1105d00eb4aaSRob Bradford
1106d00eb4aaSRob Bradford### Live migration enhancements
1107d00eb4aaSRob Bradford
1108d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1109d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1110d00eb4aaSRob Bradfordmigration.
1111d00eb4aaSRob Bradford
1112d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1113d00eb4aaSRob Bradford
1114d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1115d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1116d00eb4aaSRob Bradford
1117d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1118d00eb4aaSRob Bradford
1119d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1120d00eb4aaSRob Bradford
1121d00eb4aaSRob Bradford### Notable bug fixes
1122d00eb4aaSRob Bradford
1123d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1124d00eb4aaSRob Bradford  snapshot/restore (#3165)
1125d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1126d00eb4aaSRob Bradford  (#3078 #3113)
1127d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1128d00eb4aaSRob Bradford  the underlying crate (#3157)
1129d00eb4aaSRob Bradford
1130d00eb4aaSRob Bradford### Contributors
1131d00eb4aaSRob Bradford
1132d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1133d00eb4aaSRob Bradford
1134d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1135d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1136d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1137d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1138d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1139d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1140d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1141d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1142d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1143d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1144d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1145d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1146d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1147d00eb4aaSRob Bradford
11482c4f8d22SRob Bradford# v18.0
11492c4f8d22SRob Bradford
11502c4f8d22SRob BradfordThis release has been tracked through the [v18.0
11512c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
11522c4f8d22SRob Bradford
11532c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
11542c4f8d22SRob Bradford
11552c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
11562c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
11572c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
11582c4f8d22SRob Bradford
11592c4f8d22SRob Bradford### Migration support for `vhost-user` devices
11602c4f8d22SRob Bradford
11612c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
11622c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
11632c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
11642c4f8d22SRob Bradford
11652c4f8d22SRob Bradford### VHDX disk image support
11662c4f8d22SRob Bradford
11672c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
11682c4f8d22SRob Bradford
11692c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
11702c4f8d22SRob Bradford
11712c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
11722c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
11732c4f8d22SRob Bradford
11742c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
11752c4f8d22SRob Bradford
11762c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
11772c4f8d22SRob Bradford
11782c4f8d22SRob Bradford### Live migration on MSHV hypervisor
11792c4f8d22SRob Bradford
11802c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
11812c4f8d22SRob Bradfordefficient tracking of dirty pages.
11822c4f8d22SRob Bradford
11832c4f8d22SRob Bradford### AArch64 CPU topology support
11842c4f8d22SRob Bradford
11852c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
11862c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
11872c4f8d22SRob Bradfordtree.
11882c4f8d22SRob Bradford
11892c4f8d22SRob Bradford### Power button support on AArch64
11902c4f8d22SRob Bradford
11912c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
11922c4f8d22SRob Bradfordis now supported when running on AArch64.
11932c4f8d22SRob Bradford
11942c4f8d22SRob Bradford### Notable bug fixes
11952c4f8d22SRob Bradford
11962c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
11972c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
11982c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
11992c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
12002c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
12012c4f8d22SRob Bradford
12022c4f8d22SRob Bradford### Contributors
12032c4f8d22SRob Bradford
12042c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
12052c4f8d22SRob Bradford
12062c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
12072c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
12082c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
12092c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
12102c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
12112c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
12122c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
12132c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
12142c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
12152c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
12162c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
12172c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12182c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
12192c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1220e6db5999SRob Bradford
1221e6db5999SRob Bradford# v17.0
1222e6db5999SRob Bradford
1223e6db5999SRob BradfordThis release has been tracked through the [v17.0
1224e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1225e6db5999SRob Bradford
1226e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1227e6db5999SRob Bradford
1228e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1229e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1230e6db5999SRob Bradford
1231e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1232e6db5999SRob Bradford
1233e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1234e6db5999SRob Bradfordhypervisor backend.
1235e6db5999SRob Bradford
1236e6db5999SRob Bradford### Hotplug of `macvtap` devices
1237e6db5999SRob Bradford
1238e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1239e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1240e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1241e6db5999SRob Bradford
1242e6db5999SRob Bradford### Improved SGX support
1243e6db5999SRob Bradford
1244e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1245e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1246e6db5999SRob Bradford
1247e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1248e6db5999SRob Bradford
1249e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1250e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1251e6db5999SRob Bradford
1252e6db5999SRob Bradford### Notable bug fixes
1253e6db5999SRob Bradford
1254e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1255e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1256e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1257e6db5999SRob Bradford(#2833).
1258e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1259e6db5999SRob Bradford
1260e6db5999SRob Bradford### Contributors
1261e6db5999SRob Bradford
1262e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1263e6db5999SRob Bradford
1264e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1265e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1266e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1267e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1268e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1269e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1270e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1271e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1272e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1273e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1274e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1275e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1276e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1277e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1278e6db5999SRob Bradford
12795ed8e01fSRob Bradford# v16.0
12805ed8e01fSRob Bradford
12815ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
12825ed8e01fSRob Bradford
12835ed8e01fSRob Bradford### Improved live migration support
12845ed8e01fSRob Bradford
12855ed8e01fSRob 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.
12865ed8e01fSRob Bradford
12875ed8e01fSRob Bradford### Improved `vhost-user` support
12885ed8e01fSRob Bradford
12895ed8e01fSRob 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.
12905ed8e01fSRob Bradford
12915ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
12925ed8e01fSRob Bradford
12935ed8e01fSRob 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.
12945ed8e01fSRob Bradford
12955ed8e01fSRob Bradford### Notable bug fixes
12965ed8e01fSRob Bradford
12975ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
12985ed8e01fSRob 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).
12995ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
13005ed8e01fSRob Bradford
13015ed8e01fSRob Bradford### Removed functionality
13025ed8e01fSRob Bradford
13035ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
13045ed8e01fSRob Bradford
13055ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
13065ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
13075ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
13085ed8e01fSRob Bradford
13095ed8e01fSRob Bradford### Contributors
13105ed8e01fSRob Bradford
13115ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
13125ed8e01fSRob Bradford
13135ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
13145ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
13155ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
13165ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
13175ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
13185ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
13195ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
13205ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
13215ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
13225ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
13235ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
13245ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
13255ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
13265ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
13275ed8e01fSRob Bradford
132830a01277SRob Bradford# v15.0
132930a01277SRob Bradford
133030a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
133130a01277SRob Bradford
133230a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
133330a01277SRob Bradford
133430a01277SRob Bradford### Version numbering and stability guarantees
133530a01277SRob Bradford
133630a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
133730a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
133830a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
133930a01277SRob Bradford
134030a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
134130a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
134230a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
134330a01277SRob Bradford  will be documented in the release notes.
134430a01277SRob Bradford* Point releases will be made between individual releases where there are
134530a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
134630a01277SRob Bradford
134730a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
134830a01277SRob Bradford
134930a01277SRob Bradford* Snapshot/restore is not supported across different versions
135030a01277SRob Bradford* Live migration is not supported across different versions
135130a01277SRob Bradford* The following features are considered experimental and may change
135230a01277SRob Bradford  substantially between releases: TDX, SGX.
135330a01277SRob Bradford
135430a01277SRob Bradford### Network device rate limiting
135530a01277SRob Bradford
135630a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
135730a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
135830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
135930a01277SRob Bradford
136030a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
136130a01277SRob Bradford
136230a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
136330a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
136430a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
136530a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
136630a01277SRob Bradford
136730a01277SRob Bradford### `--api-socket` supports file descriptor parameter
136830a01277SRob Bradford
136930a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
137030a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
137130a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
137230a01277SRob Bradford
137330a01277SRob Bradford### Bug fixes
137430a01277SRob Bradford
137530a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
137630a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
137730a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
137830a01277SRob Bradford  reprogram them (#1797,#1798)
137930a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
138030a01277SRob Bradford  exhaustion on the host) (#2517)
138130a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
138230a01277SRob Bradford  prevents snapshot & restore working (#2535)
138330a01277SRob Bradford
138430a01277SRob Bradford### Deprecations
138530a01277SRob Bradford
138630a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
138730a01277SRob Bradford
138830a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
138930a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
139030a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
139130a01277SRob Bradford
139230a01277SRob Bradford### Contributors
139330a01277SRob Bradford
139430a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
139530a01277SRob Bradford
139630a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
139730a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
139830a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
139930a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
140030a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
140130a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
140230a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
140330a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
140430a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
140530a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
140630a01277SRob Bradford* William Douglas <william.douglas@intel.com>
140730a01277SRob Bradford
140830a01277SRob Bradford# v0.14.1
140930a01277SRob Bradford
141030a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
141130a01277SRob Bradfordin this release:
141230a01277SRob Bradford
141330a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
141430a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
141530a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
141630a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
141730a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
141830a01277SRob Bradford
141940c63dcfSRob Bradford# v0.14.0
142040c63dcfSRob Bradford
142140c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
142240c63dcfSRob Bradford
142340c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
142440c63dcfSRob Bradford
142540c63dcfSRob Bradford### Structured event monitoring
142640c63dcfSRob Bradford
142740c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
142840c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
142940c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
143040c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
143140c63dcfSRob BradfordHypervisor API surface.
143240c63dcfSRob Bradford
143340c63dcfSRob Bradford### MSHV improvements
143440c63dcfSRob Bradford
143540c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
143640c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
143740c63dcfSRob Bradfordthe MSHV support.
143840c63dcfSRob Bradford
143940c63dcfSRob Bradford### Improved aarch64 platform
144040c63dcfSRob Bradford
144140c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
144240c63dcfSRob BradfordVM including an enhanced serial UART.
144340c63dcfSRob Bradford
144440c63dcfSRob Bradford### Updated hotplug documentation
144540c63dcfSRob Bradford
144640c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
144740c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
144840c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
144940c63dcfSRob Bradford
145040c63dcfSRob Bradford### PTY control for serial and `virtio-console`
145140c63dcfSRob Bradford
145240c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
145340c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
145440c63dcfSRob BradfordPTY subsystem.
145540c63dcfSRob Bradford
145640c63dcfSRob Bradford### Block device rate limiting
145740c63dcfSRob Bradford
145840c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
145940c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
146030a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
146140c63dcfSRob Bradford
146240c63dcfSRob Bradford
146340c63dcfSRob Bradford### Deprecations
146440c63dcfSRob Bradford
146540c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
146640c63dcfSRob Bradford
146740c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
146840c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
146940c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
147040c63dcfSRob Bradford
147140c63dcfSRob Bradford
147240c63dcfSRob Bradford### Contributors
147340c63dcfSRob Bradford
147440c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
147540c63dcfSRob Bradfordsome new faces.
147640c63dcfSRob Bradford
147740c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
147840c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
147940c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
148040c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
148140c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
148240c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
148340c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
148440c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
148540c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
148640c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
148740c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
148840c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
148940c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
149040c63dcfSRob Bradford
1491f58b6f84SRob Bradford# v0.13.0
1492f58b6f84SRob Bradford
1493f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1494f58b6f84SRob Bradford
1495f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1496f58b6f84SRob Bradford
1497f58b6f84SRob Bradford### Wider VFIO device support
1498f58b6f84SRob Bradford
1499f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1500f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1501f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1502f58b6f84SRob Bradforddrivers.
1503f58b6f84SRob Bradford
150440c63dcfSRob Bradford### Improved huge page support
1505f58b6f84SRob Bradford
1506f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1507f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1508f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1509f58b6f84SRob Bradforddesired size in their pool.
1510f58b6f84SRob Bradford
1511f58b6f84SRob Bradford### MACvTAP support
1512f58b6f84SRob Bradford
1513f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1514f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1515f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1516f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1517f58b6f84SRob Bradford
1518f58b6f84SRob Bradford### VHD disk image support
1519f58b6f84SRob Bradford
1520f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1521f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1522f58b6f84SRob Bradford
1523f58b6f84SRob Bradford### Improved Virtio device threading
1524f58b6f84SRob Bradford
1525f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1526f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1527f58b6f84SRob Bradfordpredictable name derived from the device id.
1528f58b6f84SRob Bradford
1529f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1530f58b6f84SRob Bradford
1531f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1532f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1533f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1534f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1535f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1536f58b6f84SRob Bradford
1537f58b6f84SRob Bradford### Contributors
1538f58b6f84SRob Bradford
1539f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1540f58b6f84SRob Bradfordsome new faces.
1541f58b6f84SRob Bradford
1542f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1543f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1544f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1545f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1546f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1547f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1548f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1549f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1550f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1551f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1552f58b6f84SRob Bradford
1553d42b5084SRob Bradford# v0.12.0
1554d42b5084SRob Bradford
1555d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1556d42b5084SRob Bradford
1557d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1558d42b5084SRob Bradford
1559d42b5084SRob Bradford### ARM64 enhancements
1560d42b5084SRob Bradford
1561d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1562d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1563d42b5084SRob Bradford
1564d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1565d42b5084SRob Bradford
1566d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1567d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1568d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1569d42b5084SRob Bradfordremoved.
1570d42b5084SRob Bradford
1571d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1572d42b5084SRob Bradford
1573d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1574d42b5084SRob Bradfordinstead hosted in [it's own
1575d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1576d42b5084SRob Bradford
1577d42b5084SRob Bradford### Enhanced "info" API
1578d42b5084SRob Bradford
1579d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1580d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1581d42b5084SRob Bradford
1582d42b5084SRob Bradford### Contributors
1583d42b5084SRob Bradford
1584d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1585d42b5084SRob Bradford
1586d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1587d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1588d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1589d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1590d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1591d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1592d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1593d42b5084SRob Bradford
15947dcd3affSRob Bradford# v0.11.0
15957dcd3affSRob Bradford
15967dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
15977dcd3affSRob Bradford
15987dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
15997dcd3affSRob Bradford
16007dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
16017dcd3affSRob Bradford
16027dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
16037dcd3affSRob Bradfordbe used for a significantly higher performance block device.
16047dcd3affSRob Bradford
16057dcd3affSRob Bradford### Windows Guest Support
16067dcd3affSRob Bradford
16077dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
16087dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
16097dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
16107dcd3affSRob Bradforddocumentation](docs/windows.md).
16117dcd3affSRob Bradford
16127dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
16137dcd3affSRob Bradford
16147dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
16157dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
16167dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
16177dcd3affSRob Bradford
1618d00eb4aaSRob Bradford### `virtio-mmio` Removal
16197dcd3affSRob Bradford
16207dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
16217dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
16227dcd3affSRob Bradfordreduce the testing burden of the project.
16237dcd3affSRob Bradford
16247dcd3affSRob Bradford### Snapshot/Restore support for ARM64
16257dcd3affSRob Bradford
16267dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
16277dcd3affSRob Bradfordimplemented.
16287dcd3affSRob Bradford
16297dcd3affSRob Bradford### Improved Linux Boot Time
16307dcd3affSRob Bradford
16317dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
16327dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
16337dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
16347dcd3affSRob Bradford
16357dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
16367dcd3affSRob Bradford
16377dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
16387dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
16397dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
16407dcd3affSRob Bradfordresources.
16417dcd3affSRob Bradford
16427dcd3affSRob Bradford### Default Log Level Changed
16437dcd3affSRob Bradford
16447dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
16457dcd3affSRob Bradfordeasier to see potential issues. New [logging
16467dcd3affSRob Bradforddocumentation](docs/logging) was also added.
16477dcd3affSRob Bradford
16487dcd3affSRob Bradford### New `--balloon` Parameter Added
16497dcd3affSRob Bradford
16507dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
16517dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
16527dcd3affSRob Bradfordcontrols without overloading `--memory`.
16537dcd3affSRob Bradford
16547dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
16557dcd3affSRob Bradford
16567dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
16577dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
16587dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
16597dcd3affSRob Bradford
16607dcd3affSRob Bradford### Notable Bug Fixes
16617dcd3affSRob Bradford
16627dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
16637dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
16647dcd3affSRob Bradford* CPU identification string is now exposed to the guest
16657dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
16667dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
16677dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
16687dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
16697dcd3affSRob Bradford  can be used (#1803)
16707dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
16717dcd3affSRob Bradford  correctly
16727dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
16737dcd3affSRob Bradford  correctly
16747dcd3affSRob Bradford
16757dcd3affSRob Bradford### Contributors
16767dcd3affSRob Bradford
16777dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
16787dcd3affSRob Bradford
16797dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
16807dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
16817dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
16827dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
16837dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
16847dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
16857dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
16867dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
16877dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
16887dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
16897dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
16907dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
16917dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
16927dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
16937dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
16947dcd3affSRob Bradford
16957dcd3affSRob Bradford
1696198bd551SRob Bradford# v0.10.0
1697198bd551SRob Bradford
1698198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1699198bd551SRob Bradford
1700198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1701198bd551SRob Bradford
1702198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1703198bd551SRob Bradford
1704198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1705198bd551SRob Bradford
1706198bd551SRob Bradford### Memory Zones
1707198bd551SRob Bradford
1708198bd551SRob 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).
1709198bd551SRob Bradford
1710198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1711198bd551SRob Bradford
1712198bd551SRob 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`.
1713198bd551SRob Bradford
1714198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1715198bd551SRob Bradford
1716198bd551SRob 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.
1717198bd551SRob Bradford
1718198bd551SRob Bradford### Notable Bug Fixes
1719198bd551SRob Bradford
1720198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1721198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1722198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1723198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1724198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1725198bd551SRob Bradford
1726198bd551SRob Bradford### Contributors
1727198bd551SRob Bradford
1728198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1729198bd551SRob Bradford
1730198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1731198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1732198bd551SRob Bradford* Anatol Belski <ab@php.net>
1733198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1734198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1735198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1736198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1737198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1738198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1739198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1740198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1741198bd551SRob Bradford
1742d714cf81SRob Bradford# v0.9.0
1743d714cf81SRob Bradford
1744d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1745d714cf81SRob Bradford
1746d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1747d714cf81SRob Bradford
1748d714cf81SRob Bradford### `io_uring` Based Block Device Support
1749d714cf81SRob Bradford
1750d714cf81SRob 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.
1751d714cf81SRob Bradford
1752d714cf81SRob Bradford### Block and Network Device Statistics
1753d714cf81SRob Bradford
1754d714cf81SRob 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.
1755d714cf81SRob Bradford
1756d714cf81SRob Bradford### HTTP API Responses
1757d714cf81SRob Bradford
1758d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
1759d714cf81SRob Bradford
1760d714cf81SRob Bradford### CPU Topology
1761d714cf81SRob Bradford
1762d714cf81SRob 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.
1763d714cf81SRob Bradford
1764d714cf81SRob Bradford### Release Build Optimization
1765d714cf81SRob Bradford
1766d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
1767d714cf81SRob Bradford
1768d714cf81SRob Bradford### Hypervisor Abstraction
1769d714cf81SRob Bradford
1770d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
1771d714cf81SRob Bradford
1772d714cf81SRob Bradford### Snapshot/Restore Improvements
1773d714cf81SRob Bradford
1774d714cf81SRob 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.
1775d714cf81SRob Bradford
1776d714cf81SRob Bradford### Virtio Memory Ballooning Support
1777d714cf81SRob Bradford
1778d714cf81SRob 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.
1779d714cf81SRob Bradford
1780d714cf81SRob Bradford### Enhancements to ARM64 Support
1781d714cf81SRob Bradford
1782d714cf81SRob 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.
1783d714cf81SRob Bradford
1784d714cf81SRob Bradford### Intel SGX Support
1785d714cf81SRob Bradford
1786d714cf81SRob 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).
1787d714cf81SRob Bradford
1788d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
1789d714cf81SRob Bradford
1790d714cf81SRob 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.
1791d714cf81SRob Bradford
1792d714cf81SRob Bradford### Notable Bug Fixes
1793d714cf81SRob Bradford
1794d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
1795d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
1796d714cf81SRob 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).
1797d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
1798d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
1799d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
1800d714cf81SRob Bradford
1801d714cf81SRob Bradford### Contributors
1802d714cf81SRob Bradford
1803d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
1804d714cf81SRob Bradford
1805d714cf81SRob Bradford* Anatol Belski <ab@php.net>
1806d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
1807d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
1808d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1809d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
1810d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
1811d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1812d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1813d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
1814d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1815d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
1816d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
1817d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
1818d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1819d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1820d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1821d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
1822d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
1823d714cf81SRob Bradford
1824d714cf81SRob Bradford
182552b83969SRob Bradford# v0.8.0
182652b83969SRob Bradford
182752b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
182852b83969SRob Bradford
182952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
183052b83969SRob Bradford
183152b83969SRob Bradford### Experimental Snapshot and Restore Support
183252b83969SRob Bradford
183352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
183452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
183552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
183652b83969SRob Bradfordoriginal VM at the point it was paused.
183752b83969SRob Bradford
183852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
183952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
184052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
184152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
184252b83969SRob Bradford(#1176).
184352b83969SRob Bradford
184452b83969SRob Bradford### Experimental ARM64 Support
184552b83969SRob Bradford
184652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
184752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
184852b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
184952b83969SRob Bradford
185052b83969SRob Bradford### Support for Using 5-level Paging in Guests
185152b83969SRob Bradford
185252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
185352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
185452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
185552b83969SRob Bradfordwork due to current limitations in the PVH boot process.
185652b83969SRob Bradford
185752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
185852b83969SRob Bradford
185952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
186052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
186152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
186252b83969SRob Bradfordthe guest must service.
186352b83969SRob Bradford
186452b83969SRob Bradford### `vhost_user_fs` Improvements
186552b83969SRob Bradford
186652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
186752b83969SRob Bradford
186852b83969SRob Bradford
186952b83969SRob Bradford### Notable Bug Fixes
187052b83969SRob Bradford
187152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
187252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
187352b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
187452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
187552b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
187652b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
187752b83969SRob Bradford  #1216).
187852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
187952b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
188052b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
188152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
188252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
188352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
188452b83969SRob Bradford  (#751).
188552b83969SRob Bradford
188652b83969SRob Bradford### Command Line and API Changes
188752b83969SRob Bradford
188852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
188952b83969SRob Bradford
189052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
189152b83969SRob Bradford  rather than `sock` in some cases.
189252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
189352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
189452b83969SRob Bradford  offered for negotiation.
189552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
189652b83969SRob Bradford  address for the `tap` device on the host.
189752b83969SRob Bradford
189852b83969SRob Bradford### Contributors
189952b83969SRob Bradford
190052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
190152b83969SRob Bradford
190252b83969SRob Bradford* Anatol Belski <ab@php.net>
190352b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
190452b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
190552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
190652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
190752b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
190852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
190952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
191052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
191152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
191252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
191352b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
191452b83969SRob Bradford
191596be8229SRob Bradford# v0.7.0
191696be8229SRob Bradford
191796be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
191896be8229SRob Bradford
191996be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
192096be8229SRob Bradford
192196be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
192296be8229SRob Bradford
192396be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
192496be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
192596be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
19265c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
192796be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
192896be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
192996be8229SRob Bradforddevices to ease their removal.
193096be8229SRob Bradford
193196be8229SRob Bradford### Alternative `libc` Support
193296be8229SRob Bradford
193396be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
193496be8229SRob Bradfordcontains a static binary compiled using that toolchain.
193596be8229SRob Bradford
193696be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
193796be8229SRob Bradford
193896be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
193996be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
194096be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
194196be8229SRob Bradfordis passed when the devices are created.
194296be8229SRob Bradford
194396be8229SRob Bradford### Initial RamFS Support
194496be8229SRob Bradford
194596be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
194696be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
194796be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
194896be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
194996be8229SRob Bradfordminimal image.
195096be8229SRob Bradford
195196be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
195296be8229SRob Bradford
195396be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
195496be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
195596be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
195696be8229SRob Bradfordrequires kernel patches to be able to support it.
195796be8229SRob Bradford
195896be8229SRob Bradford### `Seccomp` Sandboxing
195996be8229SRob Bradford
196096be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
196196be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
196296be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
196396be8229SRob Bradford
196496be8229SRob Bradford### Updated Distribution Support
196596be8229SRob Bradford
196696be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
196796be8229SRob Bradforddistributions and is part of our regular testing programme.
196896be8229SRob Bradford
196996be8229SRob Bradford### Command Line and API Changes
197096be8229SRob Bradford
197196be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
197296be8229SRob Bradford
197396be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
197496be8229SRob Bradford  If no name is specified the VMM chooses one.
197596be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
197696be8229SRob Bradford  memory instead of providing a path.
197796be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
197896be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
197996be8229SRob Bradford  option and replaced it with a single optional field.
198096be8229SRob Bradford* There is enhanced validation of the command line and API provided
198196be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
198296be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
198396be8229SRob Bradford  device.
198496be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
198596be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
198696be8229SRob Bradford  has appropriate new HTTP endpoints too.
198796be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
198896be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
198996be8229SRob Bradford  to provide the equivalent of a read-only file.
199096be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
199196be8229SRob Bradford  with those used by `--disk`.
199296be8229SRob Bradford
199396be8229SRob Bradford### Contributors
199496be8229SRob Bradford
199596be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
199696be8229SRob Bradford
199796be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
199896be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
199996be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
200096be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
200196be8229SRob Bradford* Dean Sheather <dean@coder.com>
200296be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
200396be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
200496be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
200596be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
200696be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
200796be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
200896be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
200996be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
201096be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
201196be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
201296be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
201396be8229SRob Bradford
201403cb26ccSSamuel Ortiz# v0.6.0
201503cb26ccSSamuel Ortiz
201603cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
201703cb26ccSSamuel Ortiz
201803cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
201903cb26ccSSamuel Ortiz
202003cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
202103cb26ccSSamuel Ortiz
202203cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
202303cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
202403cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
202503cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
202603cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
202703cb26ccSSamuel Ortiz
202803cb26ccSSamuel Ortiz### Shared Filesystem Improvements
202903cb26ccSSamuel Ortiz
203003cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
203103cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
203203cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
203303cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
203403cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
203503cb26ccSSamuel Ortiz
203603cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
203703cb26ccSSamuel Ortiz
203803cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
203903cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
204003cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
204103cb26ccSSamuel Ortizinto their own, separate processes.
20425c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
204303cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
204403cb26ccSSamuel Ortiz
204503cb26ccSSamuel Ortiz### Command Line Interface
204603cb26ccSSamuel Ortiz
204703cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
204837a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
204937a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
205037a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
205137a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
205237a2c13aSAlyssa Rossis created with each build and available e.g. at
205303cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
205403cb26ccSSamuel Ortiz
205503cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
205603cb26ccSSamuel Ortizcommands.
205703cb26ccSSamuel Ortiz
205803cb26ccSSamuel Ortiz### PVH Boot
205903cb26ccSSamuel Ortiz
206003cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
206103cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
206203cb26ccSSamuel Ortiz
206303cb26ccSSamuel Ortiz### Contributors
206403cb26ccSSamuel Ortiz
206503cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
206603cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
206703cb26ccSSamuel Ortiz
206803cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
206903cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
207003cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
207103cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
207203cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
207303cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
207403cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
207503cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
207603cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
207703cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
207803cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
207903cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
208003cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
208103cb26ccSSamuel Ortiz
208294f2fc33SRob Bradford# v0.5.1
208394f2fc33SRob Bradford
208494f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
208594f2fc33SRob Bradford
208694f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
208794f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
208894f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
208994f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
209094f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
20918e8a7b6dSSamuel Ortiz
20922f395e60SSamuel Ortiz# v0.5.0
20932f395e60SSamuel Ortiz
20942f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
20952f395e60SSamuel Ortiz
20962f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
20972f395e60SSamuel Ortiz
20982f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
20992f395e60SSamuel Ortiz
21002f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
21012f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
21022f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
21032f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
21042f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
21052f395e60SSamuel Ortiz
21062f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
21072f395e60SSamuel Ortiz
21082f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
21092f395e60SSamuel Ortiz
21102f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
21112f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
21122f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
21132f395e60SSamuel Ortiz
21142f395e60SSamuel Ortiz### New Interrupt Management Framework
21152f395e60SSamuel Ortiz
21162f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
21172f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
21182f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
21192f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
21202f395e60SSamuel Ortizvirtio ones.
21212f395e60SSamuel Ortiz
21222f395e60SSamuel Ortiz### Development Tools
21232f395e60SSamuel Ortiz
21242f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
21252f395e60SSamuel Ortizbuild, development and testing tools.
21262f395e60SSamuel OrtizSomehow similar to the excellent
21272f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
212837a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
21292f395e60SSamuel Ortiz
21302f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
21312f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
21322f395e60SSamuel Ortiz
21332f395e60SSamuel Ortiz### Kata Containers Integration
21342f395e60SSamuel Ortiz
21352f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
21362f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
21372f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
21382f395e60SSamuel Ortizintegrated into the project's CI.
21392f395e60SSamuel Ortiz
21402f395e60SSamuel Ortiz### Contributors
21412f395e60SSamuel Ortiz
21422f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
21432f395e60SSamuel Ortiz
21442f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
21452f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
21462f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
21472f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
21482f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
21492f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
21502f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
21512f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
21522f395e60SSamuel Ortiz
2153cec884e8SSamuel Ortiz# v0.4.0
2154cec884e8SSamuel Ortiz
2155cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2156cec884e8SSamuel Ortiz
2157cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2158cec884e8SSamuel Ortiz
2159cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2160cec884e8SSamuel Ortiz
2161e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2162cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2163cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2164cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
216537a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2166cec884e8SSamuel Ortiz
2167cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2168cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2169cec884e8SSamuel Ortiz
2170cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2171cec884e8SSamuel Ortiz
2172cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2173cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2174cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2175cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2176cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2177cec884e8SSamuel Ortiz
2178cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2179cec884e8SSamuel Ortiz
2180cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2181cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2182cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2183cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2184cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2185cec884e8SSamuel Ortiz
2186cec884e8SSamuel Ortiz### Guest pause and resume
2187cec884e8SSamuel Ortiz
21885c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2189cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2190cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2191cec884e8SSamuel Ortizand resume capabilities.
2192cec884e8SSamuel Ortiz
2193cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2194cec884e8SSamuel Ortiz
2195cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2196cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2197cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2198cec884e8SSamuel Ortizdefault.
2199cec884e8SSamuel Ortiz
2200cec884e8SSamuel Ortiz### PCI BAR reprogramming
2201cec884e8SSamuel Ortiz
2202cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2203cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2204cec884e8SSamuel Ortizreprogramming.
2205cec884e8SSamuel Ortiz
2206cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2207cec884e8SSamuel Ortiz
2208cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2209cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2210cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2211cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2212cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2213cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2214cec884e8SSamuel Ortiztemporarily fork.
2215cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2216cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2217cec884e8SSamuel Ortiz
2218cec884e8SSamuel Ortiz### Contributors
2219cec884e8SSamuel Ortiz
2220cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2221cec884e8SSamuel Ortiz
2222cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2223cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2224cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2225cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2226cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2227cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2228cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2229cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2230cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2231cec884e8SSamuel Ortiz
22328e8a7b6dSSamuel Ortiz# v0.3.0
22338e8a7b6dSSamuel Ortiz
22348ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
22358e8a7b6dSSamuel Ortiz
22368e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
22378e8a7b6dSSamuel Ortiz
22388e8a7b6dSSamuel Ortiz### Block device offloading
22398e8a7b6dSSamuel Ortiz
22408e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
22418e8a7b6dSSamuel Ortizand we added support for
22428e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
22438e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
22448e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
22458e8a7b6dSSamuel Ortizbackend.
22468e8a7b6dSSamuel Ortiz
22478e8a7b6dSSamuel Ortiz### Network device backend
22488e8a7b6dSSamuel Ortiz
22498e8a7b6dSSamuel OrtizThe previous release provided support for
22508e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
22518e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
22528e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
22538e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
22548e8a7b6dSSamuel Ortiz
22558e8a7b6dSSamuel Ortiz### Virtual sockets
22568e8a7b6dSSamuel Ortiz
22578e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
22588e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
22598e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
22608e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
22618e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
22628e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
22638e8a7b6dSSamuel Ortiz
22648e8a7b6dSSamuel Ortiz### HTTP based API
22658e8a7b6dSSamuel Ortiz
22668e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
22678e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
22688e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
22698e8a7b6dSSamuel Ortiznext release cycle.
22708e8a7b6dSSamuel Ortiz
22718e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
22728e8a7b6dSSamuel Ortiz
22738e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
22748e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
22758e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
22768e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
22778e8a7b6dSSamuel Ortiz
22788e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
22798e8a7b6dSSamuel Ortiz
22808e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
228137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
228237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
22838e8a7b6dSSamuel Ortiz
22848e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
22858e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
22868e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
22878e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
22888e8a7b6dSSamuel Ortizsetting.
22898e8a7b6dSSamuel Ortiz
22908e8a7b6dSSamuel Ortiz### Ubuntu 19.10
22918e8a7b6dSSamuel Ortiz
22928ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
22938e8a7b6dSSamuel Ortizwe can now support the latest
22948e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
22958e8a7b6dSSamuel Ortiz
22968e8a7b6dSSamuel Ortiz### Large memory guests
22978e8a7b6dSSamuel Ortiz
22988e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
22998e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
23007688e6e2SSamuel Ortiz
2301d784ac29SSamuel Ortiz# v0.2.0
2302d784ac29SSamuel Ortiz
23038ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2304d784ac29SSamuel Ortiz
2305d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2306d784ac29SSamuel Ortiz
2307d784ac29SSamuel Ortiz### Network device offloading
2308d784ac29SSamuel Ortiz
2309d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2310d784ac29SSamuel Ortizprocesses, we added support for
2311d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2312d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2313d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2314d784ac29SSamuel Ortiz
2315d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2316d784ac29SSamuel Ortiz
2317d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2318d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2319d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2320d784ac29SSamuel Ortizcleanly reboot and shutdown.
2321d784ac29SSamuel Ortiz
2322d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2323d784ac29SSamuel Ortizenabled by default.
2324d784ac29SSamuel Ortiz
2325d784ac29SSamuel Ortiz### Debug I/O port
2326d784ac29SSamuel Ortiz
2327d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2328d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2329d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2330d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
233137a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
233237a2c13aSAlyssa Rossdetails.
2333d784ac29SSamuel Ortiz
2334d784ac29SSamuel Ortiz### Improved direct device assignment
2335d784ac29SSamuel Ortiz
2336d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2337d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2338d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2339d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2340d784ac29SSamuel Ortizdirectly assigned devices.
2341d784ac29SSamuel Ortiz
2342d784ac29SSamuel Ortiz### Improved shared filesystem
2343d784ac29SSamuel Ortiz
2344d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2345d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2346d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2347d784ac29SSamuel Ortizmemory footprint.
2348d784ac29SSamuel Ortiz
2349d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2350d784ac29SSamuel Ortiz
23518ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2352d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2353d784ac29SSamuel Ortizour CI pipeline.
2354d784ac29SSamuel Ortiz
235593b77530SSamuel Ortiz# v0.1.0
235693b77530SSamuel Ortiz
23578ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
235893b77530SSamuel Ortiz
235993b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
236093b77530SSamuel Ortiz
236193b77530SSamuel Ortiz### Shared filesystem
236293b77530SSamuel Ortiz
236393b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
236493b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
236593b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
236693b77530SSamuel Ortiz
236737a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
236837a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
236993b77530SSamuel Ortiz
237093b77530SSamuel Ortiz### Initial direct device assignment support
237193b77530SSamuel Ortiz
237293b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
237393b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
237493b77530SSamuel Ortizphysical devices into its guest.
237593b77530SSamuel Ortiz
237637a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
237737a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
237893b77530SSamuel Ortiz
237993b77530SSamuel Ortiz### Userspace IOAPIC
238093b77530SSamuel Ortiz
238193b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
238293b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
238393b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
238493b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
238593b77530SSamuel Ortiz
238693b77530SSamuel Ortiz### Virtual persistent memory
238793b77530SSamuel Ortiz
238893b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
238993b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
239093b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
239193b77530SSamuel Ortiz
239293b77530SSamuel Ortiz### Linux kernel bzImage
239393b77530SSamuel Ortiz
239493b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
239593b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
239693b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
239793b77530SSamuel Ortizdistribution kernel image.
239893b77530SSamuel Ortiz
239993b77530SSamuel Ortiz### Console over virtio
240093b77530SSamuel Ortiz
240193b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
240293b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
240393b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
240493b77530SSamuel Ortizimplementation.
240593b77530SSamuel Ortiz
240693b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
240793b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
240893b77530SSamuel Ortiz`--serial tty --console off` from the command line.
240993b77530SSamuel Ortiz
241093b77530SSamuel Ortiz### Unit testing
241193b77530SSamuel Ortiz
241293b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
241393b77530SSamuel Ortiz
241493b77530SSamuel Ortiz### Integration tests parallelization
241593b77530SSamuel Ortiz
241693b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
241793b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2418