1*22cf8c97SRob Bradford- [v29.0](#v290) 2*22cf8c97SRob Bradford - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm) 3*22cf8c97SRob Bradford - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements) 4*22cf8c97SRob Bradford - [Heap Allocation Improvements](#heap-allocation-improvements) 5*22cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements) 6*22cf8c97SRob Bradford - [`AArch64` Documentation Integration](#aarch64-documentation-integration) 7*22cf8c97SRob Bradford - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement) 8*22cf8c97SRob Bradford - [TCP Offload Control](#tcp-offload-control) 9*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes) 10*22cf8c97SRob Bradford - [Removals](#removals) 11*22cf8c97SRob Bradford - [Deprecations](#deprecations) 12*22cf8c97SRob Bradford - [Contributors](#contributors) 13*22cf8c97SRob Bradford- [v28.1](#v281) 1466460765SRob Bradford- [v28.0](#v280) 1566460765SRob Bradford - [Community Engagement (Reminder)](#community-engagement-reminder) 1666460765SRob Bradford - [Long Term Support (LTS) Release](#long-term-support-lts-release) 1766460765SRob Bradford - [Virtualised TPM Support](#virtualised-tpm-support) 1866460765SRob Bradford - [Transparent Huge Page Support](#transparent-huge-page-support) 1966460765SRob Bradford - [README Quick Start Improved](#readme-quick-start-improved) 20*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-1) 21*22cf8c97SRob Bradford - [Removals](#removals-1) 22*22cf8c97SRob Bradford - [Contributors](#contributors-1) 232ba6a9bfSRob Bradford- [v27.0](#v270) 242ba6a9bfSRob Bradford - [Community Engagement](#community-engagement) 252ba6a9bfSRob Bradford - [Prebuilt Packages](#prebuilt-packages) 262ba6a9bfSRob Bradford - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest) 272ba6a9bfSRob Bradford - [Boot Tracing](#boot-tracing) 282ba6a9bfSRob Bradford - [Simplified Build Feature Flags](#simplified-build-feature-flags) 292ba6a9bfSRob Bradford - [Asynchronous Kernel Loading](#asynchronous-kernel-loading) 302ba6a9bfSRob Bradford - [GDB Support for AArch64](#gdb-support-for-aarch64) 31*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-2) 32*22cf8c97SRob Bradford - [Deprecations](#deprecations-1) 33*22cf8c97SRob Bradford - [Contributors](#contributors-2) 34ed9e54d6SRob Bradford- [v26.0](#v260) 35ed9e54d6SRob Bradford - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform) 36ed9e54d6SRob Bradford - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support) 3766460765SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-3) 38*22cf8c97SRob Bradford - [Deprecations](#deprecations-2) 3966460765SRob Bradford - [Removals](#removals-2) 4066460765SRob Bradford - [Contributors](#contributors-3) 41*22cf8c97SRob Bradford- [v25.0](#v250) 42*22cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements-1) 43*22cf8c97SRob Bradford - [VM "Coredump" Support](#vm-coredump-support) 44*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-4) 45*22cf8c97SRob Bradford - [Removals](#removals-3) 46*22cf8c97SRob Bradford - [Contributors](#contributors-4) 470150de55SSebastien Boeuf- [v24.0](#v240) 480150de55SSebastien Boeuf - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu) 490150de55SSebastien Boeuf - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness) 500150de55SSebastien Boeuf - [Sparse Mmap support](#sparse-mmap-support) 510150de55SSebastien Boeuf - [Expose Platform Serial Number](#expose-platform-serial-number) 52*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-5) 530150de55SSebastien Boeuf - [Notable Improvements](#notable-improvements) 54*22cf8c97SRob Bradford - [Deprecations](#deprecations-3) 550150de55SSebastien Boeuf - [New on the Website](#new-on-the-website) 56*22cf8c97SRob Bradford - [Contributors](#contributors-5) 570150de55SSebastien Boeuf- [v23.1](#v231) 580c9c56f5SRob Bradford- [v23.0](#v230) 590c9c56f5SRob Bradford - [vDPA Support](#vdpa-support) 600c9c56f5SRob Bradford - [Updated OS Support list](#updated-os-support-list) 610c9c56f5SRob Bradford - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements) 620c9c56f5SRob Bradford - [`AMX` Support](#amx-support) 63*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-6) 64*22cf8c97SRob Bradford - [Deprecations](#deprecations-4) 65*22cf8c97SRob Bradford - [Contributors](#contributors-6) 660c9c56f5SRob Bradford- [v22.1](#v221) 676aa10938SRob Bradford- [v22.0](#v220) 686aa10938SRob Bradford - [GDB Debug Stub Support](#gdb-debug-stub-support) 696aa10938SRob Bradford - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments) 706aa10938SRob Bradford - [Before Boot Configuration Changes](#before-boot-configuration-changes) 716aa10938SRob Bradford - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting) 726aa10938SRob Bradford - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx) 736aa10938SRob Bradford - [PMU Support for AArch64](#pmu-support-for-aarch64) 740c9c56f5SRob Bradford - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license) 756aa10938SRob Bradford - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd) 76*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-7) 77*22cf8c97SRob Bradford - [Contributors](#contributors-7) 7895ca7997SRob Bradford- [v21.0](#v210) 7995ca7997SRob Bradford - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade) 8095ca7997SRob Bradford - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515) 81*22cf8c97SRob Bradford - [Notable Bug fixes](#notable-bug-fixes-8) 82*22cf8c97SRob Bradford - [Contributors](#contributors-8) 8395ca7997SRob Bradford- [v20.2](#v202) 8495ca7997SRob Bradford- [v20.1](#v201) 857fc0776aSSebastien Boeuf- [v20.0](#v200) 867fc0776aSSebastien Boeuf - [Multiple PCI segments support](#multiple-pci-segments-support) 877fc0776aSSebastien Boeuf - [CPU pinning](#cpu-pinning) 887fc0776aSSebastien Boeuf - [Improved VFIO support](#improved-vfio-support) 897fc0776aSSebastien Boeuf - [Safer code](#safer-code) 907fc0776aSSebastien Boeuf - [Extended documentation](#extended-documentation) 91*22cf8c97SRob Bradford - [Notable bug fixes](#notable-bug-fixes-9) 92*22cf8c97SRob Bradford - [Contributors](#contributors-9) 93d00eb4aaSRob Bradford- [v19.0](#v190) 94d00eb4aaSRob Bradford - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console) 95d00eb4aaSRob Bradford - [PCI boot time optimisations](#pci-boot-time-optimisations) 96d00eb4aaSRob Bradford - [Improved TDX support](#improved-tdx-support) 97d00eb4aaSRob Bradford - [Live migration enhancements](#live-migration-enhancements) 98d00eb4aaSRob Bradford - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user) 99d00eb4aaSRob Bradford - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu) 100*22cf8c97SRob Bradford - [Notable bug fixes](#notable-bug-fixes-10) 101*22cf8c97SRob Bradford - [Contributors](#contributors-10) 1022c4f8d22SRob Bradford- [v18.0](#v180) 1032c4f8d22SRob Bradford - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support) 1042c4f8d22SRob Bradford - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices) 1052c4f8d22SRob Bradford - [VHDX disk image support](#vhdx-disk-image-support) 1062c4f8d22SRob Bradford - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor) 1072c4f8d22SRob Bradford - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem) 1082c4f8d22SRob Bradford - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor) 1092c4f8d22SRob Bradford - [AArch64 CPU topology support](#aarch64-cpu-topology-support) 1102c4f8d22SRob Bradford - [Power button support on AArch64](#power-button-support-on-aarch64) 111*22cf8c97SRob Bradford - [Notable bug fixes](#notable-bug-fixes-11) 112*22cf8c97SRob Bradford - [Contributors](#contributors-11) 113e6db5999SRob Bradford- [v17.0](#v170) 114e6db5999SRob Bradford - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi) 115e6db5999SRob Bradford - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend) 116e6db5999SRob Bradford - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices) 117e6db5999SRob Bradford - [Improved SGX support](#improved-sgx-support) 118e6db5999SRob Bradford - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices) 119*22cf8c97SRob Bradford - [Notable bug fixes](#notable-bug-fixes-12) 120*22cf8c97SRob Bradford - [Contributors](#contributors-12) 1215ed8e01fSRob Bradford- [v16.0](#v160) 1225ed8e01fSRob Bradford - [Improved live migration support](#improved-live-migration-support) 1235ed8e01fSRob Bradford - [Improved `vhost-user` support](#improved-vhost-user-support) 1245ed8e01fSRob Bradford - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support) 125*22cf8c97SRob Bradford - [Notable bug fixes](#notable-bug-fixes-13) 1265ed8e01fSRob Bradford - [Removed functionality](#removed-functionality) 127*22cf8c97SRob Bradford - [Contributors](#contributors-13) 12830a01277SRob Bradford- [v15.0](#v150) 12930a01277SRob Bradford - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees) 13030a01277SRob Bradford - [Network device rate limiting](#network-device-rate-limiting) 13130a01277SRob Bradford - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload) 13230a01277SRob Bradford - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter) 13330a01277SRob Bradford - [Bug fixes](#bug-fixes) 134*22cf8c97SRob Bradford - [Deprecations](#deprecations-5) 135*22cf8c97SRob Bradford - [Contributors](#contributors-14) 13630a01277SRob Bradford- [v0.14.1](#v0141) 13740c63dcfSRob Bradford- [v0.14.0](#v0140) 13840c63dcfSRob Bradford - [Structured event monitoring](#structured-event-monitoring) 13940c63dcfSRob Bradford - [MSHV improvements](#mshv-improvements) 14040c63dcfSRob Bradford - [Improved aarch64 platform](#improved-aarch64-platform) 14140c63dcfSRob Bradford - [Updated hotplug documentation](#updated-hotplug-documentation) 14240c63dcfSRob Bradford - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console) 14340c63dcfSRob Bradford - [Block device rate limiting](#block-device-rate-limiting) 144*22cf8c97SRob Bradford - [Deprecations](#deprecations-6) 145*22cf8c97SRob Bradford - [Contributors](#contributors-15) 146f58b6f84SRob Bradford- [v0.13.0](#v0130) 147f58b6f84SRob Bradford - [Wider VFIO device support](#wider-vfio-device-support) 14840c63dcfSRob Bradford - [Improved huge page support](#improved-huge-page-support) 149f58b6f84SRob Bradford - [MACvTAP support](#macvtap-support) 150f58b6f84SRob Bradford - [VHD disk image support](#vhd-disk-image-support) 151f58b6f84SRob Bradford - [Improved Virtio device threading](#improved-virtio-device-threading) 152f58b6f84SRob Bradford - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button) 153*22cf8c97SRob Bradford - [Contributors](#contributors-16) 154d42b5084SRob Bradford- [v0.12.0](#v0120) 155d42b5084SRob Bradford - [ARM64 enhancements](#arm64-enhancements) 156d42b5084SRob Bradford - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning) 157d42b5084SRob Bradford - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend) 158d42b5084SRob Bradford - [Enhanced "info" API](#enhanced-info-api) 159*22cf8c97SRob Bradford - [Contributors](#contributors-17) 1607dcd3affSRob Bradford- [v0.11.0](#v0110) 1617dcd3affSRob Bradford - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block) 1627dcd3affSRob Bradford - [Windows Guest Support](#windows-guest-support) 1637dcd3affSRob Bradford - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation) 164d00eb4aaSRob Bradford - [`virtio-mmio` Removal](#virtio-mmio-removal) 1657dcd3affSRob Bradford - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64) 1667dcd3affSRob Bradford - [Improved Linux Boot Time](#improved-linux-boot-time) 1677dcd3affSRob Bradford - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling) 1687dcd3affSRob Bradford - [Default Log Level Changed](#default-log-level-changed) 1697dcd3affSRob Bradford - [New `--balloon` Parameter Added](#new---balloon-parameter-added) 1707dcd3affSRob Bradford - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support) 171*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-14) 172*22cf8c97SRob Bradford - [Contributors](#contributors-18) 173198bd551SRob Bradford- [v0.10.0](#v0100) 174198bd551SRob Bradford - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors) 175198bd551SRob Bradford - [Memory Zones](#memory-zones) 176198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements) 177198bd551SRob Bradford - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control) 178*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-15) 179*22cf8c97SRob Bradford - [Contributors](#contributors-19) 180d714cf81SRob Bradford- [v0.9.0](#v090) 181d714cf81SRob Bradford - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support) 182d714cf81SRob Bradford - [Block and Network Device Statistics](#block-and-network-device-statistics) 183d714cf81SRob Bradford - [HTTP API Responses](#http-api-responses) 184d714cf81SRob Bradford - [CPU Topology](#cpu-topology) 185d714cf81SRob Bradford - [Release Build Optimization](#release-build-optimization) 186d714cf81SRob Bradford - [Hypervisor Abstraction](#hypervisor-abstraction) 187d714cf81SRob Bradford - [Snapshot/Restore Improvements](#snapshotrestore-improvements) 188d714cf81SRob Bradford - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support) 189d714cf81SRob Bradford - [Enhancements to ARM64 Support](#enhancements-to-arm64-support) 190d714cf81SRob Bradford - [Intel SGX Support](#intel-sgx-support) 191198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1) 192*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-16) 193*22cf8c97SRob Bradford - [Contributors](#contributors-20) 194d714cf81SRob Bradford- [v0.8.0](#v080) 195d714cf81SRob Bradford - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support) 196d714cf81SRob Bradford - [Experimental ARM64 Support](#experimental-arm64-support) 197d714cf81SRob Bradford - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests) 198d714cf81SRob Bradford - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices) 199d714cf81SRob Bradford - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements) 200*22cf8c97SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-17) 201d714cf81SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes) 202*22cf8c97SRob Bradford - [Contributors](#contributors-21) 20396be8229SRob Bradford- [v0.7.0](#v070) 20496be8229SRob Bradford - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug) 20596be8229SRob Bradford - [Alternative `libc` Support](#alternative-libc-support) 20696be8229SRob Bradford - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends) 20796be8229SRob Bradford - [Initial RamFS Support](#initial-ramfs-support) 20896be8229SRob Bradford - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem) 20996be8229SRob Bradford - [`Seccomp` Sandboxing](#seccomp-sandboxing) 21096be8229SRob Bradford - [Updated Distribution Support](#updated-distribution-support) 21152b83969SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes-1) 212*22cf8c97SRob Bradford - [Contributors](#contributors-22) 21303cb26ccSSamuel Ortiz- [v0.6.0](#v060) 21403cb26ccSSamuel Ortiz - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug) 21503cb26ccSSamuel Ortiz - [Shared Filesystem Improvements](#shared-filesystem-improvements) 21603cb26ccSSamuel Ortiz - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading) 21703cb26ccSSamuel Ortiz - [Command Line Interface](#command-line-interface) 21803cb26ccSSamuel Ortiz - [PVH Boot](#pvh-boot) 219*22cf8c97SRob Bradford - [Contributors](#contributors-23) 22094f2fc33SRob Bradford- [v0.5.1](#v051) 2212f395e60SSamuel Ortiz- [v0.5.0](#v050) 22294f2fc33SRob Bradford - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing) 22394f2fc33SRob Bradford - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization) 22494f2fc33SRob Bradford - [New Interrupt Management Framework](#new-interrupt-management-framework) 22594f2fc33SRob Bradford - [Development Tools](#development-tools) 22694f2fc33SRob Bradford - [Kata Containers Integration](#kata-containers-integration) 227*22cf8c97SRob Bradford - [Contributors](#contributors-24) 228cec884e8SSamuel Ortiz- [v0.4.0](#v040) 22994f2fc33SRob Bradford - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition) 23094f2fc33SRob Bradford - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation) 23194f2fc33SRob Bradford - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends) 23294f2fc33SRob Bradford - [Guest pause and resume](#guest-pause-and-resume) 23394f2fc33SRob Bradford - [Userspace IOAPIC by default](#userspace-ioapic-by-default) 23494f2fc33SRob Bradford - [PCI BAR reprogramming](#pci-bar-reprogramming) 23594f2fc33SRob Bradford - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization) 236*22cf8c97SRob Bradford - [Contributors](#contributors-25) 2378e8a7b6dSSamuel Ortiz- [v0.3.0](#v030) 23894f2fc33SRob Bradford - [Block device offloading](#block-device-offloading) 23994f2fc33SRob Bradford - [Network device backend](#network-device-backend) 24094f2fc33SRob Bradford - [Virtual sockets](#virtual-sockets) 24194f2fc33SRob Bradford - [HTTP based API](#http-based-api) 24294f2fc33SRob Bradford - [Memory mapped virtio transport](#memory-mapped-virtio-transport) 24394f2fc33SRob Bradford - [Paravirtualized IOMMU](#paravirtualized-iommu) 24494f2fc33SRob Bradford - [Ubuntu 19.10](#ubuntu-1910) 24594f2fc33SRob Bradford - [Large memory guests](#large-memory-guests) 2467688e6e2SSamuel Ortiz- [v0.2.0](#v020) 24794f2fc33SRob Bradford - [Network device offloading](#network-device-offloading) 24894f2fc33SRob Bradford - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi) 24994f2fc33SRob Bradford - [Debug I/O port](#debug-io-port) 25094f2fc33SRob Bradford - [Improved direct device assignment](#improved-direct-device-assignment) 25194f2fc33SRob Bradford - [Improved shared filesystem](#improved-shared-filesystem) 25294f2fc33SRob Bradford - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci) 2537688e6e2SSamuel Ortiz- [v0.1.0](#v010) 25494f2fc33SRob Bradford - [Shared filesystem](#shared-filesystem) 25594f2fc33SRob Bradford - [Initial direct device assignment support](#initial-direct-device-assignment-support) 25694f2fc33SRob Bradford - [Userspace IOAPIC](#userspace-ioapic) 25794f2fc33SRob Bradford - [Virtual persistent memory](#virtual-persistent-memory) 25894f2fc33SRob Bradford - [Linux kernel bzImage](#linux-kernel-bzimage) 25994f2fc33SRob Bradford - [Console over virtio](#console-over-virtio) 26094f2fc33SRob Bradford - [Unit testing](#unit-testing) 26194f2fc33SRob Bradford - [Integration tests parallelization](#integration-tests-parallelization) 26294f2fc33SRob Bradford 263*22cf8c97SRob Bradford# v29.0 264*22cf8c97SRob Bradford 265*22cf8c97SRob BradfordThis release has been tracked in our [roadmap 266*22cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 267*22cf8c97SRob Bradfordv29.0. The following user visible changes have been made: 268*22cf8c97SRob Bradford 269*22cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM 270*22cf8c97SRob Bradford 271*22cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV 272*22cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use. 273*22cf8c97SRob Bradford 274*22cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements 275*22cf8c97SRob Bradford 276*22cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration 277*22cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older 278*22cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially 279*22cf8c97SRob Bradfordsupported but has worked for some versions.) 280*22cf8c97SRob Bradford 281*22cf8c97SRob Bradford### Heap Allocation Improvements 282*22cf8c97SRob Bradford 283*22cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with 284*22cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size. 285*22cf8c97SRob Bradford 286*22cf8c97SRob Bradford### `ch-remote` Improvements 287*22cf8c97SRob Bradford 288*22cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to 289*22cf8c97SRob Bradford`ch-remote`. 290*22cf8c97SRob Bradford 291*22cf8c97SRob Bradford### `AArch64` Documentation Integration 292*22cf8c97SRob Bradford 293*22cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main 294*22cf8c97SRob BradfordREADME. 295*22cf8c97SRob Bradford 296*22cf8c97SRob Bradford### `virtio-block` Counters Enhancement 297*22cf8c97SRob Bradford 298*22cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max 299*22cf8c97SRob Bradfordlatency counters. 300*22cf8c97SRob Bradford 301*22cf8c97SRob Bradford### TCP Offload Control 302*22cf8c97SRob Bradford 303*22cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of 304*22cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments 305*22cf8c97SRob Bradfordwhere the hardware lacks support for the offloading. 306*22cf8c97SRob Bradford 307*22cf8c97SRob Bradford### Notable Bug Fixes 308*22cf8c97SRob Bradford 309*22cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an 310*22cf8c97SRob Bradford infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 311*22cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 312*22cf8c97SRob Bradford (#4924, #4949) 313*22cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 314*22cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016) 315*22cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034) 316*22cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037) 317*22cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095) 318*22cf8c97SRob Bradford 319*22cf8c97SRob Bradford### Removals 320*22cf8c97SRob Bradford 321*22cf8c97SRob BradfordNo functionality has been removed in this release. 322*22cf8c97SRob Bradford 323*22cf8c97SRob Bradford### Deprecations 324*22cf8c97SRob Bradford 325*22cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or 326*22cf8c97SRob Bradford `MemoryConfig::file` has been deprecated. This was originally used for 327*22cf8c97SRob Bradford supporting huge pages or shared memory backing which is now natively supported 328*22cf8c97SRob Bradford (#5085) 329*22cf8c97SRob Bradford 330*22cf8c97SRob Bradford### Contributors 331*22cf8c97SRob Bradford 332*22cf8c97SRob BradfordMany thanks to everyone who has contributed to our release: 333*22cf8c97SRob Bradford 334*22cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com> 335*22cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com> 336*22cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com> 337*22cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com> 338*22cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 339*22cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com> 340*22cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com> 341*22cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 342*22cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com> 343*22cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 344*22cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com> 345*22cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com> 346*22cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com> 347*22cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com> 348*22cf8c97SRob Bradford 349*22cf8c97SRob Bradford 350*22cf8c97SRob Bradford# v28.1 351*22cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed: 352*22cf8c97SRob Bradford 353*22cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that 354*22cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 355*22cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 356*22cf8c97SRob Bradford (#4924, #4949) 357*22cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 358*22cf8c97SRob Bradford* Improve README and documentation 359*22cf8c97SRob Bradford 36066460765SRob Bradford# v28.0 36166460765SRob Bradford 36266460765SRob BradfordThis release has been tracked in our new [roadmap 36366460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 36466460765SRob Bradfordv28.0. 36566460765SRob Bradford 36666460765SRob Bradford### Community Engagement (Reminder) 36766460765SRob Bradford 36866460765SRob BradfordJust a reminder that we have a new mailing list to support broader community 36966460765SRob Bradforddiscussions. Please consider 37066460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use 37166460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud 37266460765SRob BradfordHypervisor development. 37366460765SRob Bradford 37466460765SRob Bradford### Long Term Support (LTS) Release 37566460765SRob Bradford 37666460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS 37766460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18 37866460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point 37966460765SRob Bradfordreleases of the LTS. 38066460765SRob Bradford 38166460765SRob Bradford### Virtualised TPM Support 38266460765SRob Bradford 38366460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM 38466460765SRob Bradforddocumentation](docs/tpm.md). 38566460765SRob Bradford 38666460765SRob Bradford### Transparent Huge Page Support 38766460765SRob Bradford 38866460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back 38966460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`) 39066460765SRob Bradfordthen this will be used resulting in improved boot performance. 39166460765SRob Bradford 39266460765SRob Bradford### README Quick Start Improved 39366460765SRob Bradford 39466460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the 39566460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries. 39666460765SRob Bradford 39766460765SRob Bradford### Notable Bug Fixes 39866460765SRob Bradford 39966460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher 40066460765SRob Bradford memory consumption (#4835) 40166460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799) 40266460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767) 40366460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863) 40466460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811) 40566460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on 40666460765SRob Bradford newer Linux kernels (#4744) 40766460765SRob Bradford* Error on reboot from race to close TAP devices (#4871) 40866460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888) 40966460765SRob Bradford 41066460765SRob Bradford### Removals 41166460765SRob Bradford 41266460765SRob BradfordThe following functionality has been removed: 41366460765SRob Bradford 41466460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511) 41566460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926) 41666460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737) 41766460765SRob Bradford 41866460765SRob Bradford### Contributors 41966460765SRob Bradford 42066460765SRob BradfordMany thanks to everyone who has contributed to our release: 42166460765SRob Bradford 42266460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 42366460765SRob Bradford* Bo Chen <chen.bo@intel.com> 42466460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 42566460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 42666460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 42766460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com> 42866460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn> 42966460765SRob Bradford* Michael Zhao <michael.zhao@arm.com> 43066460765SRob Bradford* Muminul Islam <muislam@microsoft.com> 43166460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 43266460765SRob Bradford* Rob Bradford <robert.bradford@intel.com> 43366460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 43466460765SRob Bradford* Wei Liu <liuwe@microsoft.com> 43566460765SRob Bradford 4362ba6a9bfSRob Bradford# v27.0 4372ba6a9bfSRob Bradford 4382ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap 4392ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 4402ba6a9bfSRob Bradfordv27.0. 4412ba6a9bfSRob Bradford 4422ba6a9bfSRob Bradford### Community Engagement 4432ba6a9bfSRob Bradford 4442ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions. 4452ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an 4462ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly. 4472ba6a9bfSRob Bradford 4482ba6a9bfSRob Bradford### Prebuilt Packages 4492ba6a9bfSRob Bradford 4502ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this 4512ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md) 4522ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different 4532ba6a9bfSRob Bradfordfirmware options available. 4542ba6a9bfSRob Bradford 4552ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest 4562ba6a9bfSRob Bradford 4572ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed 4582ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is 4592ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for 4602ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend 4612ba6a9bfSRob Bradford(#4658, #4676.) 4622ba6a9bfSRob Bradford 4632ba6a9bfSRob Bradford### Boot Tracing 4642ba6a9bfSRob Bradford 4652ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added 4662ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.) 4672ba6a9bfSRob Bradford 4682ba6a9bfSRob Bradford### Simplified Build Feature Flags 4692ba6a9bfSRob Bradford 4702ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified: 4712ba6a9bfSRob Bradford 4722ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors 4732ba6a9bfSRob Bradford (with `kvm` enabled by default), 4742ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support 4752ba6a9bfSRob Bradford now it is now possible to compile with the `mshv` feature (#4696,) 4762ba6a9bfSRob Bradford* `tracing` adds support for boot tracing, 4772ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb` 4782ba6a9bfSRob Bradford feature) and dumping guest memory. 4792ba6a9bfSRob Bradford 4802ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by 4812ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.) 4822ba6a9bfSRob Bradford 4832ba6a9bfSRob Bradford### Asynchronous Kernel Loading 4842ba6a9bfSRob Bradford 4852ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like 4862ba6a9bfSRob Bradfordx86-64. (#4538) 4872ba6a9bfSRob Bradford 4882ba6a9bfSRob Bradford### GDB Support for AArch64 4892ba6a9bfSRob Bradford 4902ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now 4912ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64. 4922ba6a9bfSRob Bradford 4932ba6a9bfSRob Bradford### Notable Bug Fixes 4942ba6a9bfSRob Bradford 4952ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue 4962ba6a9bfSRob Bradford where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.) 4972ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices 4982ba6a9bfSRob Bradford (#4520, #4533, #4535.) 4992ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697) 5002ba6a9bfSRob Bradford 5012ba6a9bfSRob Bradford### Deprecations 5022ba6a9bfSRob Bradford 5032ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should 5042ba6a9bfSRob Bradfordplan to use alternatives. 5052ba6a9bfSRob Bradford 5062ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated. 5072ba6a9bfSRob Bradford All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware) 5082ba6a9bfSRob Bradford support booting with PVH so support for loading firmware in a legacy mode is no 5092ba6a9bfSRob Bradford longer needed. This functionality will be removed in the next release. 5102ba6a9bfSRob Bradford 5112ba6a9bfSRob Bradford### Contributors 5122ba6a9bfSRob Bradford 5132ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release: 5142ba6a9bfSRob Bradford 5152ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 5162ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com> 5172ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com> 5182ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 5192ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de> 5202ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com> 5212ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 5222ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com> 5232ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 5242ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com> 5252ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com> 5262ba6a9bfSRob Bradford 527ed9e54d6SRob Bradford# v26.0 528ed9e54d6SRob Bradford 529ed9e54d6SRob BradfordThis release has been tracked through the [v26.0 530ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30). 531ed9e54d6SRob Bradford 532ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform` 533ed9e54d6SRob Bradford 534ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying 535ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest) 536ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.) 537ed9e54d6SRob Bradford 538ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support 539ed9e54d6SRob Bradford 540ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same 541ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime. 542ed9e54d6SRob Bradford 543ed9e54d6SRob Bradford### Notable Bug Fixes 544ed9e54d6SRob Bradford 545ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454) 546ed9e54d6SRob Bradford* PCI Express capabilties for functionality we do not support are now filtered 547ed9e54d6SRob Bradford out (#4456) 548ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363) 549ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted 550ed9e54d6SRob Bradford (#4269, #4293) 551ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362) 552ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing 553ed9e54d6SRob Bradford the`virtio-fs` driver in OVMF to be used (#4341, #4314) 554ed9e54d6SRob Bradford* VHDX file format header fix (#4291) 555ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463) 556ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442) 557ed9e54d6SRob Bradford 558ed9e54d6SRob Bradford### Deprecations 559ed9e54d6SRob Bradford 560ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should 561ed9e54d6SRob Bradfordplan to use alternatives. 562ed9e54d6SRob Bradford 563ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been 564ed9e54d6SRob Bradford moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document 565ed9e54d6SRob Bradford has been updated to reflect the change and the old API members continue to 566ed9e54d6SRob Bradford function and are mapped to the new version. The expectation is that these old 567ed9e54d6SRob Bradford versions will be removed in the v28.0 release. 568ed9e54d6SRob Bradford 569ed9e54d6SRob Bradford### Removals 570ed9e54d6SRob Bradford 571ed9e54d6SRob BradfordThe following functionality has been removed: 572ed9e54d6SRob Bradford 573ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and 574ed9e54d6SRob Bradford equivalent. This was residual from the the removal of the `vhost-user-block` 575ed9e54d6SRob Bradford spawning feature (#4402.) 576ed9e54d6SRob Bradford 577ed9e54d6SRob Bradford### Contributors 578ed9e54d6SRob Bradford 579ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release: 580ed9e54d6SRob Bradford 581ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is> 582ed9e54d6SRob Bradford* Anatol Belski <ab@php.net> 583ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com> 584ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com> 585ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 586ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com> 587ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com> 588ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com> 589ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 590ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com> 591ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com> 592ed9e54d6SRob Bradford 593b132cd21SRob Bradford# v25.0 594b132cd21SRob Bradford 595b132cd21SRob BradfordThis release has been tracked through the [v25.0 596b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29). 597b132cd21SRob Bradford 598b132cd21SRob Bradford### `ch-remote` Improvements 599b132cd21SRob Bradford 600b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON 601b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM. 602b132cd21SRob Bradford 603b132cd21SRob Bradford### VM "Coredump" Support 604b132cd21SRob Bradford 605b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory 606b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012) 607b132cd21SRob Bradford 608b132cd21SRob Bradford### Notable Bug Fixes 609b132cd21SRob Bradford 610b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248) 611b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244) 612b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279) 613b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286) 614b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux 615b132cd21SRob Bradford 5.16 (#4156) 616b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer 617b132cd21SRob Bradford Linux guest 618b132cd21SRob Bradford 619b132cd21SRob Bradford### Removals 620b132cd21SRob Bradford 621b132cd21SRob BradfordThe following functionality has been removed: 622b132cd21SRob Bradford 623b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed 624b132cd21SRob Bradford (#3968) 625b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889) 626b132cd21SRob Bradford 627b132cd21SRob Bradford### Contributors 628b132cd21SRob Bradford 629b132cd21SRob BradfordMany thanks to everyone who has contributed to our release: 630b132cd21SRob Bradford 631b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com> 632b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 633b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com> 634b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com> 635b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 636b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com> 637b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 638b132cd21SRob Bradford 6390150de55SSebastien Boeuf# v24.0 6400150de55SSebastien Boeuf 6410150de55SSebastien BoeufThis release has been tracked through the [v24.0 6420150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28). 6430150de55SSebastien Boeuf 6440150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu` 6450150de55SSebastien Boeuf 6460150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default 6470150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with 6480150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access 6490150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM 6500150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing 6510150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU. 6520150de55SSebastien Boeuf 6530150de55SSebastien Boeuf### Ensure Identifiers Uniqueness 6540150de55SSebastien Boeuf 6550150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical 6560150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot 6570150de55SSebastien Boeufor whenever a device was hot plugged into the VM. 6580150de55SSebastien Boeuf 6590150de55SSebastien Boeuf### Sparse Mmap support 6600150de55SSebastien Boeuf 6610150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This 6620150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped. 6630150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the 6640150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly 6650150de55SSebastien Boeufimpacts the performance related to this device. 6660150de55SSebastien Boeuf 6670150de55SSebastien Boeuf### Expose Platform Serial Number 6680150de55SSebastien Boeuf 6690150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to 6700150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the 6710150de55SSebastien Boeufguest through the SMBIOS. 6720150de55SSebastien Boeuf 6730150de55SSebastien Boeuf### Notable Bug Fixes 6740150de55SSebastien Boeuf 6750150de55SSebastien Boeuf* Fix loading RAW firmware (#4072) 6760150de55SSebastien Boeuf* Reject compressed QCOW images (#4055) 6770150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003) 6780150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069) 6790150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983) 6800150de55SSebastien Boeuf 6810150de55SSebastien Boeuf### Notable Improvements 6820150de55SSebastien Boeuf 6830150de55SSebastien Boeuf* Refactor interrupt handling (#4083) 6840150de55SSebastien Boeuf* Load kernel asynchronously (#4022) 6850150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013) 6860150de55SSebastien Boeuf 6870150de55SSebastien Boeuf### Deprecations 6880150de55SSebastien Boeuf 6890150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should 6900150de55SSebastien Boeufplan to use alternatives 6910150de55SSebastien Boeuf 6920150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated 6930150de55SSebastien Boeuf (#3968) 6940150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 6950150de55SSebastien Boeuf 6960150de55SSebastien Boeuf### New on the Website 6970150de55SSebastien Boeuf 6980150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual 6990150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine) 7000150de55SSebastien Boeufhas been added to the Cloud Hypervisor website. 7010150de55SSebastien Boeuf 7020150de55SSebastien Boeuf### Contributors 7030150de55SSebastien Boeuf 7040150de55SSebastien BoeufMany thanks to everyone who has contributed to our release: 7050150de55SSebastien Boeuf 7060150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com> 7070150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com> 7080150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 7090150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io> 7100150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com> 7110150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 7120150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 7130150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com> 7140150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com> 7150150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 7160150de55SSebastien Boeuf 7170150de55SSebastien Boeuf# v23.1 7180150de55SSebastien Boeuf 7190150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed: 7200150de55SSebastien Boeuf 7210150de55SSebastien Boeuf* Add some missing seccomp rules 7220150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal 7230150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026) 7240150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device 7250150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs 7260150de55SSebastien Boeuf 7270c9c56f5SRob Bradford# v23.0 7280c9c56f5SRob Bradford 7290c9c56f5SRob BradfordThis release has been tracked through the [v23.0 7300c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27). 7310c9c56f5SRob Bradford 7320c9c56f5SRob Bradford### vDPA Support 7330c9c56f5SRob Bradford 7340c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but 7350c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API 7360c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor. 7370c9c56f5SRob Bradford 7380c9c56f5SRob Bradford### Updated OS Support list 7390c9c56f5SRob Bradford 7400c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to 7410c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed. 7420c9c56f5SRob Bradford 7430c9c56f5SRob Bradford### `AArch64` Memory Map Improvements 7440c9c56f5SRob Bradford 7450c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of 7460c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its 7470c9c56f5SRob Bradfordallocated RAM. (#3938) 7480c9c56f5SRob Bradford 7490c9c56f5SRob Bradford### `AMX` Support 7500c9c56f5SRob Bradford 7510c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the 7520c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime 7530c9c56f5SRob Bradfordenabling with `--cpu features=amx`. 7540c9c56f5SRob Bradford 7550c9c56f5SRob Bradford### Notable Bug Fixes 7560c9c56f5SRob Bradford 7570c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887) 7580c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914) 7590c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with 7600c9c56f5SRob Bradford `virtio-mem` (#3883) 7610c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the 7620c9c56f5SRob Bradford vIOMMU (#3870) 7630c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access 7640c9c56f5SRob Bradford (#3848) 7650c9c56f5SRob Bradford 7660c9c56f5SRob Bradford### Deprecations 7670c9c56f5SRob Bradford 7680c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should 7690c9c56f5SRob Bradfordplan to use alternatives 7700c9c56f5SRob Bradford 7710c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated 7720c9c56f5SRob Bradford (#3968) 7730c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 7740c9c56f5SRob Bradford 7750c9c56f5SRob Bradford### Contributors 7760c9c56f5SRob Bradford 7770c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release: 7780c9c56f5SRob Bradford 7790c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com> 7800c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 7810c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com> 7820c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 7830c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io> 7840c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com> 7850c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com> 7860c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 7870c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com> 7880c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com> 7890c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 7900c9c56f5SRob Bradford 7910c9c56f5SRob Bradford# v22.1 7920c9c56f5SRob Bradford 7930c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed: 7940c9c56f5SRob Bradford 7950c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827) 7960c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829) 7970c9c56f5SRob Bradford 7986aa10938SRob Bradford# v22.0 7996aa10938SRob Bradford 8000c9c56f5SRob BradfordThis release has been tracked through the [v22.0 8010c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25). 8026aa10938SRob Bradford 8036aa10938SRob Bradford### GDB Debug Stub Support 8046aa10938SRob Bradford 8056aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled 8066aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in 8076aa10938SRob Bradfordthe [gdb 8086aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md). 8096aa10938SRob Bradford 8106aa10938SRob Bradford### `virtio-iommu` Backed Segments 8116aa10938SRob Bradford 8126aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g. 8136aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that 8146aa10938SRob Bradfordwill place all the specified segments behind the IOMMU. 8156aa10938SRob Bradford 8166aa10938SRob Bradford### Before Boot Configuration Changes 8176aa10938SRob Bradford 8186aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices, 8196aa10938SRob Bradfordresize) before the VM is booted. 8206aa10938SRob Bradford 8216aa10938SRob Bradford### `virtio-balloon` Free Page Reporting 8226aa10938SRob Bradford 8236aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages 8246aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that 8256aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved 8266aa10938SRob Bradfordmemory density. 8276aa10938SRob Bradford 8286aa10938SRob Bradford### Support for Direct Kernel Booting with TDX 8296aa10938SRob Bradford 8306aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to 8316aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX 8326aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim) 8336aa10938SRob Bradfordhas been updated for this usage. 8346aa10938SRob Bradford 8356aa10938SRob Bradford### PMU Support for AArch64 8366aa10938SRob Bradford 8376aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be 8386aa10938SRob Bradfordexposed automatically if available from the host. 8396aa10938SRob Bradford 8400c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License 8416aa10938SRob Bradford 8426aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0 8436aa10938SRob BradfordInternational" license which is aligned with the project charter under the 8446aa10938SRob BradfordLinux Foundation. 8456aa10938SRob Bradford 8466aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd` 8476aa10938SRob Bradford 8486aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) 8496aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic" 8506aa10938SRob Bradfordversion. 8516aa10938SRob Bradford 8526aa10938SRob Bradford### Notable Bug Fixes 8536aa10938SRob Bradford 8546aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785) 8556aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689) 8566aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677) 8576aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607) 8586aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578) 8596aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609) 8606aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720) 8616aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737) 8626aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733) 8636aa10938SRob Bradford 8646aa10938SRob Bradford### Contributors 8656aa10938SRob Bradford 8666aa10938SRob BradfordMany thanks to everyone who has contributed to our release: 8676aa10938SRob Bradford 8686aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com> 8696aa10938SRob Bradford* Barret Rhoden <brho@google.com> 8706aa10938SRob Bradford* Bo Chen <chen.bo@intel.com> 8716aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 8726aa10938SRob Bradford* Feng Ye <yefeng@smartx.com> 8736aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com> 8746aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 8756aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 8766aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com> 8776aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com> 8786aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 8796aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com> 8806aa10938SRob Bradford 88195ca7997SRob Bradford# v21.0 88295ca7997SRob Bradford 88395ca7997SRob BradfordThis release has been tracked through the [v21.0 88495ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24). 88595ca7997SRob Bradford 88695ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade) 88795ca7997SRob Bradford 8886aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been 8896aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to 8906aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote 8916aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the 8926aa10938SRob Bradfordorder of 50ms vs 3s. (#3566) 89395ca7997SRob Bradford 89495ca7997SRob Bradford### Recommended Kernel is Now 5.15 89595ca7997SRob Bradford 8966aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel 8976aa10938SRob Bradfordis now 5.15. (#3530) 89895ca7997SRob Bradford 89995ca7997SRob Bradford### Notable Bug fixes 90095ca7997SRob Bradford 90195ca7997SRob Bradford* Multiple fixes were made to the OpenAPI YAML file to match the implementaion (#3555,#3562) 90295ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585) 90395ca7997SRob Bradford* Support live migration within firmware (#3586) 90495ca7997SRob Bradford* Validate the `virtio-net` desciptor chain (#3548) 90595ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587) 90695ca7997SRob Bradford 90795ca7997SRob Bradford### Contributors 90895ca7997SRob Bradford 90995ca7997SRob BradfordMany thanks to everyone who has contributed to our release: 91095ca7997SRob Bradford 91195ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 91295ca7997SRob Bradford* Barret Rhoden <brho@google.com> 91395ca7997SRob Bradford* Bo Chen <chen.bo@intel.com> 91495ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 91595ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com> 91695ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn> 91795ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com> 91895ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com> 91995ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com> 92095ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com> 92195ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 92295ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com> 92395ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com> 92495ca7997SRob Bradford 92595ca7997SRob Bradford# v20.2 92695ca7997SRob Bradford 92795ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 92895ca7997SRob Bradford 92995ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize) 93095ca7997SRob Bradford when this fails due to older kernel (#3456) 93195ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused 93295ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised 93395ca7997SRob Bradford (#3496) 93495ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497) 93595ca7997SRob Bradford 93695ca7997SRob Bradford# v20.1 93795ca7997SRob Bradford 93895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 93995ca7997SRob Bradford 94095ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450) 94195ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401) 94295ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432) 94395ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM 94495ca7997SRob Bradford* Correctly update the `DeviceTree` on restore 94595ca7997SRob Bradford 9467fc0776aSSebastien Boeuf# v20.0 9477fc0776aSSebastien Boeuf 9487fc0776aSSebastien BoeufThis release has been tracked through the [v20.0 9497fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23). 9507fc0776aSSebastien Boeuf 9517fc0776aSSebastien Boeuf### Multiple PCI segments support 9527fc0776aSSebastien Boeuf 9537fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and 9547fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments, 9557fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496. 9567fc0776aSSebastien Boeuf 9577fc0776aSSebastien Boeuf### CPU pinning 9587fc0776aSSebastien Boeuf 9597fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is 9607fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and 9617fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node. 9627fc0776aSSebastien Boeuf 9637fc0776aSSebastien Boeuf### Improved VFIO support 9647fc0776aSSebastien Boeuf 9657fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting 9667fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of 9677fc0776aSSebastien Boeufthe passthrough device. 9687fc0776aSSebastien Boeuf 9697fc0776aSSebastien Boeuf### Safer code 9707fc0776aSSebastien Boeuf 9717fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe 9727fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining 9737fc0776aSSebastien Boeufunsafe sections are safe to use. 9747fc0776aSSebastien Boeuf 9757fc0776aSSebastien Boeuf### Extended documentation 9767fc0776aSSebastien Boeuf 9777fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have 9787fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run 9797fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX. 9807fc0776aSSebastien Boeuf 9817fc0776aSSebastien Boeuf### Notable bug fixes 9827fc0776aSSebastien Boeuf 9837fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244) 9847fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338) 9857fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344) 9867fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393) 9877fc0776aSSebastien Boeuf 9887fc0776aSSebastien Boeuf### Contributors 9897fc0776aSSebastien Boeuf 9907fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release: 9917fc0776aSSebastien Boeuf 9927fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is> 9937fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com> 9947fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 9957fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com> 9967fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com> 9977fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 9987fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 9997fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 10007fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com> 10017fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com> 10027fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com> 10037fc0776aSSebastien Boeuf 1004d00eb4aaSRob Bradford# v19.0 1005d00eb4aaSRob Bradford 1006d00eb4aaSRob BradfordThis release has been tracked through the [v19.0 1007d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22). 1008d00eb4aaSRob Bradford 1009d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console` 1010d00eb4aaSRob Bradford 1011d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the 1012d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in 1013d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized. 1014d00eb4aaSRob Bradford 1015d00eb4aaSRob Bradford### PCI boot time optimisations 1016d00eb4aaSRob Bradford 1017d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in 1018d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest. 1019d00eb4aaSRob Bradford 1020d00eb4aaSRob Bradford### Improved TDX support 1021d00eb4aaSRob Bradford 1022d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now 1023d00eb4aaSRob Bradfordexposed via the firmware to the guest. 1024d00eb4aaSRob Bradford 1025d00eb4aaSRob Bradford### Live migration enhancements 1026d00eb4aaSRob Bradford 1027d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem` 1028d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live 1029d00eb4aaSRob Bradfordmigration. 1030d00eb4aaSRob Bradford 1031d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user` 1032d00eb4aaSRob Bradford 1033d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with 1034d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug. 1035d00eb4aaSRob Bradford 1036d00eb4aaSRob Bradford### AArch64 for `virtio-iommu` 1037d00eb4aaSRob Bradford 1038d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform. 1039d00eb4aaSRob Bradford 1040d00eb4aaSRob Bradford### Notable bug fixes 1041d00eb4aaSRob Bradford 1042d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or 1043d00eb4aaSRob Bradford snapshot/restore (#3165) 1044d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO 1045d00eb4aaSRob Bradford (#3078 #3113) 1046d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in 1047d00eb4aaSRob Bradford the underlying crate (#3157) 1048d00eb4aaSRob Bradford 1049d00eb4aaSRob Bradford### Contributors 1050d00eb4aaSRob Bradford 1051d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release: 1052d00eb4aaSRob Bradford 1053d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is> 1054d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com> 1055d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com> 1056d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com> 1057d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1058d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com> 1059d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com> 1060d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com> 1061d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com> 1062d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1063d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com> 1064d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com> 1065d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1066d00eb4aaSRob Bradford 10672c4f8d22SRob Bradford# v18.0 10682c4f8d22SRob Bradford 10692c4f8d22SRob BradfordThis release has been tracked through the [v18.0 10702c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21). 10712c4f8d22SRob Bradford 10722c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support 10732c4f8d22SRob Bradford 10742c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user` 10752c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller 10762c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line. 10772c4f8d22SRob Bradford 10782c4f8d22SRob Bradford### Migration support for `vhost-user` devices 10792c4f8d22SRob Bradford 10802c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live 10812c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly 10822c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this. 10832c4f8d22SRob Bradford 10842c4f8d22SRob Bradford### VHDX disk image support 10852c4f8d22SRob Bradford 10862c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor. 10872c4f8d22SRob Bradford 10882c4f8d22SRob Bradford### Device pass through on MSHV hypervisor 10892c4f8d22SRob Bradford 10902c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from 10912c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`) 10922c4f8d22SRob Bradford 10932c4f8d22SRob Bradford### AArch64 for support `virtio-mem` 10942c4f8d22SRob Bradford 10952c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64. 10962c4f8d22SRob Bradford 10972c4f8d22SRob Bradford### Live migration on MSHV hypervisor 10982c4f8d22SRob Bradford 10992c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including 11002c4f8d22SRob Bradfordefficient tracking of dirty pages. 11012c4f8d22SRob Bradford 11022c4f8d22SRob Bradford### AArch64 CPU topology support 11032c4f8d22SRob Bradford 11042c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be 11052c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device 11062c4f8d22SRob Bradfordtree. 11072c4f8d22SRob Bradford 11082c4f8d22SRob Bradford### Power button support on AArch64 11092c4f8d22SRob Bradford 11102c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`) 11112c4f8d22SRob Bradfordis now supported when running on AArch64. 11122c4f8d22SRob Bradford 11132c4f8d22SRob Bradford### Notable bug fixes 11142c4f8d22SRob Bradford 11152c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012) 11162c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005) 11172c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004) 11182c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049) 11192c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069) 11202c4f8d22SRob Bradford 11212c4f8d22SRob Bradford### Contributors 11222c4f8d22SRob Bradford 11232c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release: 11242c4f8d22SRob Bradford 11252c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is> 11262c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 11272c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com> 11282c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com> 11292c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu> 11302c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com> 11312c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 11322c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com> 11332c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de> 11342c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com> 11352c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com> 11362c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 11372c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com> 11382c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1139e6db5999SRob Bradford 1140e6db5999SRob Bradford# v17.0 1141e6db5999SRob Bradford 1142e6db5999SRob BradfordThis release has been tracked through the [v17.0 1143e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20). 1144e6db5999SRob Bradford 1145e6db5999SRob Bradford### ARM64 NUMA support using ACPI 1146e6db5999SRob Bradford 1147e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for 1148e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options. 1149e6db5999SRob Bradford 1150e6db5999SRob Bradford### `Seccomp` support for MSHV backend 1151e6db5999SRob Bradford 1152e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV 1153e6db5999SRob Bradfordhypervisor backend. 1154e6db5999SRob Bradford 1155e6db5999SRob Bradford### Hotplug of `macvtap` devices 1156e6db5999SRob Bradford 1157e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the 1158e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote` 1159e6db5999SRob Bradfordtool supports this functionality when adding a network device. 1160e6db5999SRob Bradford 1161e6db5999SRob Bradford### Improved SGX support 1162e6db5999SRob Bradford 1163e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and 1164e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes. 1165e6db5999SRob Bradford 1166e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices 1167e6db5999SRob Bradford 1168e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the 1169e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection. 1170e6db5999SRob Bradford 1171e6db5999SRob Bradford### Notable bug fixes 1172e6db5999SRob Bradford 1173e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821). 1174e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the 1175e6db5999SRob Bradford `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM 1176e6db5999SRob Bradford(#2833). 1177e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763). 1178e6db5999SRob Bradford 1179e6db5999SRob Bradford### Contributors 1180e6db5999SRob Bradford 1181e6db5999SRob BradfordMany thanks to everyone who has contributed to our release: 1182e6db5999SRob Bradford 1183e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 1184e6db5999SRob Bradford* Arafatms <arafatms@outlook.com> 1185e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com> 1186e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com> 1187e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com> 1188e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 1189e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1190e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com> 1191e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1192e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com> 1193e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1194e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1195e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com> 1196e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com> 1197e6db5999SRob Bradford 11985ed8e01fSRob Bradford# v16.0 11995ed8e01fSRob Bradford 12005ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19). 12015ed8e01fSRob Bradford 12025ed8e01fSRob Bradford### Improved live migration support 12035ed8e01fSRob Bradford 12045ed8e01fSRob 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. 12055ed8e01fSRob Bradford 12065ed8e01fSRob Bradford### Improved `vhost-user` support 12075ed8e01fSRob Bradford 12085ed8e01fSRob 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. 12095ed8e01fSRob Bradford 12105ed8e01fSRob Bradford### ARM64 ACPI and UEFI support 12115ed8e01fSRob Bradford 12125ed8e01fSRob 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. 12135ed8e01fSRob Bradford 12145ed8e01fSRob Bradford### Notable bug fixes 12155ed8e01fSRob Bradford 12165ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578). 12175ed8e01fSRob 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). 12185ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore. 12195ed8e01fSRob Bradford 12205ed8e01fSRob Bradford### Removed functionality 12215ed8e01fSRob Bradford 12225ed8e01fSRob BradfordThe following formerly deprecated features have been removed: 12235ed8e01fSRob Bradford 12245ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 12255ed8e01fSRob Bradford binaries has been deprecated. When using direct boot users should configure 12265ed8e01fSRob Bradford their kernel with `CONFIG_PVH=y`. 12275ed8e01fSRob Bradford 12285ed8e01fSRob Bradford### Contributors 12295ed8e01fSRob Bradford 12305ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 12315ed8e01fSRob Bradford 12325ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 12335ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com> 12345ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn> 12355ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com> 12365ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 12375ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 12385ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com> 12395ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 12405ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com> 12415ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn> 12425ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com> 12435ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 12445ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com> 12455ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 12465ed8e01fSRob Bradford 124730a01277SRob Bradford# v15.0 124830a01277SRob Bradford 124930a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18). 125030a01277SRob Bradford 125130a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include: 125230a01277SRob Bradford 125330a01277SRob Bradford### Version numbering and stability guarantees 125430a01277SRob Bradford 125530a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that 125630a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability. 125730a01277SRob BradfordWith this new release we are beginning our new stability guarantees: 125830a01277SRob Bradford 125930a01277SRob Bradford* The API (including command line options) will not be removed or changed in a 126030a01277SRob Bradford breaking way without a minimum of 2 releases notice. Where possible warnings 126130a01277SRob Bradford will be given about the use of deprecated functionality and the deprecations 126230a01277SRob Bradford will be documented in the release notes. 126330a01277SRob Bradford* Point releases will be made between individual releases where there are 126430a01277SRob Bradford substantial bug fixes or security issues that need to be fixed. 126530a01277SRob Bradford 126630a01277SRob BradfordCurrently the following items are **not** guaranteed across updates: 126730a01277SRob Bradford 126830a01277SRob Bradford* Snapshot/restore is not supported across different versions 126930a01277SRob Bradford* Live migration is not supported across different versions 127030a01277SRob Bradford* The following features are considered experimental and may change 127130a01277SRob Bradford substantially between releases: TDX, SGX. 127230a01277SRob Bradford 127330a01277SRob Bradford### Network device rate limiting 127430a01277SRob Bradford 127530a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network 127630a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the 127730a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 127830a01277SRob Bradford 127930a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload 128030a01277SRob Bradford 128130a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net` 128230a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the 128330a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings 128430a01277SRob Bradfordeven if they are not advertised as configurable (#2528). 128530a01277SRob Bradford 128630a01277SRob Bradford### `--api-socket` supports file descriptor parameter 128730a01277SRob Bradford 128830a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file 128930a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to 129030a01277SRob Bradfordprogrammatically control Cloud Hypervisor. 129130a01277SRob Bradford 129230a01277SRob Bradford### Bug fixes 129330a01277SRob Bradford 129430a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that 129530a01277SRob Bradford results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277). 129630a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to 129730a01277SRob Bradford reprogram them (#1797,#1798) 129830a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer 129930a01277SRob Bradford exhaustion on the host) (#2517) 130030a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that 130130a01277SRob Bradford prevents snapshot & restore working (#2535) 130230a01277SRob Bradford 130330a01277SRob Bradford### Deprecations 130430a01277SRob Bradford 130530a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 130630a01277SRob Bradford 130730a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 130830a01277SRob Bradford binaries has been deprecated. When using direct boot users should configure 130930a01277SRob Bradford their kernel with `CONFIG_PVH=y`. Will be removed in v16.0. 131030a01277SRob Bradford 131130a01277SRob Bradford### Contributors 131230a01277SRob Bradford 131330a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 131430a01277SRob Bradford 131530a01277SRob Bradford* Alyssa Ross <hi@alyssa.is> 131630a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 131730a01277SRob Bradford* Bo Chen <chen.bo@intel.com> 131830a01277SRob Bradford* Gaelan Steele <gbs@canishe.com> 131930a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 132030a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com> 132130a01277SRob Bradford* Muminul Islam <muislam@microsoft.com> 132230a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com> 132330a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 132430a01277SRob Bradford* Wei Liu <liuwe@microsoft.com> 132530a01277SRob Bradford* William Douglas <william.douglas@intel.com> 132630a01277SRob Bradford 132730a01277SRob Bradford# v0.14.1 132830a01277SRob Bradford 132930a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed 133030a01277SRob Bradfordin this release: 133130a01277SRob Bradford 133230a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and 133330a01277SRob Bradford the lack of HyperV CPUID bit enabled (#2437, #2449, #2436) 133430a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455) 133530a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating 133630a01277SRob Bradford DescriptorChainTooShort errors in certain circumstances (#2450, #2424) 133730a01277SRob Bradford 133840c63dcfSRob Bradford# v0.14.0 133940c63dcfSRob Bradford 134040c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17). 134140c63dcfSRob Bradford 134240c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include: 134340c63dcfSRob Bradford 134440c63dcfSRob Bradford### Structured event monitoring 134540c63dcfSRob Bradford 134640c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured 134740c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of 134840c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further 134940c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud 135040c63dcfSRob BradfordHypervisor API surface. 135140c63dcfSRob Bradford 135240c63dcfSRob Bradford### MSHV improvements 135340c63dcfSRob Bradford 135440c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV 135540c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to 135640c63dcfSRob Bradfordthe MSHV support. 135740c63dcfSRob Bradford 135840c63dcfSRob Bradford### Improved aarch64 platform 135940c63dcfSRob Bradford 136040c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running 136140c63dcfSRob BradfordVM including an enhanced serial UART. 136240c63dcfSRob Bradford 136340c63dcfSRob Bradford### Updated hotplug documentation 136440c63dcfSRob Bradford 136540c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use 136640c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as 136740c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices. 136840c63dcfSRob Bradford 136940c63dcfSRob Bradford### PTY control for serial and `virtio-console` 137040c63dcfSRob Bradford 137140c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY 137240c63dcfSRob Bradfordallowing programmatic control of the console from another process through the 137340c63dcfSRob BradfordPTY subsystem. 137440c63dcfSRob Bradford 137540c63dcfSRob Bradford### Block device rate limiting 137640c63dcfSRob Bradford 137740c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM 137840c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the 137930a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 138040c63dcfSRob Bradford 138140c63dcfSRob Bradford 138240c63dcfSRob Bradford### Deprecations 138340c63dcfSRob Bradford 138440c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 138540c63dcfSRob Bradford 138640c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 138740c63dcfSRob Bradford binaries has been deprecated. When using direct boot users should configure 138840c63dcfSRob Bradford their kernel with `CONFIG_PVH=y`. 138940c63dcfSRob Bradford 139040c63dcfSRob Bradford 139140c63dcfSRob Bradford### Contributors 139240c63dcfSRob Bradford 139340c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including 139440c63dcfSRob Bradfordsome new faces. 139540c63dcfSRob Bradford 139640c63dcfSRob BradfordBo Chen <chen.bo@intel.com> 139740c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com> 139840c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com> 139940c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com> 140040c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com> 140140c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com> 140240c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com> 140340c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com> 140440c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com> 140540c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com> 140640c63dcfSRob BradfordWei Liu <liuwe@microsoft.com> 140740c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com> 140840c63dcfSRob BradfordZide Chen <zide.chen@intel.com> 140940c63dcfSRob Bradford 1410f58b6f84SRob Bradford# v0.13.0 1411f58b6f84SRob Bradford 1412f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16). 1413f58b6f84SRob Bradford 1414f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include: 1415f58b6f84SRob Bradford 1416f58b6f84SRob Bradford### Wider VFIO device support 1417f58b6f84SRob Bradford 1418f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI 1419f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts. 1420f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary 1421f58b6f84SRob Bradforddrivers. 1422f58b6f84SRob Bradford 142340c63dcfSRob Bradford### Improved huge page support 1424f58b6f84SRob Bradford 1425f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to 1426f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest 1427f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the 1428f58b6f84SRob Bradforddesired size in their pool. 1429f58b6f84SRob Bradford 1430f58b6f84SRob Bradford### MACvTAP support 1431f58b6f84SRob Bradford 1432f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to 1433f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user. 1434f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP 1435f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md). 1436f58b6f84SRob Bradford 1437f58b6f84SRob Bradford### VHD disk image support 1438f58b6f84SRob Bradford 1439f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw 1440f58b6f84SRob Bradforddisk image with Cloud Hypervisor. 1441f58b6f84SRob Bradford 1442f58b6f84SRob Bradford### Improved Virtio device threading 1443f58b6f84SRob Bradford 1444f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more 1445f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a 1446f58b6f84SRob Bradfordpredictable name derived from the device id. 1447f58b6f84SRob Bradford 1448f58b6f84SRob Bradford### Clean shutdown support via synthetic power button 1449f58b6f84SRob Bradford 1450f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering 1451f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for 1452f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly 1453f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be 1454f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`. 1455f58b6f84SRob Bradford 1456f58b6f84SRob Bradford### Contributors 1457f58b6f84SRob Bradford 1458f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including 1459f58b6f84SRob Bradfordsome new faces. 1460f58b6f84SRob Bradford 1461f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com> 1462f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 1463f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com> 1464f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1465f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 1466f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1467f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com> 1468f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com> 1469f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com> 1470f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com> 1471f58b6f84SRob Bradford 1472d42b5084SRob Bradford# v0.12.0 1473d42b5084SRob Bradford 1474d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15). 1475d42b5084SRob Bradford 1476d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include: 1477d42b5084SRob Bradford 1478d42b5084SRob Bradford### ARM64 enhancements 1479d42b5084SRob Bradford 1480d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the 1481d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system. 1482d42b5084SRob Bradford 1483d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning 1484d42b5084SRob Bradford 1485d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now 1486d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to 1487d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been 1488d42b5084SRob Bradfordremoved. 1489d42b5084SRob Bradford 1490d42b5084SRob Bradford### Migration of `vhost-user-fs` backend 1491d42b5084SRob Bradford 1492d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is 1493d42b5084SRob Bradfordinstead hosted in [it's own 1494d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs) 1495d42b5084SRob Bradford 1496d42b5084SRob Bradford### Enhanced "info" API 1497d42b5084SRob Bradford 1498d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the 1499d42b5084SRob Bradforddevices used by the VM including any VFIO devices used. 1500d42b5084SRob Bradford 1501d42b5084SRob Bradford### Contributors 1502d42b5084SRob Bradford 1503d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release: 1504d42b5084SRob Bradford 1505d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 1506d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com> 1507d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1508d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com> 1509d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1510d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 1511d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com> 1512d42b5084SRob Bradford 15137dcd3affSRob Bradford# v0.11.0 15147dcd3affSRob Bradford 15157dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14). 15167dcd3affSRob Bradford 15177dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include: 15187dcd3affSRob Bradford 15197dcd3affSRob Bradford### `io_uring` support by default for `virtio-block` 15207dcd3affSRob Bradford 15217dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will 15227dcd3affSRob Bradfordbe used for a significantly higher performance block device. 15237dcd3affSRob Bradford 15247dcd3affSRob Bradford### Windows Guest Support 15257dcd3affSRob Bradford 15267dcd3affSRob BradfordThis is the first release where we officially support Windows running as a 15277dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a 15287dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows 15297dcd3affSRob Bradforddocumentation](docs/windows.md). 15307dcd3affSRob Bradford 15317dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation 15327dcd3affSRob Bradford 15337dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now 15347dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make 15357dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release. 15367dcd3affSRob Bradford 1537d00eb4aaSRob Bradford### `virtio-mmio` Removal 15387dcd3affSRob Bradford 15397dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been 15407dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly 15417dcd3affSRob Bradfordreduce the testing burden of the project. 15427dcd3affSRob Bradford 15437dcd3affSRob Bradford### Snapshot/Restore support for ARM64 15447dcd3affSRob Bradford 15457dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been 15467dcd3affSRob Bradfordimplemented. 15477dcd3affSRob Bradford 15487dcd3affSRob Bradford### Improved Linux Boot Time 15497dcd3affSRob Bradford 15507dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the 15517dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and 15527dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728. 15537dcd3affSRob Bradford 15547dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling 15557dcd3affSRob Bradford 15567dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will 15577dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The 15587dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its 15597dcd3affSRob Bradfordresources. 15607dcd3affSRob Bradford 15617dcd3affSRob Bradford### Default Log Level Changed 15627dcd3affSRob Bradford 15637dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it 15647dcd3affSRob Bradfordeasier to see potential issues. New [logging 15657dcd3affSRob Bradforddocumentation](docs/logging) was also added. 15667dcd3affSRob Bradford 15677dcd3affSRob Bradford### New `--balloon` Parameter Added 15687dcd3affSRob Bradford 15697dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its 15707dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific 15717dcd3affSRob Bradfordcontrols without overloading `--memory`. 15727dcd3affSRob Bradford 15737dcd3affSRob Bradford### Experimental `virtio-watchdog` Support 15747dcd3affSRob Bradford 15757dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to 15767dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the 15777dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support. 15787dcd3affSRob Bradford 15797dcd3affSRob Bradford### Notable Bug Fixes 15807dcd3affSRob Bradford 15817dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest 15827dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170) 15837dcd3affSRob Bradford* CPU identification string is now exposed to the guest 15847dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as 15857dcd3affSRob Bradford read only so avoids excessive VM exits (#1795) 15867dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802) 15877dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size 15887dcd3affSRob Bradford can be used (#1803) 15897dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works 15907dcd3affSRob Bradford correctly 15917dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work 15927dcd3affSRob Bradford correctly 15937dcd3affSRob Bradford 15947dcd3affSRob Bradford### Contributors 15957dcd3affSRob Bradford 15967dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces. 15977dcd3affSRob Bradford 15987dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 15997dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com> 16007dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org> 16017dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com> 16027dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com> 16037dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com> 16047dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com> 16057dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com> 16067dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com> 16077dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com> 16087dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com> 16097dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com> 16107dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com> 16117dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 16127dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com> 16137dcd3affSRob Bradford 16147dcd3affSRob Bradford 1615198bd551SRob Bradford# v0.10.0 1616198bd551SRob Bradford 1617198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13). 1618198bd551SRob Bradford 1619198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include: 1620198bd551SRob Bradford 1621198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors 1622198bd551SRob Bradford 1623198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers. 1624198bd551SRob Bradford 1625198bd551SRob Bradford### Memory Zones 1626198bd551SRob Bradford 1627198bd551SRob 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). 1628198bd551SRob Bradford 1629198bd551SRob Bradford### `Seccomp` Sandbox Improvements 1630198bd551SRob Bradford 1631198bd551SRob 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`. 1632198bd551SRob Bradford 1633198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control 1634198bd551SRob Bradford 1635198bd551SRob 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. 1636198bd551SRob Bradford 1637198bd551SRob Bradford### Notable Bug Fixes 1638198bd551SRob Bradford 1639198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596) 1640198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564) 1641198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593) 1642198bd551SRob Bradford- `--version` shows the version for released binaries (#1669) 1643198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551) 1644198bd551SRob Bradford 1645198bd551SRob Bradford### Contributors 1646198bd551SRob Bradford 1647198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces. 1648198bd551SRob Bradford 1649198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is> 1650198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com> 1651198bd551SRob Bradford* Anatol Belski <ab@php.net> 1652198bd551SRob Bradford* Bo Chen <chen.bo@intel.com> 1653198bd551SRob Bradford* Hui Zhu <teawater@antfin.com> 1654198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1655198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com> 1656198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1657198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 1658198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1659198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com> 1660198bd551SRob Bradford 1661d714cf81SRob Bradford# v0.9.0 1662d714cf81SRob Bradford 1663d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12). 1664d714cf81SRob Bradford 1665d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include: 1666d714cf81SRob Bradford 1667d714cf81SRob Bradford### `io_uring` Based Block Device Support 1668d714cf81SRob Bradford 1669d714cf81SRob 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. 1670d714cf81SRob Bradford 1671d714cf81SRob Bradford### Block and Network Device Statistics 1672d714cf81SRob Bradford 1673d714cf81SRob 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. 1674d714cf81SRob Bradford 1675d714cf81SRob Bradford### HTTP API Responses 1676d714cf81SRob Bradford 1677d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF. 1678d714cf81SRob Bradford 1679d714cf81SRob Bradford### CPU Topology 1680d714cf81SRob Bradford 1681d714cf81SRob 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. 1682d714cf81SRob Bradford 1683d714cf81SRob Bradford### Release Build Optimization 1684d714cf81SRob Bradford 1685d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size. 1686d714cf81SRob Bradford 1687d714cf81SRob Bradford### Hypervisor Abstraction 1688d714cf81SRob Bradford 1689d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`. 1690d714cf81SRob Bradford 1691d714cf81SRob Bradford### Snapshot/Restore Improvements 1692d714cf81SRob Bradford 1693d714cf81SRob 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. 1694d714cf81SRob Bradford 1695d714cf81SRob Bradford### Virtio Memory Ballooning Support 1696d714cf81SRob Bradford 1697d714cf81SRob 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. 1698d714cf81SRob Bradford 1699d714cf81SRob Bradford### Enhancements to ARM64 Support 1700d714cf81SRob Bradford 1701d714cf81SRob 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. 1702d714cf81SRob Bradford 1703d714cf81SRob Bradford### Intel SGX Support 1704d714cf81SRob Bradford 1705d714cf81SRob 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). 1706d714cf81SRob Bradford 1707d714cf81SRob Bradford### `Seccomp` Sandbox Improvements 1708d714cf81SRob Bradford 1709d714cf81SRob 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. 1710d714cf81SRob Bradford 1711d714cf81SRob Bradford### Notable Bug Fixes 1712d714cf81SRob Bradford 1713d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes. 1714d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338) 1715d714cf81SRob 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). 1716d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275). 1717d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217) 1718d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521) 1719d714cf81SRob Bradford 1720d714cf81SRob Bradford### Contributors 1721d714cf81SRob Bradford 1722d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces. 1723d714cf81SRob Bradford 1724d714cf81SRob Bradford* Anatol Belski <ab@php.net> 1725d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com> 1726d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 1727d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com> 1728d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com> 1729d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com> 1730d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1731d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 1732d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 1733d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1734d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com> 1735d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com> 1736d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com> 1737d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1738d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 1739d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1740d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com> 1741d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com> 1742d714cf81SRob Bradford 1743d714cf81SRob Bradford 174452b83969SRob Bradford# v0.8.0 174552b83969SRob Bradford 174652b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10). 174752b83969SRob Bradford 174852b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include: 174952b83969SRob Bradford 175052b83969SRob Bradford### Experimental Snapshot and Restore Support 175152b83969SRob Bradford 175252b83969SRob BradfordThis release includes the first version of the snapshot and restore feature. 175352b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later 175452b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the 175552b83969SRob Bradfordoriginal VM at the point it was paused. 175652b83969SRob Bradford 175752b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to 175852b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest 175952b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on 176052b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed 176152b83969SRob Bradford(#1176). 176252b83969SRob Bradford 176352b83969SRob Bradford### Experimental ARM64 Support 176452b83969SRob Bradford 176552b83969SRob BradfordIncluded in this release is experimental support for running on ARM64. 176652b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full 176752b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md). 176852b83969SRob Bradford 176952b83969SRob Bradford### Support for Using 5-level Paging in Guests 177052b83969SRob Bradford 177152b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57). 177252b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware 177352b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not 177452b83969SRob Bradfordwork due to current limitations in the PVH boot process. 177552b83969SRob Bradford 177652b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices 177752b83969SRob Bradford 177852b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress 177952b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This 178052b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts 178152b83969SRob Bradfordthe guest must service. 178252b83969SRob Bradford 178352b83969SRob Bradford### `vhost_user_fs` Improvements 178452b83969SRob Bradford 178552b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`. 178652b83969SRob Bradford 178752b83969SRob Bradford 178852b83969SRob Bradford### Notable Bug Fixes 178952b83969SRob Bradford 179052b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110). 179152b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to 179252b83969SRob Bradford run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273). 179352b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to 179452b83969SRob Bradford the specification and synchronizes to the underlying filesystem as required 179552b83969SRob Bradford based on guest feature negotiation. This avoids potential data loss (#399, 179652b83969SRob Bradford #1216). 179752b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be 179852b83969SRob Bradford overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the 179952b83969SRob Bradford `MPTABLE` will no longer be generated (#1132). 180052b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816). 180152b83969SRob Bradford* Created socket files are deleted on shutdown (#1083). 180252b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds 180352b83969SRob Bradford (#751). 180452b83969SRob Bradford 180552b83969SRob Bradford### Command Line and API Changes 180652b83969SRob Bradford 180752b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes: 180852b83969SRob Bradford 180952b83969SRob Bradford* All user visible socket parameters are now consistently called `socket` 181052b83969SRob Bradford rather than `sock` in some cases. 181152b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM 181252b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always 181352b83969SRob Bradford offered for negotiation. 181452b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC 181552b83969SRob Bradford address for the `tap` device on the host. 181652b83969SRob Bradford 181752b83969SRob Bradford### Contributors 181852b83969SRob Bradford 181952b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces. 182052b83969SRob Bradford 182152b83969SRob Bradford* Anatol Belski <ab@php.net> 182252b83969SRob Bradford* Arron Wang <arron.wang@intel.com> 182352b83969SRob Bradford* Bo Chen <chen.bo@intel.com> 182452b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 182552b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com> 182652b83969SRob Bradford* Hui Zhu <teawater@antfin.com> 182752b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 182852b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com> 182952b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com> 183052b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 183152b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 183252b83969SRob Bradford* Sergio Lopez <slp@redhat.com> 183352b83969SRob Bradford 183496be8229SRob Bradford# v0.7.0 183596be8229SRob Bradford 183696be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 183796be8229SRob Bradford 183896be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include: 183996be8229SRob Bradford 184096be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug 184196be8229SRob Bradford 184296be8229SRob BradfordFurther to our effort to support modifying a running guest we now support 184396be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network, 184496be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI 18455c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility 184696be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has 184796be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for 184896be8229SRob Bradforddevices to ease their removal. 184996be8229SRob Bradford 185096be8229SRob Bradford### Alternative `libc` Support 185196be8229SRob Bradford 185296be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release 185396be8229SRob Bradfordcontains a static binary compiled using that toolchain. 185496be8229SRob Bradford 185596be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends 185696be8229SRob Bradford 185796be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by 185896be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to 185996be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true` 186096be8229SRob Bradfordis passed when the devices are created. 186196be8229SRob Bradford 186296be8229SRob Bradford### Initial RamFS Support 186396be8229SRob Bradford 186496be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to 186596be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem. 186696be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to 186796be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very 186896be8229SRob Bradfordminimal image. 186996be8229SRob Bradford 187096be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem` 187196be8229SRob Bradford 187296be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using 187396be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the 187496be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently 187596be8229SRob Bradfordrequires kernel patches to be able to support it. 187696be8229SRob Bradford 187796be8229SRob Bradford### `Seccomp` Sandboxing 187896be8229SRob Bradford 187996be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the 188096be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is 188196be8229SRob Bradfordcontrolled by the `--seccomp` command line option. 188296be8229SRob Bradford 188396be8229SRob Bradford### Updated Distribution Support 188496be8229SRob Bradford 188596be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported 188696be8229SRob Bradforddistributions and is part of our regular testing programme. 188796be8229SRob Bradford 188896be8229SRob Bradford### Command Line and API Changes 188996be8229SRob Bradford 189096be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes 189196be8229SRob Bradford 189296be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal. 189396be8229SRob Bradford If no name is specified the VMM chooses one. 189496be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing 189596be8229SRob Bradford memory instead of providing a path. 189696be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only 189796be8229SRob Bradford supports a single Vsock device. The REST API has removed the vector for this 189896be8229SRob Bradford option and replaced it with a single optional field. 189996be8229SRob Bradford* There is enhanced validation of the command line and API provided 190096be8229SRob Bradford configurations to ensure that the provided options are compatible e.g. that 190196be8229SRob Bradford shared memory is in use if any attempt is made to used a `vhost-user` backed 190296be8229SRob Bradford device. 190396be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and 190496be8229SRob Bradford `add-vsock` subcommands. For removal `remove-device` is used. The REST API 190596be8229SRob Bradford has appropriate new HTTP endpoints too. 190696be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size 190796be8229SRob Bradford will be obtained from the file. A `discard_writes` option has also been added 190896be8229SRob Bradford to provide the equivalent of a read-only file. 190996be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align 191096be8229SRob Bradford with those used by `--disk`. 191196be8229SRob Bradford 191296be8229SRob Bradford### Contributors 191396be8229SRob Bradford 191496be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces. 191596be8229SRob Bradford 191696be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 191796be8229SRob Bradford* Bo Chen <chen.bo@intel.com> 191896be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com> 191996be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com> 192096be8229SRob Bradford* Dean Sheather <dean@coder.com> 192196be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com> 192296be8229SRob Bradford* Hui Zhu <teawater@antfin.com> 192396be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 192496be8229SRob Bradford* Martin Xu <martin.xu@intel.com> 192596be8229SRob Bradford* Muminul Islam <muislam@microsoft.com> 192696be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com> 192796be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 192896be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 192996be8229SRob Bradford* Sergio Lopez <slp@redhat.com> 193096be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com> 193196be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com> 193296be8229SRob Bradford 193303cb26ccSSamuel Ortiz# v0.6.0 193403cb26ccSSamuel Ortiz 193503cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 193603cb26ccSSamuel Ortiz 193703cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include: 193803cb26ccSSamuel Ortiz 193903cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug 194003cb26ccSSamuel Ortiz 194103cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest 194203cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor 194303cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`) 194403cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for 194503cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor. 194603cb26ccSSamuel Ortiz 194703cb26ccSSamuel Ortiz### Shared Filesystem Improvements 194803cb26ccSSamuel Ortiz 194903cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements. 195003cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`, 195103cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we 195203cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and 195303cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations. 195403cb26ccSSamuel Ortiz 195503cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading 195603cb26ccSSamuel Ortiz 195703cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an 195803cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now 195903cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends 196003cb26ccSSamuel Ortizinto their own, separate processes. 19615c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want 196203cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts. 196303cb26ccSSamuel Ortiz 196403cb26ccSSamuel Ortiz### Command Line Interface 196503cb26ccSSamuel Ortiz 196603cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the 196737a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only 196837a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract 196937a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor 197037a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`. The `ch-remote` binary 197137a2c13aSAlyssa Rossis created with each build and available e.g. at 197203cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build. 197303cb26ccSSamuel Ortiz 197403cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available 197503cb26ccSSamuel Ortizcommands. 197603cb26ccSSamuel Ortiz 197703cb26ccSSamuel Ortiz### PVH Boot 197803cb26ccSSamuel Ortiz 197903cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now 198003cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html). 198103cb26ccSSamuel Ortiz 198203cb26ccSSamuel Ortiz### Contributors 198303cb26ccSSamuel Ortiz 198403cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks 198503cb26ccSSamuel Ortizto them and to everyone that contributed to this release: 198603cb26ccSSamuel Ortiz 198703cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 198803cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com> 198903cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com> 199003cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com> 199103cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 199203cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com> 199303cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 199403cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com> 199503cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 199603cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 199703cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 199803cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 199903cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com> 200003cb26ccSSamuel Ortiz 200194f2fc33SRob Bradford# v0.5.1 200294f2fc33SRob Bradford 200394f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes: 200494f2fc33SRob Bradford 200594f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez 200694f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf 200794f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz 200894f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford 200994f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford 20108e8a7b6dSSamuel Ortiz 20112f395e60SSamuel Ortiz# v0.5.0 20122f395e60SSamuel Ortiz 20132f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6). 20142f395e60SSamuel Ortiz 20152f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include: 20162f395e60SSamuel Ortiz 20172f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing 20182f395e60SSamuel Ortiz 20192f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and 20202f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor 20212f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases. 20222f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot 20232f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest. 20242f395e60SSamuel Ortiz 20252f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature. 20262f395e60SSamuel Ortiz 20272f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization 20282f395e60SSamuel Ortiz 20292f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use 20302f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default 20312f395e60SSamuel Ortizparavirtualized networking and block devices throughput. 20322f395e60SSamuel Ortiz 20332f395e60SSamuel Ortiz### New Interrupt Management Framework 20342f395e60SSamuel Ortiz 20352f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt 20362f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device) 20372f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed 20382f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and 20392f395e60SSamuel Ortizvirtio ones. 20402f395e60SSamuel Ortiz 20412f395e60SSamuel Ortiz### Development Tools 20422f395e60SSamuel Ortiz 20432f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our 20442f395e60SSamuel Ortizbuild, development and testing tools. 20452f395e60SSamuel OrtizSomehow similar to the excellent 20462f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool), 204737a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh). 20482f395e60SSamuel Ortiz 20492f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test 20502f395e60SSamuel OrtizCloud Hypervisor through a containerized environment. 20512f395e60SSamuel Ortiz 20522f395e60SSamuel Ortiz### Kata Containers Integration 20532f395e60SSamuel Ortiz 20542f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration 20552f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud 20562f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is 20572f395e60SSamuel Ortizintegrated into the project's CI. 20582f395e60SSamuel Ortiz 20592f395e60SSamuel Ortiz### Contributors 20602f395e60SSamuel Ortiz 20612f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release: 20622f395e60SSamuel Ortiz 20632f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com> 20642f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 20652f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 20662f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 20672f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 20682f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 20692f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 20702f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com> 20712f395e60SSamuel Ortiz 2072cec884e8SSamuel Ortiz# v0.4.0 2073cec884e8SSamuel Ortiz 2074cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4). 2075cec884e8SSamuel Ortiz 2076cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include: 2077cec884e8SSamuel Ortiz 2078cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition 2079cec884e8SSamuel Ortiz 2080e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically 2081cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug. 2082cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs 2083cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are 208437a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md) 2085cec884e8SSamuel Ortiz 2086cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor 2087cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory. 2088cec884e8SSamuel Ortiz 2089cec884e8SSamuel Ortiz### Programmatic firmware tables generation 2090cec884e8SSamuel Ortiz 2091cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot 2092cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for 2093cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated 2094cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those 2095cec884e8SSamuel Ortiztables based on the VMM device model and topology. 2096cec884e8SSamuel Ortiz 2097cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends 2098cec884e8SSamuel Ortiz 2099cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a 2100cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based 2101cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the 2102cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the 2103cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture. 2104cec884e8SSamuel Ortiz 2105cec884e8SSamuel Ortiz### Guest pause and resume 2106cec884e8SSamuel Ortiz 21075c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for 2108cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live 2109cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause 2110cec884e8SSamuel Ortizand resume capabilities. 2111cec884e8SSamuel Ortiz 2112cec884e8SSamuel Ortiz### Userspace IOAPIC by default 2113cec884e8SSamuel Ortiz 2114cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to 2115cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on 2116cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by 2117cec884e8SSamuel Ortizdefault. 2118cec884e8SSamuel Ortiz 2119cec884e8SSamuel Ortiz### PCI BAR reprogramming 2120cec884e8SSamuel Ortiz 2121cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests 2122cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR 2123cec884e8SSamuel Ortizreprogramming. 2124cec884e8SSamuel Ortiz 2125cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization 2126cec884e8SSamuel Ortiz 2127cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project, 2128cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor). 2129cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) 2130cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux) 2131cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2132cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to 2133cec884e8SSamuel Ortiztemporarily fork. 2134cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely 2135cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers. 2136cec884e8SSamuel Ortiz 2137cec884e8SSamuel Ortiz### Contributors 2138cec884e8SSamuel Ortiz 2139cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release: 2140cec884e8SSamuel Ortiz 2141cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 2142cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com> 2143cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2144cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 2145cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 2146cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 2147cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 2148cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 2149cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com> 2150cec884e8SSamuel Ortiz 21518e8a7b6dSSamuel Ortiz# v0.3.0 21528e8a7b6dSSamuel Ortiz 21538ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3). 21548e8a7b6dSSamuel Ortiz 21558e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include: 21568e8a7b6dSSamuel Ortiz 21578e8a7b6dSSamuel Ortiz### Block device offloading 21588e8a7b6dSSamuel Ortiz 21598e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes, 21608e8a7b6dSSamuel Ortizand we added support for 21618e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends. 21628e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device 21638e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage 21648e8a7b6dSSamuel Ortizbackend. 21658e8a7b6dSSamuel Ortiz 21668e8a7b6dSSamuel Ortiz### Network device backend 21678e8a7b6dSSamuel Ortiz 21688e8a7b6dSSamuel OrtizThe previous release provided support for 21698e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we 21708e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together 21718e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the 21728e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture. 21738e8a7b6dSSamuel Ortiz 21748e8a7b6dSSamuel Ortiz### Virtual sockets 21758e8a7b6dSSamuel Ortiz 21768e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest, 21778e8a7b6dSSamuel Ortizwe added an hybrid implementation of the 21788e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address 21798e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the 21808e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md) 21818e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs. 21828e8a7b6dSSamuel Ortiz 21838e8a7b6dSSamuel Ortiz### HTTP based API 21848e8a7b6dSSamuel Ortiz 21858e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud 21868e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP 21878e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the 21888e8a7b6dSSamuel Ortiznext release cycle. 21898e8a7b6dSSamuel Ortiz 21908e8a7b6dSSamuel Ortiz### Memory mapped virtio transport 21918e8a7b6dSSamuel Ortiz 21928e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the 21938e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002) 21948e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest 21958e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation. 21968e8a7b6dSSamuel Ortiz 21978e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU 21988e8a7b6dSSamuel Ortiz 21998e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing 220037a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows 220137a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support. 22028e8a7b6dSSamuel Ortiz 22038e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor 22048e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual 22058e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be 22068e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]` 22078e8a7b6dSSamuel Ortizsetting. 22088e8a7b6dSSamuel Ortiz 22098e8a7b6dSSamuel Ortiz### Ubuntu 19.10 22108e8a7b6dSSamuel Ortiz 22118ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware), 22128e8a7b6dSSamuel Ortizwe can now support the latest 22138e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images. 22148e8a7b6dSSamuel Ortiz 22158e8a7b6dSSamuel Ortiz### Large memory guests 22168e8a7b6dSSamuel Ortiz 22178e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now 22188e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB). 22197688e6e2SSamuel Ortiz 2220d784ac29SSamuel Ortiz# v0.2.0 2221d784ac29SSamuel Ortiz 22228ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2). 2223d784ac29SSamuel Ortiz 2224d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include: 2225d784ac29SSamuel Ortiz 2226d784ac29SSamuel Ortiz### Network device offloading 2227d784ac29SSamuel Ortiz 2228d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external 2229d784ac29SSamuel Ortizprocesses, we added support for 2230d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This 2231d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device 2232d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend. 2233d784ac29SSamuel Ortiz 2234d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI 2235d784ac29SSamuel Ortiz 2236d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented 2237d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with 2238d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to 2239d784ac29SSamuel Ortizcleanly reboot and shutdown. 2240d784ac29SSamuel Ortiz 2241d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is 2242d784ac29SSamuel Ortizenabled by default. 2243d784ac29SSamuel Ortiz 2244d784ac29SSamuel Ortiz### Debug I/O port 2245d784ac29SSamuel Ortiz 2246d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest 2247d784ac29SSamuel Ortizboot times, we added support for logging guest events through the 2248d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html) 2249d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time 225037a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more 225137a2c13aSAlyssa Rossdetails. 2252d784ac29SSamuel Ortiz 2253d784ac29SSamuel Ortiz### Improved direct device assignment 2254d784ac29SSamuel Ortiz 2255d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When 2256d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads 2257d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from 2258d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from 2259d784ac29SSamuel Ortizdirectly assigned devices. 2260d784ac29SSamuel Ortiz 2261d784ac29SSamuel Ortiz### Improved shared filesystem 2262d784ac29SSamuel Ortiz 2263d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt) 2264d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system. 2265d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest 2266d784ac29SSamuel Ortizmemory footprint. 2267d784ac29SSamuel Ortiz 2268d784ac29SSamuel Ortiz### Ubuntu bionic based CI 2269d784ac29SSamuel Ortiz 22708ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2271d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to 2272d784ac29SSamuel Ortizour CI pipeline. 2273d784ac29SSamuel Ortiz 227493b77530SSamuel Ortiz# v0.1.0 227593b77530SSamuel Ortiz 22768ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1). 227793b77530SSamuel Ortiz 227893b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include: 227993b77530SSamuel Ortiz 228093b77530SSamuel Ortiz### Shared filesystem 228193b77530SSamuel Ortiz 228293b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file 228393b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem 228493b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest. 228593b77530SSamuel Ortiz 228637a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how 228737a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`. 228893b77530SSamuel Ortiz 228993b77530SSamuel Ortiz### Initial direct device assignment support 229093b77530SSamuel Ortiz 229193b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device 229293b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host 229393b77530SSamuel Ortizphysical devices into its guest. 229493b77530SSamuel Ortiz 229537a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly 229637a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests. 229793b77530SSamuel Ortiz 229893b77530SSamuel Ortiz### Userspace IOAPIC 229993b77530SSamuel Ortiz 230093b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by 230193b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC). 230293b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space, 230393b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode. 230493b77530SSamuel Ortiz 230593b77530SSamuel Ortiz### Virtual persistent memory 230693b77530SSamuel Ortiz 230793b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device 230893b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device 230993b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint. 231093b77530SSamuel Ortiz 231193b77530SSamuel Ortiz### Linux kernel bzImage 231293b77530SSamuel Ortiz 231393b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from 231493b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions 231593b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host 231693b77530SSamuel Ortizdistribution kernel image. 231793b77530SSamuel Ortiz 231893b77530SSamuel Ortiz### Console over virtio 231993b77530SSamuel Ortiz 232093b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although 232193b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot 232293b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console 232393b77530SSamuel Ortizimplementation. 232493b77530SSamuel Ortiz 232593b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console. 232693b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting 232793b77530SSamuel Ortiz`--serial tty --console off` from the command line. 232893b77530SSamuel Ortiz 232993b77530SSamuel Ortiz### Unit testing 233093b77530SSamuel Ortiz 233193b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI. 233293b77530SSamuel Ortiz 233393b77530SSamuel Ortiz### Integration tests parallelization 233493b77530SSamuel Ortiz 233593b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our 233693b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel. 2337