xref: /cloud-hypervisor/release-notes.md (revision 7bf0cc1ed518c9d854caeec24f30715c1414fc56)
1487a43cdSRob Bradford- [v34.0](#v340)
2487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
3487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
4487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
5487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
66e0e6323SBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
76e0e6323SBo Chen    - [Contributors](#contributors)
8487a43cdSRob Bradford- [v33.0](#v330)
9487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
10487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
11487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-1)
12487a43cdSRob Bradford    - [Contributors](#contributors-1)
1342ca292dSRob Bradford- [v32.0](#v320)
1442ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
1542ca292dSRob Bradford    - [API Changes](#api-changes)
16487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-2)
17487a43cdSRob Bradford    - [Contributors](#contributors-2)
1842ca292dSRob Bradford- [v31.1](#v311)
19f3522e85SMichael Zhao- [v31.0](#v310)
20f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
21f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
22f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
23f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
24f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements)
25487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-3)
26487a43cdSRob Bradford    - [Contributors](#contributors-3)
27ece0e6faSBo Chen- [v30.0](#v300)
28ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
29ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
30ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
31f3522e85SMichael Zhao    - [Documentation Improvements](#documentation-improvements-1)
32487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
33487a43cdSRob Bradford    - [Contributors](#contributors-4)
34ece0e6faSBo Chen- [v28.2](#v282)
3522cf8c97SRob Bradford- [v29.0](#v290)
3622cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
3722cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
3822cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
3922cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
4022cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
4122cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
4222cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
43487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
4422cf8c97SRob Bradford    - [Removals](#removals)
4522cf8c97SRob Bradford    - [Deprecations](#deprecations)
46487a43cdSRob Bradford    - [Contributors](#contributors-5)
4722cf8c97SRob Bradford- [v28.1](#v281)
4866460765SRob Bradford- [v28.0](#v280)
4966460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
5066460765SRob Bradford    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
5166460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
5266460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
5366460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
54487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
5522cf8c97SRob Bradford    - [Removals](#removals-1)
56487a43cdSRob Bradford    - [Contributors](#contributors-6)
572ba6a9bfSRob Bradford- [v27.0](#v270)
582ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
592ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
602ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
612ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
622ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
632ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
642ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
65487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
66f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
67487a43cdSRob Bradford    - [Contributors](#contributors-7)
68f3522e85SMichael Zhao- [v26.0](#v260)
69f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
70f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
71487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-8)
7222cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
7366460765SRob Bradford    - [Removals](#removals-2)
74487a43cdSRob Bradford    - [Contributors](#contributors-8)
7522cf8c97SRob Bradford- [v25.0](#v250)
7622cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
7722cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
78487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-9)
7922cf8c97SRob Bradford    - [Removals](#removals-3)
80487a43cdSRob Bradford    - [Contributors](#contributors-9)
810150de55SSebastien Boeuf- [v24.0](#v240)
820150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
830150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
840150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
850150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
86487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-10)
870150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
8822cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
890150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
90487a43cdSRob Bradford    - [Contributors](#contributors-10)
910150de55SSebastien Boeuf- [v23.1](#v231)
920c9c56f5SRob Bradford- [v23.0](#v230)
930c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
940c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
950c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
960c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
97487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-11)
9822cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
99487a43cdSRob Bradford    - [Contributors](#contributors-11)
1000c9c56f5SRob Bradford- [v22.1](#v221)
1016aa10938SRob Bradford- [v22.0](#v220)
1026aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1036aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1046aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1056aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1066aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1076aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1080c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1096aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
110487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-12)
111487a43cdSRob Bradford    - [Contributors](#contributors-12)
11295ca7997SRob Bradford- [v21.0](#v210)
11395ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
11495ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
115487a43cdSRob Bradford    - [Notable Bug fixes](#notable-bug-fixes-13)
116487a43cdSRob Bradford    - [Contributors](#contributors-13)
11795ca7997SRob Bradford- [v20.2](#v202)
11895ca7997SRob Bradford- [v20.1](#v201)
1197fc0776aSSebastien Boeuf- [v20.0](#v200)
1207fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1217fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1227fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1237fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1247fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
125487a43cdSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-14)
126487a43cdSRob Bradford    - [Contributors](#contributors-14)
127d00eb4aaSRob Bradford- [v19.0](#v190)
128d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
129d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
130d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
131d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
132d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
133d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
134487a43cdSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-15)
135487a43cdSRob Bradford    - [Contributors](#contributors-15)
1362c4f8d22SRob Bradford- [v18.0](#v180)
1372c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
1382c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
1392c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
1402c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
1412c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
1422c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
1432c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
1442c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
145487a43cdSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-16)
146487a43cdSRob Bradford    - [Contributors](#contributors-16)
147e6db5999SRob Bradford- [v17.0](#v170)
148e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
149e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
150e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
151e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
152e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
153487a43cdSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-17)
154487a43cdSRob Bradford    - [Contributors](#contributors-17)
1555ed8e01fSRob Bradford- [v16.0](#v160)
1565ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
1575ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
1585ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
159487a43cdSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-18)
1605ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
161487a43cdSRob Bradford    - [Contributors](#contributors-18)
16230a01277SRob Bradford- [v15.0](#v150)
16330a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
16430a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
16530a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
166f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
16730a01277SRob Bradford    - [Bug fixes](#bug-fixes)
16822cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
169487a43cdSRob Bradford    - [Contributors](#contributors-19)
17030a01277SRob Bradford- [v0.14.1](#v0141)
17140c63dcfSRob Bradford- [v0.14.0](#v0140)
17240c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
17340c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
17440c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
17540c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
17640c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
17740c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
17822cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
179487a43cdSRob Bradford    - [Contributors](#contributors-20)
180f58b6f84SRob Bradford- [v0.13.0](#v0130)
181f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
18240c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
183f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
184f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
185f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
186f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
187487a43cdSRob Bradford    - [Contributors](#contributors-21)
188d42b5084SRob Bradford- [v0.12.0](#v0120)
189d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
190d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
191d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
192d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
193487a43cdSRob Bradford    - [Contributors](#contributors-22)
1947dcd3affSRob Bradford- [v0.11.0](#v0110)
1957dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
1967dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
1977dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
198d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
1997dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2007dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2017dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2027dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
203f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2047dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
205487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-19)
206487a43cdSRob Bradford    - [Contributors](#contributors-23)
207198bd551SRob Bradford- [v0.10.0](#v0100)
208198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
209198bd551SRob Bradford    - [Memory Zones](#memory-zones)
210198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
211198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
212487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-20)
213487a43cdSRob Bradford    - [Contributors](#contributors-24)
214d714cf81SRob Bradford- [v0.9.0](#v090)
215d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
216d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
217d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
218d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
219d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
220d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
221d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
222d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
223d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
224d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
225198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
226487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-21)
227487a43cdSRob Bradford    - [Contributors](#contributors-25)
228d714cf81SRob Bradford- [v0.8.0](#v080)
229d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
230d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
231d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
232d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
233d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
234487a43cdSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-22)
235d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
236487a43cdSRob Bradford    - [Contributors](#contributors-26)
23796be8229SRob Bradford- [v0.7.0](#v070)
23896be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
23996be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
24096be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
24196be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
24296be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
24396be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
24496be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
24552b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
246487a43cdSRob Bradford    - [Contributors](#contributors-27)
24703cb26ccSSamuel Ortiz- [v0.6.0](#v060)
24803cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
24903cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
25003cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
25103cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
25203cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
253487a43cdSRob Bradford    - [Contributors](#contributors-28)
25494f2fc33SRob Bradford- [v0.5.1](#v051)
2552f395e60SSamuel Ortiz- [v0.5.0](#v050)
25694f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
25794f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
25894f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
25994f2fc33SRob Bradford    - [Development Tools](#development-tools)
26094f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
261487a43cdSRob Bradford    - [Contributors](#contributors-29)
262cec884e8SSamuel Ortiz- [v0.4.0](#v040)
26394f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
26494f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
26594f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
26694f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
26794f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
26894f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
26994f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
270487a43cdSRob Bradford    - [Contributors](#contributors-30)
2718e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
27294f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
27394f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
27494f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
27594f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
27694f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
27794f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
27894f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
27994f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
2807688e6e2SSamuel Ortiz- [v0.2.0](#v020)
28194f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
28294f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
28394f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
28494f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
28594f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
28694f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
2877688e6e2SSamuel Ortiz- [v0.1.0](#v010)
28894f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
28994f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
29094f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
29194f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
29294f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
29394f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
29494f2fc33SRob Bradford    - [Unit testing](#unit-testing)
29594f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
29694f2fc33SRob Bradford
297487a43cdSRob Bradford# v34.0
298487a43cdSRob Bradford
299487a43cdSRob BradfordThis release has been tracked in our [roadmap
300487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
301487a43cdSRob Bradfordv34.0. The following user visible changes have been made:
302487a43cdSRob Bradford
303487a43cdSRob Bradford### Paravirtualised Panic Device Support
304487a43cdSRob Bradford
305487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
306487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
307487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
308487a43cdSRob Bradford
309487a43cdSRob Bradford### Improvements to VM Core Dump
310487a43cdSRob Bradford
311487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
312487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
313487a43cdSRob Bradford
314487a43cdSRob Bradford### QCOW2 Support for Backing Files
315487a43cdSRob Bradford
316487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
317487a43cdSRob Bradfordbacking files. (#5573)
318487a43cdSRob Bradford
319487a43cdSRob Bradford### Minimum Host Kernel Bump
320487a43cdSRob Bradford
321487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
322487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
323487a43cdSRob Bradford
324487a43cdSRob Bradford### Notable Bug Fixes
325487a43cdSRob Bradford
326487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
327487a43cdSRob Bradford  carries out this job with KVM) (#5561).
328487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
329487a43cdSRob Bradford  than MSI-X (#5658).
330487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
331487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
332487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
333487a43cdSRob Bradford  when all vCPUs are paused (#5611).
334487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
335487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
336487a43cdSRob Bradford
337487a43cdSRob Bradford### Contributors
338487a43cdSRob Bradford
339487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
340487a43cdSRob Bradford
341487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
342487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
343487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
344487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
345487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
346487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
347487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
348487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
349487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
350487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
351487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
352487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
353487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
354487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
355487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
356487a43cdSRob Bradford
3576e0e6323SBo Chen# v33.0
3586e0e6323SBo Chen
3596e0e6323SBo ChenThis release has been tracked in our [roadmap
3606e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
3616e0e6323SBo Chenv33.0. The following user visible changes have been made:
3626e0e6323SBo Chen
3636e0e6323SBo Chen### D-Bus based API
3646e0e6323SBo Chen
3656e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
3666e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
3676e0e6323SBo Chenfound in the [API documentation](docs/api.md).
3686e0e6323SBo Chen
3696e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
3706e0e6323SBo Chen
3716e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
3726e0e6323SBo Chenguest on AArch64.
3736e0e6323SBo Chen
3746e0e6323SBo Chen### Notable Bug Fixes
3756e0e6323SBo Chen
3766e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
3776e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
3786e0e6323SBo Chen* Fix TDX initialization (#5454)
3796e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
3806e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
3816e0e6323SBo Chen  (#5506, #5524)
3826e0e6323SBo Chen* Populate APIC ID properly (#5512)
3836e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
3846e0e6323SBo Chen
3856e0e6323SBo Chen### Contributors
3866e0e6323SBo Chen
3876e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
3886e0e6323SBo Chen
3896e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
3906e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
3916e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
3926e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
3936e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
3946e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
3956e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
3966e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
3976e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
3986e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
3996e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
4006e0e6323SBo Chen
40142ca292dSRob Bradford# v32.0
40242ca292dSRob Bradford
40342ca292dSRob BradfordThis release has been tracked in our [roadmap
40442ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
40542ca292dSRob Bradfordv32.0. The following user visible changes have been made:
40642ca292dSRob Bradford
40742ca292dSRob Bradford### Increased PCI Segment Limit
40842ca292dSRob Bradford
40942ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
41042ca292dSRob Bradford
41142ca292dSRob Bradford### API Changes
41242ca292dSRob Bradford
41342ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
41442ca292dSRob Bradford  (#5348)
41542ca292dSRob Bradford
41642ca292dSRob Bradford### Notable Bug Fixes
41742ca292dSRob Bradford
41842ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
41942ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
42042ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
42142ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
42242ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
42342ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
42442ca292dSRob Bradford* Fixes for TTY reset (#5414)
42542ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
42642ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
42742ca292dSRob Bradford
42842ca292dSRob Bradford### Contributors
42942ca292dSRob Bradford
43042ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
43142ca292dSRob Bradford
43242ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
43342ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
43442ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
43542ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
43642ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
43742ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
43842ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
43942ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
44042ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
44142ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
44242ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
44342ca292dSRob Bradford
44442ca292dSRob Bradford# v31.1
44542ca292dSRob Bradford
44642ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
44742ca292dSRob Bradford
44842ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
44942ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
45042ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
45142ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
45242ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
45342ca292dSRob Bradford
454f3522e85SMichael Zhao# v31.0
455f3522e85SMichael Zhao
456f3522e85SMichael ZhaoThis release has been tracked in our [roadmap
457f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
458f3522e85SMichael Zhaov31.0. The following user visible changes have been made:
459f3522e85SMichael Zhao
460f3522e85SMichael Zhao### Update to Latest `acpi_tables`
461f3522e85SMichael Zhao
462f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
463f3522e85SMichael ZhaoThere has been significant API changes in the crate.
464f3522e85SMichael Zhao
465f3522e85SMichael Zhao### Update Reference Kernel to 6.2
466f3522e85SMichael Zhao
467f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
468f3522e85SMichael Zhao
469f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
470f3522e85SMichael Zhao
471f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
472f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
473f3522e85SMichael Zhao
474f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
475f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
476f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
477f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
478f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
479f3522e85SMichael Zhao
480f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
481f3522e85SMichael Zhao
482f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
483f3522e85SMichael Zhao
484f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
485f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
486f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
487f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
488f3522e85SMichael Zhao
489f3522e85SMichael Zhao### Documentation Improvements
490f3522e85SMichael Zhao
491f3522e85SMichael Zhao* Various improvements in API document
492f3522e85SMichael Zhao* Improvements in Doc comments
493f3522e85SMichael Zhao* Updated Slack channel information in README
494f3522e85SMichael Zhao
495f3522e85SMichael Zhao### Notable Bug Fixes
496f3522e85SMichael Zhao
497f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
498f3522e85SMichael Zhao  client.
499f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
500f3522e85SMichael Zhao  endpoint.
501f3522e85SMichael Zhao
502f3522e85SMichael Zhao### Contributors
503f3522e85SMichael Zhao
504f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
505f3522e85SMichael Zhao
506f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
507f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
508f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
509f3522e85SMichael Zhao* Dom <peng6662001@163.com>
510f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
511f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
512f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
513f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
514f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
515f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
516f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
517f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
518f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
519f3522e85SMichael Zhao
520ece0e6faSBo Chen# v30.0
521ece0e6faSBo Chen
522ece0e6faSBo ChenThis release has been tracked in our [roadmap
523ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
524ece0e6faSBo Chenv30.0. The following user visible changes have been made:
525ece0e6faSBo Chen
526ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
527ece0e6faSBo Chen
528ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
529ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
530ece0e6faSBo Chenwere several syntax changes:
531ece0e6faSBo Chen
532ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
533ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
534ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
535ece0e6faSBo Chen
536ece0e6faSBo Chen### Basic vfio-user Server Support
537ece0e6faSBo Chen
538ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
539ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
540ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
541ece0e6faSBo Chen`rust-vmm` organization.
542ece0e6faSBo Chen
543ece0e6faSBo Chen### Heap Profiling Support
544ece0e6faSBo Chen
545ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
546ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
547ece0e6faSBo Chen
548ece0e6faSBo Chen### Documentation Improvements
549ece0e6faSBo Chen
550ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
551ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
552ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and
553ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
554ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
555ece0e6faSBo Chenexisting 'profiling' documentation.
556ece0e6faSBo Chen
557ece0e6faSBo Chen### Notable Bug Fixes
558ece0e6faSBo Chen
559ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
560ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
561ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
562ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
563ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
564ece0e6faSBo Chen
565ece0e6faSBo Chen### Contributors
566ece0e6faSBo Chen
567ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
568ece0e6faSBo Chen
569ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
570ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
571ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
572ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
573ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
574ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
575ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
576ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
577ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
578ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
579ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
580ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
581ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
582ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
583ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
584ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
585ece0e6faSBo Chen
586ece0e6faSBo Chen# v28.2
587ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
588ece0e6faSBo Chen
589ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
590ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
591ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
592ece0e6faSBo Chen
59322cf8c97SRob Bradford# v29.0
59422cf8c97SRob Bradford
59522cf8c97SRob BradfordThis release has been tracked in our [roadmap
59622cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
59722cf8c97SRob Bradfordv29.0. The following user visible changes have been made:
59822cf8c97SRob Bradford
59922cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
60022cf8c97SRob Bradford
60122cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
60222cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
60322cf8c97SRob Bradford
60422cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
60522cf8c97SRob Bradford
60622cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
60722cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
60822cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
60922cf8c97SRob Bradfordsupported but has worked for some versions.)
61022cf8c97SRob Bradford
61122cf8c97SRob Bradford### Heap Allocation Improvements
61222cf8c97SRob Bradford
61322cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
61422cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
61522cf8c97SRob Bradford
61622cf8c97SRob Bradford### `ch-remote` Improvements
61722cf8c97SRob Bradford
61822cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
61922cf8c97SRob Bradford`ch-remote`.
62022cf8c97SRob Bradford
62122cf8c97SRob Bradford### `AArch64` Documentation Integration
62222cf8c97SRob Bradford
62322cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
62422cf8c97SRob BradfordREADME.
62522cf8c97SRob Bradford
62622cf8c97SRob Bradford### `virtio-block` Counters Enhancement
62722cf8c97SRob Bradford
62822cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
62922cf8c97SRob Bradfordlatency counters.
63022cf8c97SRob Bradford
63122cf8c97SRob Bradford### TCP Offload Control
63222cf8c97SRob Bradford
63322cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
63422cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
63522cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
63622cf8c97SRob Bradford
63722cf8c97SRob Bradford### Notable Bug Fixes
63822cf8c97SRob Bradford
63922cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
64022cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
64122cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
64222cf8c97SRob Bradford  (#4924, #4949)
64322cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
64422cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
64522cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
64622cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
64722cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
64822cf8c97SRob Bradford
64922cf8c97SRob Bradford### Removals
65022cf8c97SRob Bradford
65122cf8c97SRob BradfordNo functionality has been removed in this release.
65222cf8c97SRob Bradford
65322cf8c97SRob Bradford### Deprecations
65422cf8c97SRob Bradford
65522cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
65622cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
65722cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
65822cf8c97SRob Bradford  (#5085)
65922cf8c97SRob Bradford
66022cf8c97SRob Bradford### Contributors
66122cf8c97SRob Bradford
66222cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
66322cf8c97SRob Bradford
66422cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
66522cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
66622cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
66722cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
66822cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
66922cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
67022cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
67122cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
67222cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
67322cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
67422cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
67522cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
67622cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
67722cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
67822cf8c97SRob Bradford
67922cf8c97SRob Bradford
68022cf8c97SRob Bradford# v28.1
68122cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
68222cf8c97SRob Bradford
68322cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
68422cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
68522cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
68622cf8c97SRob Bradford  (#4924, #4949)
68722cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
68822cf8c97SRob Bradford* Improve README and documentation
68922cf8c97SRob Bradford
69066460765SRob Bradford# v28.0
69166460765SRob Bradford
69266460765SRob BradfordThis release has been tracked in our new [roadmap
69366460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
69466460765SRob Bradfordv28.0.
69566460765SRob Bradford
69666460765SRob Bradford### Community Engagement (Reminder)
69766460765SRob Bradford
69866460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
69966460765SRob Bradforddiscussions.  Please consider
70066460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
70166460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
70266460765SRob BradfordHypervisor development.
70366460765SRob Bradford
70466460765SRob Bradford### Long Term Support (LTS) Release
70566460765SRob Bradford
70666460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
70766460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
70866460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
70966460765SRob Bradfordreleases of the LTS.
71066460765SRob Bradford
71166460765SRob Bradford### Virtualised TPM Support
71266460765SRob Bradford
71366460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM
71466460765SRob Bradforddocumentation](docs/tpm.md).
71566460765SRob Bradford
71666460765SRob Bradford### Transparent Huge Page Support
71766460765SRob Bradford
71866460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
71966460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
72066460765SRob Bradfordthen this will be used resulting in improved boot performance.
72166460765SRob Bradford
72266460765SRob Bradford### README Quick Start Improved
72366460765SRob Bradford
72466460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
72566460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
72666460765SRob Bradford
72766460765SRob Bradford### Notable Bug Fixes
72866460765SRob Bradford
72966460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
73066460765SRob Bradford  memory consumption (#4835)
73166460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
73266460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
73366460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
73466460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
73566460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
73666460765SRob Bradford  newer Linux kernels (#4744)
73766460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
73866460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
73966460765SRob Bradford
74066460765SRob Bradford### Removals
74166460765SRob Bradford
74266460765SRob BradfordThe following functionality has been removed:
74366460765SRob Bradford
74466460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
74566460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
74666460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
74766460765SRob Bradford
74866460765SRob Bradford### Contributors
74966460765SRob Bradford
75066460765SRob BradfordMany thanks to everyone who has contributed to our release:
75166460765SRob Bradford
75266460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
75366460765SRob Bradford* Bo Chen <chen.bo@intel.com>
75466460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
75566460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
75666460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
75766460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
75866460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
75966460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
76066460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
76166460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
76266460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
76366460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
76466460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
76566460765SRob Bradford
7662ba6a9bfSRob Bradford# v27.0
7672ba6a9bfSRob Bradford
7682ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap
7692ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration
7702ba6a9bfSRob Bradfordv27.0.
7712ba6a9bfSRob Bradford
7722ba6a9bfSRob Bradford### Community Engagement
7732ba6a9bfSRob Bradford
7742ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
7752ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
7762ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
7772ba6a9bfSRob Bradford
7782ba6a9bfSRob Bradford### Prebuilt Packages
7792ba6a9bfSRob Bradford
7802ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
7812ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
7822ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
7832ba6a9bfSRob Bradfordfirmware options available.
7842ba6a9bfSRob Bradford
7852ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
7862ba6a9bfSRob Bradford
7872ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
7882ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
7892ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
7902ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
7912ba6a9bfSRob Bradford(#4658, #4676.)
7922ba6a9bfSRob Bradford
7932ba6a9bfSRob Bradford### Boot Tracing
7942ba6a9bfSRob Bradford
7952ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
7962ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
7972ba6a9bfSRob Bradford
7982ba6a9bfSRob Bradford### Simplified Build Feature Flags
7992ba6a9bfSRob Bradford
8002ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
8012ba6a9bfSRob Bradford
8022ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
8032ba6a9bfSRob Bradford  (with `kvm` enabled by default),
8042ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
8052ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
8062ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
8072ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
8082ba6a9bfSRob Bradford  feature) and dumping guest memory.
8092ba6a9bfSRob Bradford
8102ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
8112ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
8122ba6a9bfSRob Bradford
8132ba6a9bfSRob Bradford### Asynchronous Kernel Loading
8142ba6a9bfSRob Bradford
8152ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
8162ba6a9bfSRob Bradfordx86-64. (#4538)
8172ba6a9bfSRob Bradford
8182ba6a9bfSRob Bradford### GDB Support for AArch64
8192ba6a9bfSRob Bradford
8202ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
8212ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
8222ba6a9bfSRob Bradford
8232ba6a9bfSRob Bradford### Notable Bug Fixes
8242ba6a9bfSRob Bradford
8252ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
8262ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
8272ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
8282ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
8292ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
8302ba6a9bfSRob Bradford
8312ba6a9bfSRob Bradford### Deprecations
8322ba6a9bfSRob Bradford
8332ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
8342ba6a9bfSRob Bradfordplan to use alternatives.
8352ba6a9bfSRob Bradford
8362ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
8372ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
8382ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
8392ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
8402ba6a9bfSRob Bradford
8412ba6a9bfSRob Bradford### Contributors
8422ba6a9bfSRob Bradford
8432ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
8442ba6a9bfSRob Bradford
8452ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
8462ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
8472ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
8482ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
8492ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
8502ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
8512ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
8522ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
8532ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
8542ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
8552ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
8562ba6a9bfSRob Bradford
857ed9e54d6SRob Bradford# v26.0
858ed9e54d6SRob Bradford
859ed9e54d6SRob BradfordThis release has been tracked through the [v26.0
860ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30).
861ed9e54d6SRob Bradford
862ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
863ed9e54d6SRob Bradford
864ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
865ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
866ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
867ed9e54d6SRob Bradford
868ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
869ed9e54d6SRob Bradford
870ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
871ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
872ed9e54d6SRob Bradford
873ed9e54d6SRob Bradford### Notable Bug Fixes
874ed9e54d6SRob Bradford
875ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
876*7bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
877ed9e54d6SRob Bradford  out (#4456)
878ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
879ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
880ed9e54d6SRob Bradford  (#4269, #4293)
881ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
882ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
883ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
884ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
885ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
886ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
887ed9e54d6SRob Bradford
888ed9e54d6SRob Bradford### Deprecations
889ed9e54d6SRob Bradford
890ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
891ed9e54d6SRob Bradfordplan to use alternatives.
892ed9e54d6SRob Bradford
893ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
894ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
895ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
896ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
897ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
898ed9e54d6SRob Bradford
899ed9e54d6SRob Bradford### Removals
900ed9e54d6SRob Bradford
901ed9e54d6SRob BradfordThe following functionality has been removed:
902ed9e54d6SRob Bradford
903ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
904ed9e54d6SRob Bradford  equivalent. This was residual from the the removal of the `vhost-user-block`
905ed9e54d6SRob Bradford  spawning feature (#4402.)
906ed9e54d6SRob Bradford
907ed9e54d6SRob Bradford### Contributors
908ed9e54d6SRob Bradford
909ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
910ed9e54d6SRob Bradford
911ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
912ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
913ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
914ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
915ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
916ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
917ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
918ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
919ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
920ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
921ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
922ed9e54d6SRob Bradford
923b132cd21SRob Bradford# v25.0
924b132cd21SRob Bradford
925b132cd21SRob BradfordThis release has been tracked through the [v25.0
926b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29).
927b132cd21SRob Bradford
928b132cd21SRob Bradford### `ch-remote` Improvements
929b132cd21SRob Bradford
930b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
931b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
932b132cd21SRob Bradford
933b132cd21SRob Bradford### VM "Coredump" Support
934b132cd21SRob Bradford
935b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
936b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
937b132cd21SRob Bradford
938b132cd21SRob Bradford### Notable Bug Fixes
939b132cd21SRob Bradford
940b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
941b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
942b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
943b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
944b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
945b132cd21SRob Bradford  5.16 (#4156)
946b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
947b132cd21SRob Bradford  Linux guest
948b132cd21SRob Bradford
949b132cd21SRob Bradford### Removals
950b132cd21SRob Bradford
951b132cd21SRob BradfordThe following functionality has been removed:
952b132cd21SRob Bradford
953b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
954b132cd21SRob Bradford  (#3968)
955b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
956b132cd21SRob Bradford
957b132cd21SRob Bradford### Contributors
958b132cd21SRob Bradford
959b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
960b132cd21SRob Bradford
961b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
962b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
963b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
964b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
965b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
966b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
967b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
968b132cd21SRob Bradford
9690150de55SSebastien Boeuf# v24.0
9700150de55SSebastien Boeuf
9710150de55SSebastien BoeufThis release has been tracked through the [v24.0
9720150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28).
9730150de55SSebastien Boeuf
9740150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
9750150de55SSebastien Boeuf
9760150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
9770150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
9780150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
9790150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
9800150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
9810150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
9820150de55SSebastien Boeuf
9830150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
9840150de55SSebastien Boeuf
9850150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
9860150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
9870150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
9880150de55SSebastien Boeuf
9890150de55SSebastien Boeuf### Sparse Mmap support
9900150de55SSebastien Boeuf
9910150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
9920150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
9930150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
9940150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
9950150de55SSebastien Boeufimpacts the performance related to this device.
9960150de55SSebastien Boeuf
9970150de55SSebastien Boeuf### Expose Platform Serial Number
9980150de55SSebastien Boeuf
9990150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
10000150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
10010150de55SSebastien Boeufguest through the SMBIOS.
10020150de55SSebastien Boeuf
10030150de55SSebastien Boeuf### Notable Bug Fixes
10040150de55SSebastien Boeuf
10050150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
10060150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
10070150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
10080150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
10090150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
10100150de55SSebastien Boeuf
10110150de55SSebastien Boeuf### Notable Improvements
10120150de55SSebastien Boeuf
10130150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
10140150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
10150150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
10160150de55SSebastien Boeuf
10170150de55SSebastien Boeuf### Deprecations
10180150de55SSebastien Boeuf
10190150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
10200150de55SSebastien Boeufplan to use alternatives
10210150de55SSebastien Boeuf
10220150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
10230150de55SSebastien Boeuf  (#3968)
10240150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
10250150de55SSebastien Boeuf
10260150de55SSebastien Boeuf### New on the Website
10270150de55SSebastien Boeuf
10280150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
10290150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
10300150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
10310150de55SSebastien Boeuf
10320150de55SSebastien Boeuf### Contributors
10330150de55SSebastien Boeuf
10340150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
10350150de55SSebastien Boeuf
10360150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
10370150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
10380150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
10390150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
10400150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
10410150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
10420150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
10430150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
10440150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
10450150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
10460150de55SSebastien Boeuf
10470150de55SSebastien Boeuf# v23.1
10480150de55SSebastien Boeuf
10490150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
10500150de55SSebastien Boeuf
10510150de55SSebastien Boeuf* Add some missing seccomp rules
10520150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
10530150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
10540150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
10550150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
10560150de55SSebastien Boeuf
10570c9c56f5SRob Bradford# v23.0
10580c9c56f5SRob Bradford
10590c9c56f5SRob BradfordThis release has been tracked through the [v23.0
10600c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27).
10610c9c56f5SRob Bradford
10620c9c56f5SRob Bradford### vDPA Support
10630c9c56f5SRob Bradford
10640c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
10650c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
10660c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
10670c9c56f5SRob Bradford
10680c9c56f5SRob Bradford### Updated OS Support list
10690c9c56f5SRob Bradford
10700c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
10710c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
10720c9c56f5SRob Bradford
10730c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
10740c9c56f5SRob Bradford
10750c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
10760c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
10770c9c56f5SRob Bradfordallocated RAM. (#3938)
10780c9c56f5SRob Bradford
10790c9c56f5SRob Bradford### `AMX` Support
10800c9c56f5SRob Bradford
10810c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
10820c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
10830c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
10840c9c56f5SRob Bradford
10850c9c56f5SRob Bradford### Notable Bug Fixes
10860c9c56f5SRob Bradford
10870c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
10880c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
10890c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
10900c9c56f5SRob Bradford  `virtio-mem` (#3883)
10910c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
10920c9c56f5SRob Bradford  vIOMMU (#3870)
10930c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
10940c9c56f5SRob Bradford  (#3848)
10950c9c56f5SRob Bradford
10960c9c56f5SRob Bradford### Deprecations
10970c9c56f5SRob Bradford
10980c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
10990c9c56f5SRob Bradfordplan to use alternatives
11000c9c56f5SRob Bradford
11010c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
11020c9c56f5SRob Bradford  (#3968)
11030c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
11040c9c56f5SRob Bradford
11050c9c56f5SRob Bradford### Contributors
11060c9c56f5SRob Bradford
11070c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
11080c9c56f5SRob Bradford
11090c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
11100c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
11110c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
11120c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
11130c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
11140c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
11150c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
11160c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
11170c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
11180c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
11190c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
11200c9c56f5SRob Bradford
11210c9c56f5SRob Bradford# v22.1
11220c9c56f5SRob Bradford
11230c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
11240c9c56f5SRob Bradford
11250c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
11260c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
11270c9c56f5SRob Bradford
11286aa10938SRob Bradford# v22.0
11296aa10938SRob Bradford
11300c9c56f5SRob BradfordThis release has been tracked through the [v22.0
11310c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25).
11326aa10938SRob Bradford
11336aa10938SRob Bradford### GDB Debug Stub Support
11346aa10938SRob Bradford
11356aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
11366aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
11376aa10938SRob Bradfordthe [gdb
11386aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
11396aa10938SRob Bradford
11406aa10938SRob Bradford### `virtio-iommu` Backed Segments
11416aa10938SRob Bradford
11426aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
11436aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
11446aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
11456aa10938SRob Bradford
11466aa10938SRob Bradford### Before Boot Configuration Changes
11476aa10938SRob Bradford
11486aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
11496aa10938SRob Bradfordresize) before the VM is booted.
11506aa10938SRob Bradford
11516aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
11526aa10938SRob Bradford
11536aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
11546aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
11556aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
11566aa10938SRob Bradfordmemory density.
11576aa10938SRob Bradford
11586aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
11596aa10938SRob Bradford
11606aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
11616aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
11626aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
11636aa10938SRob Bradfordhas been updated for this usage.
11646aa10938SRob Bradford
11656aa10938SRob Bradford### PMU Support for AArch64
11666aa10938SRob Bradford
11676aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
11686aa10938SRob Bradfordexposed automatically if available from the host.
11696aa10938SRob Bradford
11700c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
11716aa10938SRob Bradford
11726aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
11736aa10938SRob BradfordInternational" license which is aligned with the project charter under the
11746aa10938SRob BradfordLinux Foundation.
11756aa10938SRob Bradford
11766aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
11776aa10938SRob Bradford
11786aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
11796aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
11806aa10938SRob Bradfordversion.
11816aa10938SRob Bradford
11826aa10938SRob Bradford### Notable Bug Fixes
11836aa10938SRob Bradford
11846aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
11856aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
11866aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
11876aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
11886aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
11896aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
11906aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
11916aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
11926aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
11936aa10938SRob Bradford
11946aa10938SRob Bradford### Contributors
11956aa10938SRob Bradford
11966aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
11976aa10938SRob Bradford
11986aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
11996aa10938SRob Bradford* Barret Rhoden <brho@google.com>
12006aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
12016aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
12026aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
12036aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
12046aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
12056aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
12066aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
12076aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
12086aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
12096aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
12106aa10938SRob Bradford
121195ca7997SRob Bradford# v21.0
121295ca7997SRob Bradford
121395ca7997SRob BradfordThis release has been tracked through the [v21.0
121495ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24).
121595ca7997SRob Bradford
121695ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
121795ca7997SRob Bradford
12186aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
12196aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
12206aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
12216aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
12226aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
122395ca7997SRob Bradford
122495ca7997SRob Bradford### Recommended Kernel is Now 5.15
122595ca7997SRob Bradford
12266aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
12276aa10938SRob Bradfordis now 5.15. (#3530)
122895ca7997SRob Bradford
122995ca7997SRob Bradford### Notable Bug fixes
123095ca7997SRob Bradford
1231*7bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
123295ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
123395ca7997SRob Bradford* Support live migration within firmware (#3586)
1234*7bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
123595ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
123695ca7997SRob Bradford
123795ca7997SRob Bradford### Contributors
123895ca7997SRob Bradford
123995ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
124095ca7997SRob Bradford
124195ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
124295ca7997SRob Bradford* Barret Rhoden <brho@google.com>
124395ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
124495ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
124595ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
124695ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
124795ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
124895ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
124995ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
125095ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
125195ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
125295ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
125395ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
125495ca7997SRob Bradford
125595ca7997SRob Bradford# v20.2
125695ca7997SRob Bradford
125795ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
125895ca7997SRob Bradford
125995ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
126095ca7997SRob Bradford  when this fails due to older kernel (#3456)
126195ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
126295ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
126395ca7997SRob Bradford  (#3496)
126495ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
126595ca7997SRob Bradford
126695ca7997SRob Bradford# v20.1
126795ca7997SRob Bradford
126895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
126995ca7997SRob Bradford
127095ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
127195ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
127295ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
127395ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
127495ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
127595ca7997SRob Bradford
12767fc0776aSSebastien Boeuf# v20.0
12777fc0776aSSebastien Boeuf
12787fc0776aSSebastien BoeufThis release has been tracked through the [v20.0
12797fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23).
12807fc0776aSSebastien Boeuf
12817fc0776aSSebastien Boeuf### Multiple PCI segments support
12827fc0776aSSebastien Boeuf
12837fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
12847fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
12857fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
12867fc0776aSSebastien Boeuf
12877fc0776aSSebastien Boeuf### CPU pinning
12887fc0776aSSebastien Boeuf
12897fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
12907fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
12917fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
12927fc0776aSSebastien Boeuf
12937fc0776aSSebastien Boeuf### Improved VFIO support
12947fc0776aSSebastien Boeuf
12957fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
12967fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
12977fc0776aSSebastien Boeufthe passthrough device.
12987fc0776aSSebastien Boeuf
12997fc0776aSSebastien Boeuf### Safer code
13007fc0776aSSebastien Boeuf
13017fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
13027fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
13037fc0776aSSebastien Boeufunsafe sections are safe to use.
13047fc0776aSSebastien Boeuf
13057fc0776aSSebastien Boeuf### Extended documentation
13067fc0776aSSebastien Boeuf
13077fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
13087fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
13097fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
13107fc0776aSSebastien Boeuf
13117fc0776aSSebastien Boeuf### Notable bug fixes
13127fc0776aSSebastien Boeuf
13137fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
13147fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
13157fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
13167fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
13177fc0776aSSebastien Boeuf
13187fc0776aSSebastien Boeuf### Contributors
13197fc0776aSSebastien Boeuf
13207fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
13217fc0776aSSebastien Boeuf
13227fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
13237fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
13247fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
13257fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
13267fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
13277fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
13287fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
13297fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
13307fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
13317fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
13327fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
13337fc0776aSSebastien Boeuf
1334d00eb4aaSRob Bradford# v19.0
1335d00eb4aaSRob Bradford
1336d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
1337d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
1338d00eb4aaSRob Bradford
1339d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
1340d00eb4aaSRob Bradford
1341d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
1342d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
1343d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
1344d00eb4aaSRob Bradford
1345d00eb4aaSRob Bradford### PCI boot time optimisations
1346d00eb4aaSRob Bradford
1347d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
1348d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
1349d00eb4aaSRob Bradford
1350d00eb4aaSRob Bradford### Improved TDX support
1351d00eb4aaSRob Bradford
1352d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
1353d00eb4aaSRob Bradfordexposed via the firmware to the guest.
1354d00eb4aaSRob Bradford
1355d00eb4aaSRob Bradford### Live migration enhancements
1356d00eb4aaSRob Bradford
1357d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
1358d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
1359d00eb4aaSRob Bradfordmigration.
1360d00eb4aaSRob Bradford
1361d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
1362d00eb4aaSRob Bradford
1363d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
1364d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
1365d00eb4aaSRob Bradford
1366d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
1367d00eb4aaSRob Bradford
1368d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
1369d00eb4aaSRob Bradford
1370d00eb4aaSRob Bradford### Notable bug fixes
1371d00eb4aaSRob Bradford
1372d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
1373d00eb4aaSRob Bradford  snapshot/restore (#3165)
1374d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
1375d00eb4aaSRob Bradford  (#3078 #3113)
1376d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
1377d00eb4aaSRob Bradford  the underlying crate (#3157)
1378d00eb4aaSRob Bradford
1379d00eb4aaSRob Bradford### Contributors
1380d00eb4aaSRob Bradford
1381d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
1382d00eb4aaSRob Bradford
1383d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
1384d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
1385d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
1386d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
1387d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1388d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
1389d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
1390d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
1391d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
1392d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1393d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
1394d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
1395d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1396d00eb4aaSRob Bradford
13972c4f8d22SRob Bradford# v18.0
13982c4f8d22SRob Bradford
13992c4f8d22SRob BradfordThis release has been tracked through the [v18.0
14002c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
14012c4f8d22SRob Bradford
14022c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
14032c4f8d22SRob Bradford
14042c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
14052c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
14062c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
14072c4f8d22SRob Bradford
14082c4f8d22SRob Bradford### Migration support for `vhost-user` devices
14092c4f8d22SRob Bradford
14102c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
14112c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
14122c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
14132c4f8d22SRob Bradford
14142c4f8d22SRob Bradford### VHDX disk image support
14152c4f8d22SRob Bradford
14162c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
14172c4f8d22SRob Bradford
14182c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
14192c4f8d22SRob Bradford
14202c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
14212c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
14222c4f8d22SRob Bradford
14232c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
14242c4f8d22SRob Bradford
14252c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
14262c4f8d22SRob Bradford
14272c4f8d22SRob Bradford### Live migration on MSHV hypervisor
14282c4f8d22SRob Bradford
14292c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
14302c4f8d22SRob Bradfordefficient tracking of dirty pages.
14312c4f8d22SRob Bradford
14322c4f8d22SRob Bradford### AArch64 CPU topology support
14332c4f8d22SRob Bradford
14342c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
14352c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
14362c4f8d22SRob Bradfordtree.
14372c4f8d22SRob Bradford
14382c4f8d22SRob Bradford### Power button support on AArch64
14392c4f8d22SRob Bradford
14402c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
14412c4f8d22SRob Bradfordis now supported when running on AArch64.
14422c4f8d22SRob Bradford
14432c4f8d22SRob Bradford### Notable bug fixes
14442c4f8d22SRob Bradford
14452c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
14462c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
14472c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
14482c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
14492c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
14502c4f8d22SRob Bradford
14512c4f8d22SRob Bradford### Contributors
14522c4f8d22SRob Bradford
14532c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
14542c4f8d22SRob Bradford
14552c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
14562c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
14572c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
14582c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
14592c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
14602c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
14612c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
14622c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
14632c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
14642c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
14652c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
14662c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
14672c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
14682c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1469e6db5999SRob Bradford
1470e6db5999SRob Bradford# v17.0
1471e6db5999SRob Bradford
1472e6db5999SRob BradfordThis release has been tracked through the [v17.0
1473e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
1474e6db5999SRob Bradford
1475e6db5999SRob Bradford### ARM64 NUMA support using ACPI
1476e6db5999SRob Bradford
1477e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
1478e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
1479e6db5999SRob Bradford
1480e6db5999SRob Bradford### `Seccomp` support for MSHV backend
1481e6db5999SRob Bradford
1482e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
1483e6db5999SRob Bradfordhypervisor backend.
1484e6db5999SRob Bradford
1485e6db5999SRob Bradford### Hotplug of `macvtap` devices
1486e6db5999SRob Bradford
1487e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
1488e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
1489e6db5999SRob Bradfordtool supports this functionality when adding a network device.
1490e6db5999SRob Bradford
1491e6db5999SRob Bradford### Improved SGX support
1492e6db5999SRob Bradford
1493e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
1494e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
1495e6db5999SRob Bradford
1496e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
1497e6db5999SRob Bradford
1498e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
1499e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
1500e6db5999SRob Bradford
1501e6db5999SRob Bradford### Notable bug fixes
1502e6db5999SRob Bradford
1503e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
1504e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
1505e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
1506e6db5999SRob Bradford(#2833).
1507e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
1508e6db5999SRob Bradford
1509e6db5999SRob Bradford### Contributors
1510e6db5999SRob Bradford
1511e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
1512e6db5999SRob Bradford
1513e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1514e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
1515e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
1516e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
1517e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
1518e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
1519e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
1520e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
1521e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1522e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
1523e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1524e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1525e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
1526e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
1527e6db5999SRob Bradford
15285ed8e01fSRob Bradford# v16.0
15295ed8e01fSRob Bradford
15305ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
15315ed8e01fSRob Bradford
15325ed8e01fSRob Bradford### Improved live migration support
15335ed8e01fSRob Bradford
15345ed8e01fSRob 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.
15355ed8e01fSRob Bradford
15365ed8e01fSRob Bradford### Improved `vhost-user` support
15375ed8e01fSRob Bradford
15385ed8e01fSRob 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.
15395ed8e01fSRob Bradford
15405ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
15415ed8e01fSRob Bradford
15425ed8e01fSRob 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.
15435ed8e01fSRob Bradford
15445ed8e01fSRob Bradford### Notable bug fixes
15455ed8e01fSRob Bradford
15465ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
15475ed8e01fSRob 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).
15485ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
15495ed8e01fSRob Bradford
15505ed8e01fSRob Bradford### Removed functionality
15515ed8e01fSRob Bradford
15525ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
15535ed8e01fSRob Bradford
15545ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
15555ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
15565ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
15575ed8e01fSRob Bradford
15585ed8e01fSRob Bradford### Contributors
15595ed8e01fSRob Bradford
15605ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
15615ed8e01fSRob Bradford
15625ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
15635ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
15645ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
15655ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
15665ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
15675ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
15685ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
15695ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
15705ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
15715ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
15725ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
15735ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
15745ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
15755ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
15765ed8e01fSRob Bradford
157730a01277SRob Bradford# v15.0
157830a01277SRob Bradford
157930a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
158030a01277SRob Bradford
158130a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
158230a01277SRob Bradford
158330a01277SRob Bradford### Version numbering and stability guarantees
158430a01277SRob Bradford
158530a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
158630a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
158730a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
158830a01277SRob Bradford
158930a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
159030a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
159130a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
159230a01277SRob Bradford  will be documented in the release notes.
159330a01277SRob Bradford* Point releases will be made between individual releases where there are
159430a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
159530a01277SRob Bradford
159630a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
159730a01277SRob Bradford
159830a01277SRob Bradford* Snapshot/restore is not supported across different versions
159930a01277SRob Bradford* Live migration is not supported across different versions
160030a01277SRob Bradford* The following features are considered experimental and may change
160130a01277SRob Bradford  substantially between releases: TDX, SGX.
160230a01277SRob Bradford
160330a01277SRob Bradford### Network device rate limiting
160430a01277SRob Bradford
160530a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
160630a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
160730a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
160830a01277SRob Bradford
160930a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
161030a01277SRob Bradford
161130a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
161230a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
161330a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
161430a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
161530a01277SRob Bradford
161630a01277SRob Bradford### `--api-socket` supports file descriptor parameter
161730a01277SRob Bradford
161830a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
161930a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
162030a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
162130a01277SRob Bradford
162230a01277SRob Bradford### Bug fixes
162330a01277SRob Bradford
162430a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
162530a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
162630a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
162730a01277SRob Bradford  reprogram them (#1797,#1798)
162830a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
162930a01277SRob Bradford  exhaustion on the host) (#2517)
163030a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
163130a01277SRob Bradford  prevents snapshot & restore working (#2535)
163230a01277SRob Bradford
163330a01277SRob Bradford### Deprecations
163430a01277SRob Bradford
163530a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
163630a01277SRob Bradford
163730a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
163830a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
163930a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
164030a01277SRob Bradford
164130a01277SRob Bradford### Contributors
164230a01277SRob Bradford
164330a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
164430a01277SRob Bradford
164530a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
164630a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
164730a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
164830a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
164930a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
165030a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
165130a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
165230a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
165330a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
165430a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
165530a01277SRob Bradford* William Douglas <william.douglas@intel.com>
165630a01277SRob Bradford
165730a01277SRob Bradford# v0.14.1
165830a01277SRob Bradford
165930a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
166030a01277SRob Bradfordin this release:
166130a01277SRob Bradford
166230a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
166330a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
166430a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
166530a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
166630a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
166730a01277SRob Bradford
166840c63dcfSRob Bradford# v0.14.0
166940c63dcfSRob Bradford
167040c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
167140c63dcfSRob Bradford
167240c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
167340c63dcfSRob Bradford
167440c63dcfSRob Bradford### Structured event monitoring
167540c63dcfSRob Bradford
167640c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
167740c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
167840c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
167940c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
168040c63dcfSRob BradfordHypervisor API surface.
168140c63dcfSRob Bradford
168240c63dcfSRob Bradford### MSHV improvements
168340c63dcfSRob Bradford
168440c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
168540c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
168640c63dcfSRob Bradfordthe MSHV support.
168740c63dcfSRob Bradford
168840c63dcfSRob Bradford### Improved aarch64 platform
168940c63dcfSRob Bradford
169040c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
169140c63dcfSRob BradfordVM including an enhanced serial UART.
169240c63dcfSRob Bradford
169340c63dcfSRob Bradford### Updated hotplug documentation
169440c63dcfSRob Bradford
169540c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
169640c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
169740c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
169840c63dcfSRob Bradford
169940c63dcfSRob Bradford### PTY control for serial and `virtio-console`
170040c63dcfSRob Bradford
170140c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
170240c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
170340c63dcfSRob BradfordPTY subsystem.
170440c63dcfSRob Bradford
170540c63dcfSRob Bradford### Block device rate limiting
170640c63dcfSRob Bradford
170740c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
170840c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
170930a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
171040c63dcfSRob Bradford
171140c63dcfSRob Bradford
171240c63dcfSRob Bradford### Deprecations
171340c63dcfSRob Bradford
171440c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
171540c63dcfSRob Bradford
171640c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
171740c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
171840c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
171940c63dcfSRob Bradford
172040c63dcfSRob Bradford
172140c63dcfSRob Bradford### Contributors
172240c63dcfSRob Bradford
172340c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
172440c63dcfSRob Bradfordsome new faces.
172540c63dcfSRob Bradford
172640c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
172740c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
172840c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
172940c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
173040c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
173140c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
173240c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
173340c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
173440c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
173540c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
173640c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
173740c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
173840c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
173940c63dcfSRob Bradford
1740f58b6f84SRob Bradford# v0.13.0
1741f58b6f84SRob Bradford
1742f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
1743f58b6f84SRob Bradford
1744f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
1745f58b6f84SRob Bradford
1746f58b6f84SRob Bradford### Wider VFIO device support
1747f58b6f84SRob Bradford
1748f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
1749f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
1750f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
1751f58b6f84SRob Bradforddrivers.
1752f58b6f84SRob Bradford
175340c63dcfSRob Bradford### Improved huge page support
1754f58b6f84SRob Bradford
1755f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
1756f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
1757f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
1758f58b6f84SRob Bradforddesired size in their pool.
1759f58b6f84SRob Bradford
1760f58b6f84SRob Bradford### MACvTAP support
1761f58b6f84SRob Bradford
1762f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
1763f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
1764f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
1765f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
1766f58b6f84SRob Bradford
1767f58b6f84SRob Bradford### VHD disk image support
1768f58b6f84SRob Bradford
1769f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
1770f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
1771f58b6f84SRob Bradford
1772f58b6f84SRob Bradford### Improved Virtio device threading
1773f58b6f84SRob Bradford
1774f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
1775f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
1776f58b6f84SRob Bradfordpredictable name derived from the device id.
1777f58b6f84SRob Bradford
1778f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
1779f58b6f84SRob Bradford
1780f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
1781f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
1782f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
1783f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
1784f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
1785f58b6f84SRob Bradford
1786f58b6f84SRob Bradford### Contributors
1787f58b6f84SRob Bradford
1788f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
1789f58b6f84SRob Bradfordsome new faces.
1790f58b6f84SRob Bradford
1791f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
1792f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
1793f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
1794f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1795f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1796f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1797f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
1798f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
1799f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
1800f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
1801f58b6f84SRob Bradford
1802d42b5084SRob Bradford# v0.12.0
1803d42b5084SRob Bradford
1804d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
1805d42b5084SRob Bradford
1806d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
1807d42b5084SRob Bradford
1808d42b5084SRob Bradford### ARM64 enhancements
1809d42b5084SRob Bradford
1810d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
1811d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
1812d42b5084SRob Bradford
1813d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
1814d42b5084SRob Bradford
1815d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
1816d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
1817d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
1818d42b5084SRob Bradfordremoved.
1819d42b5084SRob Bradford
1820d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
1821d42b5084SRob Bradford
1822d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
1823d42b5084SRob Bradfordinstead hosted in [it's own
1824d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
1825d42b5084SRob Bradford
1826d42b5084SRob Bradford### Enhanced "info" API
1827d42b5084SRob Bradford
1828d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
1829d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
1830d42b5084SRob Bradford
1831d42b5084SRob Bradford### Contributors
1832d42b5084SRob Bradford
1833d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
1834d42b5084SRob Bradford
1835d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1836d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
1837d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1838d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
1839d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1840d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1841d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
1842d42b5084SRob Bradford
18437dcd3affSRob Bradford# v0.11.0
18447dcd3affSRob Bradford
18457dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
18467dcd3affSRob Bradford
18477dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
18487dcd3affSRob Bradford
18497dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
18507dcd3affSRob Bradford
18517dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
18527dcd3affSRob Bradfordbe used for a significantly higher performance block device.
18537dcd3affSRob Bradford
18547dcd3affSRob Bradford### Windows Guest Support
18557dcd3affSRob Bradford
18567dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
18577dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
18587dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
18597dcd3affSRob Bradforddocumentation](docs/windows.md).
18607dcd3affSRob Bradford
18617dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
18627dcd3affSRob Bradford
18637dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
18647dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
18657dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
18667dcd3affSRob Bradford
1867d00eb4aaSRob Bradford### `virtio-mmio` Removal
18687dcd3affSRob Bradford
18697dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
18707dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
18717dcd3affSRob Bradfordreduce the testing burden of the project.
18727dcd3affSRob Bradford
18737dcd3affSRob Bradford### Snapshot/Restore support for ARM64
18747dcd3affSRob Bradford
18757dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
18767dcd3affSRob Bradfordimplemented.
18777dcd3affSRob Bradford
18787dcd3affSRob Bradford### Improved Linux Boot Time
18797dcd3affSRob Bradford
18807dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
18817dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
18827dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
18837dcd3affSRob Bradford
18847dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
18857dcd3affSRob Bradford
18867dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
18877dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
18887dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
18897dcd3affSRob Bradfordresources.
18907dcd3affSRob Bradford
18917dcd3affSRob Bradford### Default Log Level Changed
18927dcd3affSRob Bradford
18937dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
18947dcd3affSRob Bradfordeasier to see potential issues. New [logging
18957dcd3affSRob Bradforddocumentation](docs/logging) was also added.
18967dcd3affSRob Bradford
18977dcd3affSRob Bradford### New `--balloon` Parameter Added
18987dcd3affSRob Bradford
18997dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
19007dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
19017dcd3affSRob Bradfordcontrols without overloading `--memory`.
19027dcd3affSRob Bradford
19037dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
19047dcd3affSRob Bradford
19057dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
19067dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
19077dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
19087dcd3affSRob Bradford
19097dcd3affSRob Bradford### Notable Bug Fixes
19107dcd3affSRob Bradford
19117dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
19127dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
19137dcd3affSRob Bradford* CPU identification string is now exposed to the guest
19147dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
19157dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
19167dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
19177dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
19187dcd3affSRob Bradford  can be used (#1803)
19197dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
19207dcd3affSRob Bradford  correctly
19217dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
19227dcd3affSRob Bradford  correctly
19237dcd3affSRob Bradford
19247dcd3affSRob Bradford### Contributors
19257dcd3affSRob Bradford
19267dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
19277dcd3affSRob Bradford
19287dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
19297dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
19307dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
19317dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
19327dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
19337dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
19347dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
19357dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
19367dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
19377dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
19387dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
19397dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
19407dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
19417dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
19427dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
19437dcd3affSRob Bradford
19447dcd3affSRob Bradford
1945198bd551SRob Bradford# v0.10.0
1946198bd551SRob Bradford
1947198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
1948198bd551SRob Bradford
1949198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
1950198bd551SRob Bradford
1951198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
1952198bd551SRob Bradford
1953198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
1954198bd551SRob Bradford
1955198bd551SRob Bradford### Memory Zones
1956198bd551SRob Bradford
1957198bd551SRob 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).
1958198bd551SRob Bradford
1959198bd551SRob Bradford### `Seccomp` Sandbox Improvements
1960198bd551SRob Bradford
1961198bd551SRob 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`.
1962198bd551SRob Bradford
1963198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
1964198bd551SRob Bradford
1965198bd551SRob 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.
1966198bd551SRob Bradford
1967198bd551SRob Bradford### Notable Bug Fixes
1968198bd551SRob Bradford
1969198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
1970198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
1971198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
1972198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
1973198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
1974198bd551SRob Bradford
1975198bd551SRob Bradford### Contributors
1976198bd551SRob Bradford
1977198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
1978198bd551SRob Bradford
1979198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
1980198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
1981198bd551SRob Bradford* Anatol Belski <ab@php.net>
1982198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
1983198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
1984198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1985198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
1986198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1987198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
1988198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1989198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
1990198bd551SRob Bradford
1991d714cf81SRob Bradford# v0.9.0
1992d714cf81SRob Bradford
1993d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
1994d714cf81SRob Bradford
1995d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
1996d714cf81SRob Bradford
1997d714cf81SRob Bradford### `io_uring` Based Block Device Support
1998d714cf81SRob Bradford
1999d714cf81SRob 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.
2000d714cf81SRob Bradford
2001d714cf81SRob Bradford### Block and Network Device Statistics
2002d714cf81SRob Bradford
2003d714cf81SRob 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.
2004d714cf81SRob Bradford
2005d714cf81SRob Bradford### HTTP API Responses
2006d714cf81SRob Bradford
2007d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2008d714cf81SRob Bradford
2009d714cf81SRob Bradford### CPU Topology
2010d714cf81SRob Bradford
2011d714cf81SRob 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.
2012d714cf81SRob Bradford
2013d714cf81SRob Bradford### Release Build Optimization
2014d714cf81SRob Bradford
2015d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2016d714cf81SRob Bradford
2017d714cf81SRob Bradford### Hypervisor Abstraction
2018d714cf81SRob Bradford
2019d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2020d714cf81SRob Bradford
2021d714cf81SRob Bradford### Snapshot/Restore Improvements
2022d714cf81SRob Bradford
2023d714cf81SRob 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.
2024d714cf81SRob Bradford
2025d714cf81SRob Bradford### Virtio Memory Ballooning Support
2026d714cf81SRob Bradford
2027d714cf81SRob 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.
2028d714cf81SRob Bradford
2029d714cf81SRob Bradford### Enhancements to ARM64 Support
2030d714cf81SRob Bradford
2031d714cf81SRob 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.
2032d714cf81SRob Bradford
2033d714cf81SRob Bradford### Intel SGX Support
2034d714cf81SRob Bradford
2035d714cf81SRob 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).
2036d714cf81SRob Bradford
2037d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2038d714cf81SRob Bradford
2039d714cf81SRob 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.
2040d714cf81SRob Bradford
2041d714cf81SRob Bradford### Notable Bug Fixes
2042d714cf81SRob Bradford
2043d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2044d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2045d714cf81SRob 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).
2046d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2047d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2048d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2049d714cf81SRob Bradford
2050d714cf81SRob Bradford### Contributors
2051d714cf81SRob Bradford
2052d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2053d714cf81SRob Bradford
2054d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2055d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2056d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2057d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2058d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2059d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2060d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2061d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2062d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2063d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2064d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2065d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2066d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2067d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2068d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2069d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2070d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2071d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2072d714cf81SRob Bradford
2073d714cf81SRob Bradford
207452b83969SRob Bradford# v0.8.0
207552b83969SRob Bradford
207652b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
207752b83969SRob Bradford
207852b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
207952b83969SRob Bradford
208052b83969SRob Bradford### Experimental Snapshot and Restore Support
208152b83969SRob Bradford
208252b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
208352b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
208452b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
208552b83969SRob Bradfordoriginal VM at the point it was paused.
208652b83969SRob Bradford
208752b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
208852b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
208952b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
209052b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
209152b83969SRob Bradford(#1176).
209252b83969SRob Bradford
209352b83969SRob Bradford### Experimental ARM64 Support
209452b83969SRob Bradford
209552b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
209652b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
209752b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
209852b83969SRob Bradford
209952b83969SRob Bradford### Support for Using 5-level Paging in Guests
210052b83969SRob Bradford
210152b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
210252b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
210352b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
210452b83969SRob Bradfordwork due to current limitations in the PVH boot process.
210552b83969SRob Bradford
210652b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
210752b83969SRob Bradford
210852b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
210952b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
211052b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
211152b83969SRob Bradfordthe guest must service.
211252b83969SRob Bradford
211352b83969SRob Bradford### `vhost_user_fs` Improvements
211452b83969SRob Bradford
211552b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
211652b83969SRob Bradford
211752b83969SRob Bradford
211852b83969SRob Bradford### Notable Bug Fixes
211952b83969SRob Bradford
212052b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
212152b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
212252b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
212352b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
212452b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
212552b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
212652b83969SRob Bradford  #1216).
212752b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
212852b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
212952b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
213052b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
213152b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
213252b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
213352b83969SRob Bradford  (#751).
213452b83969SRob Bradford
213552b83969SRob Bradford### Command Line and API Changes
213652b83969SRob Bradford
213752b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
213852b83969SRob Bradford
213952b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
214052b83969SRob Bradford  rather than `sock` in some cases.
214152b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
214252b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
214352b83969SRob Bradford  offered for negotiation.
214452b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
214552b83969SRob Bradford  address for the `tap` device on the host.
214652b83969SRob Bradford
214752b83969SRob Bradford### Contributors
214852b83969SRob Bradford
214952b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
215052b83969SRob Bradford
215152b83969SRob Bradford* Anatol Belski <ab@php.net>
215252b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
215352b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
215452b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
215552b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
215652b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
215752b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
215852b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
215952b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
216052b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
216152b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
216252b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
216352b83969SRob Bradford
216496be8229SRob Bradford# v0.7.0
216596be8229SRob Bradford
216696be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
216796be8229SRob Bradford
216896be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
216996be8229SRob Bradford
217096be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
217196be8229SRob Bradford
217296be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
217396be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
217496be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
21755c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
217696be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
217796be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
217896be8229SRob Bradforddevices to ease their removal.
217996be8229SRob Bradford
218096be8229SRob Bradford### Alternative `libc` Support
218196be8229SRob Bradford
218296be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
218396be8229SRob Bradfordcontains a static binary compiled using that toolchain.
218496be8229SRob Bradford
218596be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
218696be8229SRob Bradford
218796be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
218896be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
218996be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
219096be8229SRob Bradfordis passed when the devices are created.
219196be8229SRob Bradford
219296be8229SRob Bradford### Initial RamFS Support
219396be8229SRob Bradford
219496be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
219596be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
219696be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
219796be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
219896be8229SRob Bradfordminimal image.
219996be8229SRob Bradford
220096be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
220196be8229SRob Bradford
220296be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
220396be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
220496be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
220596be8229SRob Bradfordrequires kernel patches to be able to support it.
220696be8229SRob Bradford
220796be8229SRob Bradford### `Seccomp` Sandboxing
220896be8229SRob Bradford
220996be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
221096be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
221196be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
221296be8229SRob Bradford
221396be8229SRob Bradford### Updated Distribution Support
221496be8229SRob Bradford
221596be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
221696be8229SRob Bradforddistributions and is part of our regular testing programme.
221796be8229SRob Bradford
221896be8229SRob Bradford### Command Line and API Changes
221996be8229SRob Bradford
222096be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
222196be8229SRob Bradford
222296be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
222396be8229SRob Bradford  If no name is specified the VMM chooses one.
222496be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
222596be8229SRob Bradford  memory instead of providing a path.
222696be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
222796be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
222896be8229SRob Bradford  option and replaced it with a single optional field.
222996be8229SRob Bradford* There is enhanced validation of the command line and API provided
223096be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
223196be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
223296be8229SRob Bradford  device.
223396be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
223496be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
223596be8229SRob Bradford  has appropriate new HTTP endpoints too.
223696be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
223796be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
223896be8229SRob Bradford  to provide the equivalent of a read-only file.
223996be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
224096be8229SRob Bradford  with those used by `--disk`.
224196be8229SRob Bradford
224296be8229SRob Bradford### Contributors
224396be8229SRob Bradford
224496be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
224596be8229SRob Bradford
224696be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
224796be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
224896be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
224996be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
225096be8229SRob Bradford* Dean Sheather <dean@coder.com>
225196be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
225296be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
225396be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
225496be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
225596be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
225696be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
225796be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
225896be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
225996be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
226096be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
226196be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
226296be8229SRob Bradford
226303cb26ccSSamuel Ortiz# v0.6.0
226403cb26ccSSamuel Ortiz
226503cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
226603cb26ccSSamuel Ortiz
226703cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
226803cb26ccSSamuel Ortiz
226903cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
227003cb26ccSSamuel Ortiz
227103cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
227203cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
227303cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
227403cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
227503cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
227603cb26ccSSamuel Ortiz
227703cb26ccSSamuel Ortiz### Shared Filesystem Improvements
227803cb26ccSSamuel Ortiz
227903cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
228003cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
228103cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
228203cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
228303cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
228403cb26ccSSamuel Ortiz
228503cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
228603cb26ccSSamuel Ortiz
228703cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
228803cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
228903cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
229003cb26ccSSamuel Ortizinto their own, separate processes.
22915c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
229203cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
229303cb26ccSSamuel Ortiz
229403cb26ccSSamuel Ortiz### Command Line Interface
229503cb26ccSSamuel Ortiz
229603cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
229737a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
229837a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
229937a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
230037a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
230137a2c13aSAlyssa Rossis created with each build and available e.g. at
230203cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
230303cb26ccSSamuel Ortiz
230403cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
230503cb26ccSSamuel Ortizcommands.
230603cb26ccSSamuel Ortiz
230703cb26ccSSamuel Ortiz### PVH Boot
230803cb26ccSSamuel Ortiz
230903cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
231003cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
231103cb26ccSSamuel Ortiz
231203cb26ccSSamuel Ortiz### Contributors
231303cb26ccSSamuel Ortiz
231403cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
231503cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
231603cb26ccSSamuel Ortiz
231703cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
231803cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
231903cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
232003cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
232103cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
232203cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
232303cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
232403cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
232503cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
232603cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
232703cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
232803cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
232903cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
233003cb26ccSSamuel Ortiz
233194f2fc33SRob Bradford# v0.5.1
233294f2fc33SRob Bradford
233394f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
233494f2fc33SRob Bradford
233594f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
233694f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
233794f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
233894f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
233994f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
23408e8a7b6dSSamuel Ortiz
23412f395e60SSamuel Ortiz# v0.5.0
23422f395e60SSamuel Ortiz
23432f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
23442f395e60SSamuel Ortiz
23452f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
23462f395e60SSamuel Ortiz
23472f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
23482f395e60SSamuel Ortiz
23492f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
23502f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
23512f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
23522f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
23532f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
23542f395e60SSamuel Ortiz
23552f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
23562f395e60SSamuel Ortiz
23572f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
23582f395e60SSamuel Ortiz
23592f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
23602f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
23612f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
23622f395e60SSamuel Ortiz
23632f395e60SSamuel Ortiz### New Interrupt Management Framework
23642f395e60SSamuel Ortiz
23652f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
23662f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
23672f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
23682f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
23692f395e60SSamuel Ortizvirtio ones.
23702f395e60SSamuel Ortiz
23712f395e60SSamuel Ortiz### Development Tools
23722f395e60SSamuel Ortiz
23732f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
23742f395e60SSamuel Ortizbuild, development and testing tools.
23752f395e60SSamuel OrtizSomehow similar to the excellent
23762f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
237737a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
23782f395e60SSamuel Ortiz
23792f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
23802f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
23812f395e60SSamuel Ortiz
23822f395e60SSamuel Ortiz### Kata Containers Integration
23832f395e60SSamuel Ortiz
23842f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
23852f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
23862f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
23872f395e60SSamuel Ortizintegrated into the project's CI.
23882f395e60SSamuel Ortiz
23892f395e60SSamuel Ortiz### Contributors
23902f395e60SSamuel Ortiz
23912f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
23922f395e60SSamuel Ortiz
23932f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
23942f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
23952f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
23962f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
23972f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
23982f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
23992f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
24002f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
24012f395e60SSamuel Ortiz
2402cec884e8SSamuel Ortiz# v0.4.0
2403cec884e8SSamuel Ortiz
2404cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
2405cec884e8SSamuel Ortiz
2406cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
2407cec884e8SSamuel Ortiz
2408cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
2409cec884e8SSamuel Ortiz
2410e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
2411cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
2412cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
2413cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
241437a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
2415cec884e8SSamuel Ortiz
2416cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
2417cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
2418cec884e8SSamuel Ortiz
2419cec884e8SSamuel Ortiz### Programmatic firmware tables generation
2420cec884e8SSamuel Ortiz
2421cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
2422cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
2423cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
2424cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
2425cec884e8SSamuel Ortiztables based on the VMM device model and topology.
2426cec884e8SSamuel Ortiz
2427cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
2428cec884e8SSamuel Ortiz
2429cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
2430cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
2431cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
2432cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
2433cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
2434cec884e8SSamuel Ortiz
2435cec884e8SSamuel Ortiz### Guest pause and resume
2436cec884e8SSamuel Ortiz
24375c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
2438cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
2439cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
2440cec884e8SSamuel Ortizand resume capabilities.
2441cec884e8SSamuel Ortiz
2442cec884e8SSamuel Ortiz### Userspace IOAPIC by default
2443cec884e8SSamuel Ortiz
2444cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
2445cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
2446cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
2447cec884e8SSamuel Ortizdefault.
2448cec884e8SSamuel Ortiz
2449cec884e8SSamuel Ortiz### PCI BAR reprogramming
2450cec884e8SSamuel Ortiz
2451cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
2452cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
2453cec884e8SSamuel Ortizreprogramming.
2454cec884e8SSamuel Ortiz
2455cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
2456cec884e8SSamuel Ortiz
2457cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
2458cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
2459cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
2460cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
2461cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2462cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
2463cec884e8SSamuel Ortiztemporarily fork.
2464cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
2465cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
2466cec884e8SSamuel Ortiz
2467cec884e8SSamuel Ortiz### Contributors
2468cec884e8SSamuel Ortiz
2469cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
2470cec884e8SSamuel Ortiz
2471cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
2472cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
2473cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2474cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
2475cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
2476cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
2477cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
2478cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
2479cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
2480cec884e8SSamuel Ortiz
24818e8a7b6dSSamuel Ortiz# v0.3.0
24828e8a7b6dSSamuel Ortiz
24838ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
24848e8a7b6dSSamuel Ortiz
24858e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
24868e8a7b6dSSamuel Ortiz
24878e8a7b6dSSamuel Ortiz### Block device offloading
24888e8a7b6dSSamuel Ortiz
24898e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
24908e8a7b6dSSamuel Ortizand we added support for
24918e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
24928e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
24938e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
24948e8a7b6dSSamuel Ortizbackend.
24958e8a7b6dSSamuel Ortiz
24968e8a7b6dSSamuel Ortiz### Network device backend
24978e8a7b6dSSamuel Ortiz
24988e8a7b6dSSamuel OrtizThe previous release provided support for
24998e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
25008e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
25018e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
25028e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
25038e8a7b6dSSamuel Ortiz
25048e8a7b6dSSamuel Ortiz### Virtual sockets
25058e8a7b6dSSamuel Ortiz
25068e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
25078e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
25088e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
25098e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
25108e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
25118e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
25128e8a7b6dSSamuel Ortiz
25138e8a7b6dSSamuel Ortiz### HTTP based API
25148e8a7b6dSSamuel Ortiz
25158e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
25168e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
25178e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
25188e8a7b6dSSamuel Ortiznext release cycle.
25198e8a7b6dSSamuel Ortiz
25208e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
25218e8a7b6dSSamuel Ortiz
25228e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
25238e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
25248e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
25258e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
25268e8a7b6dSSamuel Ortiz
25278e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
25288e8a7b6dSSamuel Ortiz
25298e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
253037a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
253137a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
25328e8a7b6dSSamuel Ortiz
25338e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
25348e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
25358e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
25368e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
25378e8a7b6dSSamuel Ortizsetting.
25388e8a7b6dSSamuel Ortiz
25398e8a7b6dSSamuel Ortiz### Ubuntu 19.10
25408e8a7b6dSSamuel Ortiz
25418ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
25428e8a7b6dSSamuel Ortizwe can now support the latest
25438e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
25448e8a7b6dSSamuel Ortiz
25458e8a7b6dSSamuel Ortiz### Large memory guests
25468e8a7b6dSSamuel Ortiz
25478e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
25488e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
25497688e6e2SSamuel Ortiz
2550d784ac29SSamuel Ortiz# v0.2.0
2551d784ac29SSamuel Ortiz
25528ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
2553d784ac29SSamuel Ortiz
2554d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
2555d784ac29SSamuel Ortiz
2556d784ac29SSamuel Ortiz### Network device offloading
2557d784ac29SSamuel Ortiz
2558d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
2559d784ac29SSamuel Ortizprocesses, we added support for
2560d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
2561d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
2562d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
2563d784ac29SSamuel Ortiz
2564d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
2565d784ac29SSamuel Ortiz
2566d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
2567d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
2568d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
2569d784ac29SSamuel Ortizcleanly reboot and shutdown.
2570d784ac29SSamuel Ortiz
2571d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
2572d784ac29SSamuel Ortizenabled by default.
2573d784ac29SSamuel Ortiz
2574d784ac29SSamuel Ortiz### Debug I/O port
2575d784ac29SSamuel Ortiz
2576d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
2577d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
2578d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
2579d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
258037a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
258137a2c13aSAlyssa Rossdetails.
2582d784ac29SSamuel Ortiz
2583d784ac29SSamuel Ortiz### Improved direct device assignment
2584d784ac29SSamuel Ortiz
2585d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
2586d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
2587d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
2588d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
2589d784ac29SSamuel Ortizdirectly assigned devices.
2590d784ac29SSamuel Ortiz
2591d784ac29SSamuel Ortiz### Improved shared filesystem
2592d784ac29SSamuel Ortiz
2593d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
2594d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
2595d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
2596d784ac29SSamuel Ortizmemory footprint.
2597d784ac29SSamuel Ortiz
2598d784ac29SSamuel Ortiz### Ubuntu bionic based CI
2599d784ac29SSamuel Ortiz
26008ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
2601d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
2602d784ac29SSamuel Ortizour CI pipeline.
2603d784ac29SSamuel Ortiz
260493b77530SSamuel Ortiz# v0.1.0
260593b77530SSamuel Ortiz
26068ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
260793b77530SSamuel Ortiz
260893b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
260993b77530SSamuel Ortiz
261093b77530SSamuel Ortiz### Shared filesystem
261193b77530SSamuel Ortiz
261293b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
261393b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
261493b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
261593b77530SSamuel Ortiz
261637a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
261737a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
261893b77530SSamuel Ortiz
261993b77530SSamuel Ortiz### Initial direct device assignment support
262093b77530SSamuel Ortiz
262193b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
262293b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
262393b77530SSamuel Ortizphysical devices into its guest.
262493b77530SSamuel Ortiz
262537a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
262637a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
262793b77530SSamuel Ortiz
262893b77530SSamuel Ortiz### Userspace IOAPIC
262993b77530SSamuel Ortiz
263093b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
263193b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
263293b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
263393b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
263493b77530SSamuel Ortiz
263593b77530SSamuel Ortiz### Virtual persistent memory
263693b77530SSamuel Ortiz
263793b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
263893b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
263993b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
264093b77530SSamuel Ortiz
264193b77530SSamuel Ortiz### Linux kernel bzImage
264293b77530SSamuel Ortiz
264393b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
264493b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
264593b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
264693b77530SSamuel Ortizdistribution kernel image.
264793b77530SSamuel Ortiz
264893b77530SSamuel Ortiz### Console over virtio
264993b77530SSamuel Ortiz
265093b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
265193b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
265293b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
265393b77530SSamuel Ortizimplementation.
265493b77530SSamuel Ortiz
265593b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
265693b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
265793b77530SSamuel Ortiz`--serial tty --console off` from the command line.
265893b77530SSamuel Ortiz
265993b77530SSamuel Ortiz### Unit testing
266093b77530SSamuel Ortiz
266193b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
266293b77530SSamuel Ortiz
266393b77530SSamuel Ortiz### Integration tests parallelization
266493b77530SSamuel Ortiz
266593b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
266693b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
2667