1*5e702dcdSBo Chen- [v37.0](#v370) 2*5e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release) 3*5e702dcdSBo Chen - [Improved VFIO Device Passthrough with Multiple PCI Segments](#improved-vfio-device-passthrough-with-multiple-pci-segments) 4*5e702dcdSBo Chen - [Configurable Named TAP Devices](#configurable-named-tap-devices) 5*5e702dcdSBo Chen - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console) 6*5e702dcdSBo Chen - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots) 7*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes) 8*5e702dcdSBo Chen - [Contributors](#contributors) 9f5899d15SBo Chen- [v36.0](#v360) 10f5899d15SBo Chen - [Command Line Changes](#command-line-changes) 11f5899d15SBo Chen - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli) 12f5899d15SBo Chen - [NUMA Support for PCI segments](#numa-support-for-pci-segments) 13f5899d15SBo Chen - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms) 14f5899d15SBo Chen - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port) 15f5899d15SBo Chen - [AIO Backend for Block Devices](#aio-backend-for-block-devices) 16f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements) 17*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-1) 18*5e702dcdSBo Chen - [Contributors](#contributors-1) 19339912a5SBo Chen- [v35.0](#v350) 20339912a5SBo Chen - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63) 21339912a5SBo Chen - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block) 22339912a5SBo Chen - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state) 23*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-2) 24*5e702dcdSBo Chen - [Contributors](#contributors-2) 25487a43cdSRob Bradford- [v34.0](#v340) 26487a43cdSRob Bradford - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support) 27487a43cdSRob Bradford - [Improvements to VM Core Dump](#improvements-to-vm-core-dump) 28487a43cdSRob Bradford - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files) 29487a43cdSRob Bradford - [Minimum Host Kernel Bump](#minimum-host-kernel-bump) 30*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-3) 31*5e702dcdSBo Chen - [Contributors](#contributors-3) 32487a43cdSRob Bradford- [v33.0](#v330) 33487a43cdSRob Bradford - [D-Bus based API](#d-bus-based-api) 34487a43cdSRob Bradford - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64) 35*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-4) 36*5e702dcdSBo Chen - [Contributors](#contributors-4) 3742ca292dSRob Bradford- [v32.0](#v320) 3842ca292dSRob Bradford - [Increased PCI Segment Limit](#increased-pci-segment-limit) 3942ca292dSRob Bradford - [API Changes](#api-changes) 40*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-5) 41*5e702dcdSBo Chen - [Contributors](#contributors-5) 4242ca292dSRob Bradford- [v31.1](#v311) 43f3522e85SMichael Zhao- [v31.0](#v310) 44f3522e85SMichael Zhao - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables) 45f3522e85SMichael Zhao - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62) 46f3522e85SMichael Zhao - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler) 47f3522e85SMichael Zhao - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile) 48f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-1) 49*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-6) 50*5e702dcdSBo Chen - [Contributors](#contributors-6) 51ece0e6faSBo Chen- [v30.0](#v300) 52ece0e6faSBo Chen - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size) 53ece0e6faSBo Chen - [Basic vfio-user Server Support](#basic-vfio-user-server-support) 54ece0e6faSBo Chen - [Heap Profiling Support](#heap-profiling-support) 55f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-2) 56*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-7) 57*5e702dcdSBo Chen - [Contributors](#contributors-7) 58ece0e6faSBo Chen- [v28.2](#v282) 5922cf8c97SRob Bradford- [v29.0](#v290) 6022cf8c97SRob Bradford - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm) 6122cf8c97SRob Bradford - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements) 6222cf8c97SRob Bradford - [Heap Allocation Improvements](#heap-allocation-improvements) 6322cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements) 6422cf8c97SRob Bradford - [`AArch64` Documentation Integration](#aarch64-documentation-integration) 6522cf8c97SRob Bradford - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement) 6622cf8c97SRob Bradford - [TCP Offload Control](#tcp-offload-control) 67*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-8) 6822cf8c97SRob Bradford - [Removals](#removals) 6922cf8c97SRob Bradford - [Deprecations](#deprecations) 70*5e702dcdSBo Chen - [Contributors](#contributors-8) 7122cf8c97SRob Bradford- [v28.1](#v281) 7266460765SRob Bradford- [v28.0](#v280) 7366460765SRob Bradford - [Community Engagement (Reminder)](#community-engagement-reminder) 74*5e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release-1) 7566460765SRob Bradford - [Virtualised TPM Support](#virtualised-tpm-support) 7666460765SRob Bradford - [Transparent Huge Page Support](#transparent-huge-page-support) 7766460765SRob Bradford - [README Quick Start Improved](#readme-quick-start-improved) 78*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-9) 7922cf8c97SRob Bradford - [Removals](#removals-1) 80*5e702dcdSBo Chen - [Contributors](#contributors-9) 812ba6a9bfSRob Bradford- [v27.0](#v270) 822ba6a9bfSRob Bradford - [Community Engagement](#community-engagement) 832ba6a9bfSRob Bradford - [Prebuilt Packages](#prebuilt-packages) 842ba6a9bfSRob Bradford - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest) 852ba6a9bfSRob Bradford - [Boot Tracing](#boot-tracing) 862ba6a9bfSRob Bradford - [Simplified Build Feature Flags](#simplified-build-feature-flags) 872ba6a9bfSRob Bradford - [Asynchronous Kernel Loading](#asynchronous-kernel-loading) 882ba6a9bfSRob Bradford - [GDB Support for AArch64](#gdb-support-for-aarch64) 89*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-10) 90f3522e85SMichael Zhao - [Deprecations](#deprecations-1) 91*5e702dcdSBo Chen - [Contributors](#contributors-10) 92f3522e85SMichael Zhao- [v26.0](#v260) 93f3522e85SMichael Zhao - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform) 94f3522e85SMichael Zhao - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support) 95*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-11) 9622cf8c97SRob Bradford - [Deprecations](#deprecations-2) 9766460765SRob Bradford - [Removals](#removals-2) 98*5e702dcdSBo Chen - [Contributors](#contributors-11) 9922cf8c97SRob Bradford- [v25.0](#v250) 10022cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements-1) 10122cf8c97SRob Bradford - [VM "Coredump" Support](#vm-coredump-support) 102*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-12) 10322cf8c97SRob Bradford - [Removals](#removals-3) 104*5e702dcdSBo Chen - [Contributors](#contributors-12) 1050150de55SSebastien Boeuf- [v24.0](#v240) 1060150de55SSebastien Boeuf - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu) 1070150de55SSebastien Boeuf - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness) 1080150de55SSebastien Boeuf - [Sparse Mmap support](#sparse-mmap-support) 1090150de55SSebastien Boeuf - [Expose Platform Serial Number](#expose-platform-serial-number) 110*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-13) 1110150de55SSebastien Boeuf - [Notable Improvements](#notable-improvements) 11222cf8c97SRob Bradford - [Deprecations](#deprecations-3) 1130150de55SSebastien Boeuf - [New on the Website](#new-on-the-website) 114*5e702dcdSBo Chen - [Contributors](#contributors-13) 1150150de55SSebastien Boeuf- [v23.1](#v231) 1160c9c56f5SRob Bradford- [v23.0](#v230) 1170c9c56f5SRob Bradford - [vDPA Support](#vdpa-support) 1180c9c56f5SRob Bradford - [Updated OS Support list](#updated-os-support-list) 1190c9c56f5SRob Bradford - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements) 1200c9c56f5SRob Bradford - [`AMX` Support](#amx-support) 121*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-14) 12222cf8c97SRob Bradford - [Deprecations](#deprecations-4) 123*5e702dcdSBo Chen - [Contributors](#contributors-14) 1240c9c56f5SRob Bradford- [v22.1](#v221) 1256aa10938SRob Bradford- [v22.0](#v220) 1266aa10938SRob Bradford - [GDB Debug Stub Support](#gdb-debug-stub-support) 1276aa10938SRob Bradford - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments) 1286aa10938SRob Bradford - [Before Boot Configuration Changes](#before-boot-configuration-changes) 1296aa10938SRob Bradford - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting) 1306aa10938SRob Bradford - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx) 1316aa10938SRob Bradford - [PMU Support for AArch64](#pmu-support-for-aarch64) 1320c9c56f5SRob Bradford - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license) 1336aa10938SRob Bradford - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd) 134*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-15) 135*5e702dcdSBo Chen - [Contributors](#contributors-15) 13695ca7997SRob Bradford- [v21.0](#v210) 13795ca7997SRob Bradford - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade) 13895ca7997SRob Bradford - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515) 139*5e702dcdSBo Chen - [Notable Bug fixes](#notable-bug-fixes-16) 140*5e702dcdSBo Chen - [Contributors](#contributors-16) 14195ca7997SRob Bradford- [v20.2](#v202) 14295ca7997SRob Bradford- [v20.1](#v201) 1437fc0776aSSebastien Boeuf- [v20.0](#v200) 1447fc0776aSSebastien Boeuf - [Multiple PCI segments support](#multiple-pci-segments-support) 1457fc0776aSSebastien Boeuf - [CPU pinning](#cpu-pinning) 1467fc0776aSSebastien Boeuf - [Improved VFIO support](#improved-vfio-support) 1477fc0776aSSebastien Boeuf - [Safer code](#safer-code) 1487fc0776aSSebastien Boeuf - [Extended documentation](#extended-documentation) 149*5e702dcdSBo Chen - [Notable bug fixes](#notable-bug-fixes-17) 150*5e702dcdSBo Chen - [Contributors](#contributors-17) 151d00eb4aaSRob Bradford- [v19.0](#v190) 152d00eb4aaSRob Bradford - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console) 153d00eb4aaSRob Bradford - [PCI boot time optimisations](#pci-boot-time-optimisations) 154d00eb4aaSRob Bradford - [Improved TDX support](#improved-tdx-support) 155d00eb4aaSRob Bradford - [Live migration enhancements](#live-migration-enhancements) 156d00eb4aaSRob Bradford - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user) 157d00eb4aaSRob Bradford - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu) 158*5e702dcdSBo Chen - [Notable bug fixes](#notable-bug-fixes-18) 159*5e702dcdSBo Chen - [Contributors](#contributors-18) 1602c4f8d22SRob Bradford- [v18.0](#v180) 1612c4f8d22SRob Bradford - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support) 1622c4f8d22SRob Bradford - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices) 1632c4f8d22SRob Bradford - [VHDX disk image support](#vhdx-disk-image-support) 1642c4f8d22SRob Bradford - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor) 1652c4f8d22SRob Bradford - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem) 1662c4f8d22SRob Bradford - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor) 1672c4f8d22SRob Bradford - [AArch64 CPU topology support](#aarch64-cpu-topology-support) 1682c4f8d22SRob Bradford - [Power button support on AArch64](#power-button-support-on-aarch64) 169*5e702dcdSBo Chen - [Notable bug fixes](#notable-bug-fixes-19) 170*5e702dcdSBo Chen - [Contributors](#contributors-19) 171e6db5999SRob Bradford- [v17.0](#v170) 172e6db5999SRob Bradford - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi) 173e6db5999SRob Bradford - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend) 174e6db5999SRob Bradford - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices) 175e6db5999SRob Bradford - [Improved SGX support](#improved-sgx-support) 176e6db5999SRob Bradford - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices) 177*5e702dcdSBo Chen - [Notable bug fixes](#notable-bug-fixes-20) 178*5e702dcdSBo Chen - [Contributors](#contributors-20) 1795ed8e01fSRob Bradford- [v16.0](#v160) 1805ed8e01fSRob Bradford - [Improved live migration support](#improved-live-migration-support) 1815ed8e01fSRob Bradford - [Improved `vhost-user` support](#improved-vhost-user-support) 1825ed8e01fSRob Bradford - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support) 183*5e702dcdSBo Chen - [Notable bug fixes](#notable-bug-fixes-21) 1845ed8e01fSRob Bradford - [Removed functionality](#removed-functionality) 185*5e702dcdSBo Chen - [Contributors](#contributors-21) 18630a01277SRob Bradford- [v15.0](#v150) 18730a01277SRob Bradford - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees) 18830a01277SRob Bradford - [Network device rate limiting](#network-device-rate-limiting) 18930a01277SRob Bradford - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload) 190f3522e85SMichael Zhao - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter) 19130a01277SRob Bradford - [Bug fixes](#bug-fixes) 19222cf8c97SRob Bradford - [Deprecations](#deprecations-5) 193*5e702dcdSBo Chen - [Contributors](#contributors-22) 19430a01277SRob Bradford- [v0.14.1](#v0141) 19540c63dcfSRob Bradford- [v0.14.0](#v0140) 19640c63dcfSRob Bradford - [Structured event monitoring](#structured-event-monitoring) 19740c63dcfSRob Bradford - [MSHV improvements](#mshv-improvements) 19840c63dcfSRob Bradford - [Improved aarch64 platform](#improved-aarch64-platform) 19940c63dcfSRob Bradford - [Updated hotplug documentation](#updated-hotplug-documentation) 20040c63dcfSRob Bradford - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console) 20140c63dcfSRob Bradford - [Block device rate limiting](#block-device-rate-limiting) 20222cf8c97SRob Bradford - [Deprecations](#deprecations-6) 203*5e702dcdSBo Chen - [Contributors](#contributors-23) 204f58b6f84SRob Bradford- [v0.13.0](#v0130) 205f58b6f84SRob Bradford - [Wider VFIO device support](#wider-vfio-device-support) 20640c63dcfSRob Bradford - [Improved huge page support](#improved-huge-page-support) 207f58b6f84SRob Bradford - [MACvTAP support](#macvtap-support) 208f58b6f84SRob Bradford - [VHD disk image support](#vhd-disk-image-support) 209f58b6f84SRob Bradford - [Improved Virtio device threading](#improved-virtio-device-threading) 210f58b6f84SRob Bradford - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button) 211*5e702dcdSBo Chen - [Contributors](#contributors-24) 212d42b5084SRob Bradford- [v0.12.0](#v0120) 213d42b5084SRob Bradford - [ARM64 enhancements](#arm64-enhancements) 214d42b5084SRob Bradford - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning) 215d42b5084SRob Bradford - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend) 216d42b5084SRob Bradford - [Enhanced "info" API](#enhanced-info-api) 217*5e702dcdSBo Chen - [Contributors](#contributors-25) 2187dcd3affSRob Bradford- [v0.11.0](#v0110) 2197dcd3affSRob Bradford - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block) 2207dcd3affSRob Bradford - [Windows Guest Support](#windows-guest-support) 2217dcd3affSRob Bradford - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation) 222d00eb4aaSRob Bradford - [`virtio-mmio` Removal](#virtio-mmio-removal) 2237dcd3affSRob Bradford - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64) 2247dcd3affSRob Bradford - [Improved Linux Boot Time](#improved-linux-boot-time) 2257dcd3affSRob Bradford - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling) 2267dcd3affSRob Bradford - [Default Log Level Changed](#default-log-level-changed) 227f3522e85SMichael Zhao - [New `--balloon` Parameter Added](#new---balloon-parameter-added) 2287dcd3affSRob Bradford - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support) 229*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-22) 230*5e702dcdSBo Chen - [Contributors](#contributors-26) 231198bd551SRob Bradford- [v0.10.0](#v0100) 232198bd551SRob Bradford - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors) 233198bd551SRob Bradford - [Memory Zones](#memory-zones) 234198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements) 235198bd551SRob Bradford - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control) 236*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-23) 237*5e702dcdSBo Chen - [Contributors](#contributors-27) 238d714cf81SRob Bradford- [v0.9.0](#v090) 239d714cf81SRob Bradford - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support) 240d714cf81SRob Bradford - [Block and Network Device Statistics](#block-and-network-device-statistics) 241d714cf81SRob Bradford - [HTTP API Responses](#http-api-responses) 242d714cf81SRob Bradford - [CPU Topology](#cpu-topology) 243d714cf81SRob Bradford - [Release Build Optimization](#release-build-optimization) 244d714cf81SRob Bradford - [Hypervisor Abstraction](#hypervisor-abstraction) 245d714cf81SRob Bradford - [Snapshot/Restore Improvements](#snapshotrestore-improvements) 246d714cf81SRob Bradford - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support) 247d714cf81SRob Bradford - [Enhancements to ARM64 Support](#enhancements-to-arm64-support) 248d714cf81SRob Bradford - [Intel SGX Support](#intel-sgx-support) 249198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1) 250*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-24) 251*5e702dcdSBo Chen - [Contributors](#contributors-28) 252d714cf81SRob Bradford- [v0.8.0](#v080) 253d714cf81SRob Bradford - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support) 254d714cf81SRob Bradford - [Experimental ARM64 Support](#experimental-arm64-support) 255d714cf81SRob Bradford - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests) 256d714cf81SRob Bradford - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices) 257d714cf81SRob Bradford - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements) 258*5e702dcdSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-25) 259d714cf81SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes) 260*5e702dcdSBo Chen - [Contributors](#contributors-29) 26196be8229SRob Bradford- [v0.7.0](#v070) 26296be8229SRob Bradford - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug) 26396be8229SRob Bradford - [Alternative `libc` Support](#alternative-libc-support) 26496be8229SRob Bradford - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends) 26596be8229SRob Bradford - [Initial RamFS Support](#initial-ramfs-support) 26696be8229SRob Bradford - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem) 26796be8229SRob Bradford - [`Seccomp` Sandboxing](#seccomp-sandboxing) 26896be8229SRob Bradford - [Updated Distribution Support](#updated-distribution-support) 26952b83969SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes-1) 270*5e702dcdSBo Chen - [Contributors](#contributors-30) 27103cb26ccSSamuel Ortiz- [v0.6.0](#v060) 27203cb26ccSSamuel Ortiz - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug) 27303cb26ccSSamuel Ortiz - [Shared Filesystem Improvements](#shared-filesystem-improvements) 27403cb26ccSSamuel Ortiz - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading) 27503cb26ccSSamuel Ortiz - [Command Line Interface](#command-line-interface) 27603cb26ccSSamuel Ortiz - [PVH Boot](#pvh-boot) 277*5e702dcdSBo Chen - [Contributors](#contributors-31) 27894f2fc33SRob Bradford- [v0.5.1](#v051) 2792f395e60SSamuel Ortiz- [v0.5.0](#v050) 28094f2fc33SRob Bradford - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing) 28194f2fc33SRob Bradford - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization) 28294f2fc33SRob Bradford - [New Interrupt Management Framework](#new-interrupt-management-framework) 28394f2fc33SRob Bradford - [Development Tools](#development-tools) 28494f2fc33SRob Bradford - [Kata Containers Integration](#kata-containers-integration) 285*5e702dcdSBo Chen - [Contributors](#contributors-32) 286cec884e8SSamuel Ortiz- [v0.4.0](#v040) 28794f2fc33SRob Bradford - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition) 28894f2fc33SRob Bradford - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation) 28994f2fc33SRob Bradford - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends) 29094f2fc33SRob Bradford - [Guest pause and resume](#guest-pause-and-resume) 29194f2fc33SRob Bradford - [Userspace IOAPIC by default](#userspace-ioapic-by-default) 29294f2fc33SRob Bradford - [PCI BAR reprogramming](#pci-bar-reprogramming) 29394f2fc33SRob Bradford - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization) 294*5e702dcdSBo Chen - [Contributors](#contributors-33) 2958e8a7b6dSSamuel Ortiz- [v0.3.0](#v030) 29694f2fc33SRob Bradford - [Block device offloading](#block-device-offloading) 29794f2fc33SRob Bradford - [Network device backend](#network-device-backend) 29894f2fc33SRob Bradford - [Virtual sockets](#virtual-sockets) 29994f2fc33SRob Bradford - [HTTP based API](#http-based-api) 30094f2fc33SRob Bradford - [Memory mapped virtio transport](#memory-mapped-virtio-transport) 30194f2fc33SRob Bradford - [Paravirtualized IOMMU](#paravirtualized-iommu) 30294f2fc33SRob Bradford - [Ubuntu 19.10](#ubuntu-1910) 30394f2fc33SRob Bradford - [Large memory guests](#large-memory-guests) 3047688e6e2SSamuel Ortiz- [v0.2.0](#v020) 30594f2fc33SRob Bradford - [Network device offloading](#network-device-offloading) 30694f2fc33SRob Bradford - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi) 30794f2fc33SRob Bradford - [Debug I/O port](#debug-io-port) 30894f2fc33SRob Bradford - [Improved direct device assignment](#improved-direct-device-assignment) 30994f2fc33SRob Bradford - [Improved shared filesystem](#improved-shared-filesystem) 31094f2fc33SRob Bradford - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci) 3117688e6e2SSamuel Ortiz- [v0.1.0](#v010) 31294f2fc33SRob Bradford - [Shared filesystem](#shared-filesystem) 31394f2fc33SRob Bradford - [Initial direct device assignment support](#initial-direct-device-assignment-support) 31494f2fc33SRob Bradford - [Userspace IOAPIC](#userspace-ioapic) 31594f2fc33SRob Bradford - [Virtual persistent memory](#virtual-persistent-memory) 31694f2fc33SRob Bradford - [Linux kernel bzImage](#linux-kernel-bzimage) 31794f2fc33SRob Bradford - [Console over virtio](#console-over-virtio) 31894f2fc33SRob Bradford - [Unit testing](#unit-testing) 31994f2fc33SRob Bradford - [Integration tests parallelization](#integration-tests-parallelization) 32094f2fc33SRob Bradford 321*5e702dcdSBo Chen# v37.0 322*5e702dcdSBo Chen 323*5e702dcdSBo ChenThis release has been tracked in our [roadmap 324*5e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 325*5e702dcdSBo Chenv37.0. The following user visible changes have been made: 326*5e702dcdSBo Chen 327*5e702dcdSBo Chen### Long Term Support (LTS) Release 328*5e702dcdSBo Chen 329*5e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made 330*5e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be 331*5e702dcdSBo Chensupported between the point releases of the LTS. 332*5e702dcdSBo Chen 333*5e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices 334*5e702dcdSBo Chen 335*5e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI 336*5e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and 337*5e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance. 338*5e702dcdSBo Chen 339*5e702dcdSBo Chen### Configurable Named TAP Devices 340*5e702dcdSBo Chen 341*5e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP 342*5e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud 343*5e702dcdSBo ChenHypervisor (e.g. not existing TAP devices). 344*5e702dcdSBo Chen 345*5e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console 346*5e702dcdSBo Chen 347*5e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as 348*5e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the 349*5e702dcdSBo Chenlegacy serial device without losing performance benefits of using 350*5e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as 351*5e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86). 352*5e702dcdSBo Chen 353*5e702dcdSBo Chen### Faster VM Restoration from Snapshots 354*5e702dcdSBo Chen 355*5e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better 356*5e702dcdSBo Chenimplementation of deserializing JSON files. 357*5e702dcdSBo Chen 358*5e702dcdSBo Chen### Notable Bug Fixes 359*5e702dcdSBo Chen 360*5e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache 361*5e702dcdSBo Chen disabled (#5930) 362*5e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956) 363*5e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967) 364*5e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025) 365*5e702dcdSBo Chen 366*5e702dcdSBo Chen### Contributors 367*5e702dcdSBo Chen 368*5e702dcdSBo ChenMany thanks to everyone who has contributed to our release: 369*5e702dcdSBo Chen 370*5e702dcdSBo Chen* Bo Chen <chen.bo@intel.com> 371*5e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com> 372*5e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com> 373*5e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com> 374*5e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com> 375*5e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com> 376*5e702dcdSBo Chen* Rui Chang <rui.chang@arm.com> 377*5e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 378*5e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 379*5e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com> 380*5e702dcdSBo Chen* Yi Wang <foxywang@tencent.com> 381*5e702dcdSBo Chen* Yong He <alexyonghe@tencent.com> 382*5e702dcdSBo Chen 383f5899d15SBo Chen# v36.0 384f5899d15SBo Chen 385f5899d15SBo ChenThis release has been tracked in our [roadmap 386f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 387f5899d15SBo Chenv36.0. The following user visible changes have been made: 388f5899d15SBo Chen 389f5899d15SBo Chen### Command Line Changes 390f5899d15SBo Chen 391f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line, 392f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax 393f5899d15SBo Chenchanges: 394f5899d15SBo Chen 395f5899d15SBo Chen* All `--option value` commands now are `--option=value`. 396f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`. 397f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`. 398f5899d15SBo Chen 399f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change. 400f5899d15SBo Chen 401f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI 402f5899d15SBo Chen 403f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor 404f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI 405f5899d15SBo Chen(`--version -v`). 406f5899d15SBo Chen 407f5899d15SBo Chen### NUMA Support for PCI segments 408f5899d15SBo Chen 409f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so 410f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA 411f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md) 412f5899d15SBo Chen 413f5899d15SBo Chen### CPU Topology Support on AMD Platforms 414f5899d15SBo Chen 415f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors. 416f5899d15SBo Chen 417f5899d15SBo Chen### Unix Socket Backend for Serial Port 418f5899d15SBo Chen 419f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing 420f5899d15SBo Chenusers to access the serial port using a Unix socket. 421f5899d15SBo Chen 422f5899d15SBo Chen### AIO Backend for Block Devices 423f5899d15SBo Chen 424f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block 425f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the 426f5899d15SBo Chenhost Operating System. 427f5899d15SBo Chen 428f5899d15SBo Chen### Documentation Improvements 429f5899d15SBo Chen 430f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data 431f5899d15SBo Chen* Various typo fixes 432f5899d15SBo Chen 433f5899d15SBo Chen### Notable Bug Fixes 434f5899d15SBo Chen 435f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845) 436f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is 437f5899d15SBo Chen enabled (#5834) 438f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893) 439f5899d15SBo Chen 440f5899d15SBo Chen### Contributors 441f5899d15SBo Chen 442f5899d15SBo ChenMany thanks to everyone who has contributed to our release: 443f5899d15SBo Chen 444f5899d15SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 445f5899d15SBo Chen* Bo Chen <chen.bo@intel.com> 446f5899d15SBo Chen* Dario Nieuwenhuis <dirbaio@dirbaio.net> 447f5899d15SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 448f5899d15SBo Chen* Jinank Jain <jinankjain@microsoft.com> 449f5899d15SBo Chen* Muminul Islam <muislam@microsoft.com> 450f5899d15SBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 451f5899d15SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 452f5899d15SBo Chen* Rob Bradford <rbradford@rivosinc.com> 453f5899d15SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 454f5899d15SBo Chen* Wei Liu <liuwe@microsoft.com> 455f5899d15SBo Chen* Yi Wang <foxywang@tencent.com> 456f5899d15SBo Chen* dom.song <dom.song@amperecomputing.com> 457f5899d15SBo Chen 458339912a5SBo Chen# v35.0 459339912a5SBo Chen 460339912a5SBo ChenThis release has been tracked in our [roadmap 461339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 462339912a5SBo Chenv35.0. The following user visible changes have been made: 463339912a5SBo Chen 464339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+ 465339912a5SBo Chen 466339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor, 467339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation 468339912a5SBo Chennow support both situations. 469339912a5SBo Chen 470339912a5SBo Chen### User Specified Serial Number for `virtio-block` 471339912a5SBo Chen 472339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to 473339912a5SBo Chenspecify a serial number for block devices which will be guest visible. 474339912a5SBo Chen 475339912a5SBo Chen### vCPU TSC Frequency Included in Migration State 476339912a5SBo Chen 477339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC 478339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping. 479339912a5SBo Chen 480339912a5SBo Chen### Notable Bug Fixes 481339912a5SBo Chen 482339912a5SBo Chen* Disallow concurrent CPU resizing (#5668) 483339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681) 484339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719) 485339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720) 486339912a5SBo Chen* Ensure probing reads are block size aligned (#5727) 487339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices 488339912a5SBo Chen (#5712, #5750, #5762, #5763) 489339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772) 490339912a5SBo Chen 491339912a5SBo Chen### Contributors 492339912a5SBo Chen 493339912a5SBo ChenMany thanks to everyone who has contributed to our release: 494339912a5SBo Chen 495339912a5SBo Chen* Alyssa Ross <hi@alyssa.is> 496339912a5SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 497339912a5SBo Chen* Bo Chen <chen.bo@intel.com> 498339912a5SBo Chen* Christian Blichmann <cblichmann@google.com> 499339912a5SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 500339912a5SBo Chen* Jinank Jain <jinankjain@microsoft.com> 501339912a5SBo Chen* Julian Stecklina <julian.stecklina@cyberus-technology.de> 502339912a5SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 503339912a5SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 504339912a5SBo Chen* Rob Bradford <rbradford@rivosinc.com> 505339912a5SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 506339912a5SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 507339912a5SBo Chen* Wei Liu <liuwe@microsoft.com> 508339912a5SBo Chen* Yi Wang <foxywang@tencent.com> 509339912a5SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 510339912a5SBo Chen 511487a43cdSRob Bradford# v34.0 512487a43cdSRob Bradford 513487a43cdSRob BradfordThis release has been tracked in our [roadmap 514487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 515487a43cdSRob Bradfordv34.0. The following user visible changes have been made: 516487a43cdSRob Bradford 517487a43cdSRob Bradford### Paravirtualised Panic Device Support 518487a43cdSRob Bradford 519487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has 520487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new 521487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526) 522487a43cdSRob Bradford 523487a43cdSRob Bradford### Improvements to VM Core Dump 524487a43cdSRob Bradford 525487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause 526487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604) 527487a43cdSRob Bradford 528487a43cdSRob Bradford### QCOW2 Support for Backing Files 529487a43cdSRob Bradford 530487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using 531487a43cdSRob Bradfordbacking files. (#5573) 532487a43cdSRob Bradford 533487a43cdSRob Bradford### Minimum Host Kernel Bump 534487a43cdSRob Bradford 535487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix 536487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626) 537487a43cdSRob Bradford 538487a43cdSRob Bradford### Notable Bug Fixes 539487a43cdSRob Bradford 540487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel 541487a43cdSRob Bradford carries out this job with KVM) (#5561). 542487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather 543487a43cdSRob Bradford than MSI-X (#5658). 544487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be 545487a43cdSRob Bradford blocked until that asynchronous event has been received (#5645). 546487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing 547487a43cdSRob Bradford when all vCPUs are paused (#5611). 548487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633). 549487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573). 550487a43cdSRob Bradford 551487a43cdSRob Bradford### Contributors 552487a43cdSRob Bradford 553487a43cdSRob BradfordMany thanks to everyone who has contributed to our release: 554487a43cdSRob Bradford 555487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is> 556487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 557487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com> 558487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com> 559487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com> 560487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com> 561487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 562487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 563487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 564487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 565487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 566487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com> 567487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com> 568487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 569487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com> 570487a43cdSRob Bradford 5716e0e6323SBo Chen# v33.0 5726e0e6323SBo Chen 5736e0e6323SBo ChenThis release has been tracked in our [roadmap 5746e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 5756e0e6323SBo Chenv33.0. The following user visible changes have been made: 5766e0e6323SBo Chen 5776e0e6323SBo Chen### D-Bus based API 5786e0e6323SBo Chen 5796e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST 5806e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be 5816e0e6323SBo Chenfound in the [API documentation](docs/api.md). 5826e0e6323SBo Chen 5836e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64 5846e0e6323SBo Chen 5856e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the 5866e0e6323SBo Chenguest on AArch64. 5876e0e6323SBo Chen 5886e0e6323SBo Chen### Notable Bug Fixes 5896e0e6323SBo Chen 5906e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453) 5916e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469) 5926e0e6323SBo Chen* Fix TDX initialization (#5454) 5936e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496) 5946e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty 5956e0e6323SBo Chen (#5506, #5524) 5966e0e6323SBo Chen* Populate APIC ID properly (#5512) 5976e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522) 5986e0e6323SBo Chen 5996e0e6323SBo Chen### Contributors 6006e0e6323SBo Chen 6016e0e6323SBo ChenMany thanks to everyone who has contributed to our release: 6026e0e6323SBo Chen 6036e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is> 6046e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 6056e0e6323SBo Chen* Bo Chen <chen.bo@intel.com> 6066e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 6076e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 6086e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com> 6096e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 6106e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com> 6116e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 6126e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 6136e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 6146e0e6323SBo Chen 61542ca292dSRob Bradford# v32.0 61642ca292dSRob Bradford 61742ca292dSRob BradfordThis release has been tracked in our [roadmap 61842ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 61942ca292dSRob Bradfordv32.0. The following user visible changes have been made: 62042ca292dSRob Bradford 62142ca292dSRob Bradford### Increased PCI Segment Limit 62242ca292dSRob Bradford 62342ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16). 62442ca292dSRob Bradford 62542ca292dSRob Bradford### API Changes 62642ca292dSRob Bradford 62742ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details. 62842ca292dSRob Bradford (#5348) 62942ca292dSRob Bradford 63042ca292dSRob Bradford### Notable Bug Fixes 63142ca292dSRob Bradford 63242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 63342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 63442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 63542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 63642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 63742ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357) 63842ca292dSRob Bradford* Fixes for TTY reset (#5414) 63942ca292dSRob Bradford* CPU topology fixes on MSHV (#5325) 64042ca292dSRob Bradford* Seccomp fixes for older distributions (#5397) 64142ca292dSRob Bradford 64242ca292dSRob Bradford### Contributors 64342ca292dSRob Bradford 64442ca292dSRob BradfordMany thanks to everyone who has contributed to our release: 64542ca292dSRob Bradford 64642ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is> 64742ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 64842ca292dSRob Bradford* Bo Chen <chen.bo@intel.com> 64942ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com> 65042ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com> 65142ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 65242ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com> 65342ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 65442ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 65542ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com> 65642ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com> 65742ca292dSRob Bradford 65842ca292dSRob Bradford# v31.1 65942ca292dSRob Bradford 66042ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed: 66142ca292dSRob Bradford 66242ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 66342ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 66442ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 66542ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 66642ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 66742ca292dSRob Bradford 668f3522e85SMichael Zhao# v31.0 669f3522e85SMichael Zhao 670f3522e85SMichael ZhaoThis release has been tracked in our [roadmap 671f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 672f3522e85SMichael Zhaov31.0. The following user visible changes have been made: 673f3522e85SMichael Zhao 674f3522e85SMichael Zhao### Update to Latest `acpi_tables` 675f3522e85SMichael Zhao 676f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables). 677f3522e85SMichael ZhaoThere has been significant API changes in the crate. 678f3522e85SMichael Zhao 679f3522e85SMichael Zhao### Update Reference Kernel to 6.2 680f3522e85SMichael Zhao 681f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2. 682f3522e85SMichael Zhao 683f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler 684f3522e85SMichael Zhao 685f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize 686f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable. 687f3522e85SMichael Zhao 688f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one 689f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console 690f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both 691f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler 692f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5. 693f3522e85SMichael Zhao 694f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file` 695f3522e85SMichael Zhao 696f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported. 697f3522e85SMichael Zhao 698f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone` 699f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for 700f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had 701f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory. 702f3522e85SMichael Zhao 703f3522e85SMichael Zhao### Documentation Improvements 704f3522e85SMichael Zhao 705f3522e85SMichael Zhao* Various improvements in API document 706f3522e85SMichael Zhao* Improvements in Doc comments 707f3522e85SMichael Zhao* Updated Slack channel information in README 708f3522e85SMichael Zhao 709f3522e85SMichael Zhao### Notable Bug Fixes 710f3522e85SMichael Zhao 711f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS 712f3522e85SMichael Zhao client. 713f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API 714f3522e85SMichael Zhao endpoint. 715f3522e85SMichael Zhao 716f3522e85SMichael Zhao### Contributors 717f3522e85SMichael Zhao 718f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release: 719f3522e85SMichael Zhao 720f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is> 721f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com> 722f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io> 723f3522e85SMichael Zhao* Dom <peng6662001@163.com> 724f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com> 725f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com> 726f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr> 727f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 728f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com> 729f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com> 730f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com> 731f3522e85SMichael Zhao* Yang <ailin.yang@intel.com> 732f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com> 733f3522e85SMichael Zhao 734ece0e6faSBo Chen# v30.0 735ece0e6faSBo Chen 736ece0e6faSBo ChenThis release has been tracked in our [roadmap 737ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 738ece0e6faSBo Chenv30.0. The following user visible changes have been made: 739ece0e6faSBo Chen 740ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size 741ece0e6faSBo Chen 742ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command 743ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There 744ece0e6faSBo Chenwere several syntax changes: 745ece0e6faSBo Chen 746ece0e6faSBo Chen* All `--option=value` commands now are `--option value`. 747ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`. 748ece0e6faSBo Chen* The `-vvv` command now is `-v -v -v` 749ece0e6faSBo Chen 750ece0e6faSBo Chen### Basic vfio-user Server Support 751ece0e6faSBo Chen 752ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support 753ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its 754ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the 755ece0e6faSBo Chen`rust-vmm` organization. 756ece0e6faSBo Chen 757ece0e6faSBo Chen### Heap Profiling Support 758ece0e6faSBo Chen 759ece0e6faSBo ChenA new building target is added for profiling purposes with examples of 760ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature. 761ece0e6faSBo Chen 762ece0e6faSBo Chen### Documentation Improvements 763ece0e6faSBo Chen 764ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building 765ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim), 766ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and 767ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also, 768ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the 769ece0e6faSBo Chenexisting 'profiling' documentation. 770ece0e6faSBo Chen 771ece0e6faSBo Chen### Notable Bug Fixes 772ece0e6faSBo Chen 773ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206) 774ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211) 775ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179) 776ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151) 777ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186) 778ece0e6faSBo Chen 779ece0e6faSBo Chen### Contributors 780ece0e6faSBo Chen 781ece0e6faSBo ChenMany thanks to everyone who has contributed to our release: 782ece0e6faSBo Chen 783ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 784ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com> 785ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com> 786ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com> 787ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com> 788ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com> 789ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com> 790ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 791ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 792ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 793ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com> 794ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 795ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com> 796ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com> 797ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com> 798ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 799ece0e6faSBo Chen 800ece0e6faSBo Chen# v28.2 801ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed: 802ece0e6faSBo Chen 803ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034) 804ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037) 805ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095) 806ece0e6faSBo Chen 80722cf8c97SRob Bradford# v29.0 80822cf8c97SRob Bradford 80922cf8c97SRob BradfordThis release has been tracked in our [roadmap 81022cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 81122cf8c97SRob Bradfordv29.0. The following user visible changes have been made: 81222cf8c97SRob Bradford 81322cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM 81422cf8c97SRob Bradford 81522cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV 81622cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use. 81722cf8c97SRob Bradford 81822cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements 81922cf8c97SRob Bradford 82022cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration 82122cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older 82222cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially 82322cf8c97SRob Bradfordsupported but has worked for some versions.) 82422cf8c97SRob Bradford 82522cf8c97SRob Bradford### Heap Allocation Improvements 82622cf8c97SRob Bradford 82722cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with 82822cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size. 82922cf8c97SRob Bradford 83022cf8c97SRob Bradford### `ch-remote` Improvements 83122cf8c97SRob Bradford 83222cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to 83322cf8c97SRob Bradford`ch-remote`. 83422cf8c97SRob Bradford 83522cf8c97SRob Bradford### `AArch64` Documentation Integration 83622cf8c97SRob Bradford 83722cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main 83822cf8c97SRob BradfordREADME. 83922cf8c97SRob Bradford 84022cf8c97SRob Bradford### `virtio-block` Counters Enhancement 84122cf8c97SRob Bradford 84222cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max 84322cf8c97SRob Bradfordlatency counters. 84422cf8c97SRob Bradford 84522cf8c97SRob Bradford### TCP Offload Control 84622cf8c97SRob Bradford 84722cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of 84822cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments 84922cf8c97SRob Bradfordwhere the hardware lacks support for the offloading. 85022cf8c97SRob Bradford 85122cf8c97SRob Bradford### Notable Bug Fixes 85222cf8c97SRob Bradford 85322cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an 85422cf8c97SRob Bradford infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 85522cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 85622cf8c97SRob Bradford (#4924, #4949) 85722cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 85822cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016) 85922cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034) 86022cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037) 86122cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095) 86222cf8c97SRob Bradford 86322cf8c97SRob Bradford### Removals 86422cf8c97SRob Bradford 86522cf8c97SRob BradfordNo functionality has been removed in this release. 86622cf8c97SRob Bradford 86722cf8c97SRob Bradford### Deprecations 86822cf8c97SRob Bradford 86922cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or 87022cf8c97SRob Bradford `MemoryConfig::file` has been deprecated. This was originally used for 87122cf8c97SRob Bradford supporting huge pages or shared memory backing which is now natively supported 87222cf8c97SRob Bradford (#5085) 87322cf8c97SRob Bradford 87422cf8c97SRob Bradford### Contributors 87522cf8c97SRob Bradford 87622cf8c97SRob BradfordMany thanks to everyone who has contributed to our release: 87722cf8c97SRob Bradford 87822cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com> 87922cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com> 88022cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com> 88122cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com> 88222cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 88322cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com> 88422cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com> 88522cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 88622cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com> 88722cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 88822cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com> 88922cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com> 89022cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com> 89122cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com> 89222cf8c97SRob Bradford 89322cf8c97SRob Bradford 89422cf8c97SRob Bradford# v28.1 89522cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed: 89622cf8c97SRob Bradford 89722cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that 89822cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 89922cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 90022cf8c97SRob Bradford (#4924, #4949) 90122cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 90222cf8c97SRob Bradford* Improve README and documentation 90322cf8c97SRob Bradford 90466460765SRob Bradford# v28.0 90566460765SRob Bradford 90666460765SRob BradfordThis release has been tracked in our new [roadmap 90766460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 90866460765SRob Bradfordv28.0. 90966460765SRob Bradford 91066460765SRob Bradford### Community Engagement (Reminder) 91166460765SRob Bradford 91266460765SRob BradfordJust a reminder that we have a new mailing list to support broader community 91366460765SRob Bradforddiscussions. Please consider 91466460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use 91566460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud 91666460765SRob BradfordHypervisor development. 91766460765SRob Bradford 91866460765SRob Bradford### Long Term Support (LTS) Release 91966460765SRob Bradford 92066460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS 92166460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18 92266460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point 92366460765SRob Bradfordreleases of the LTS. 92466460765SRob Bradford 92566460765SRob Bradford### Virtualised TPM Support 92666460765SRob Bradford 92766460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM 92866460765SRob Bradforddocumentation](docs/tpm.md). 92966460765SRob Bradford 93066460765SRob Bradford### Transparent Huge Page Support 93166460765SRob Bradford 93266460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back 93366460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`) 93466460765SRob Bradfordthen this will be used resulting in improved boot performance. 93566460765SRob Bradford 93666460765SRob Bradford### README Quick Start Improved 93766460765SRob Bradford 93866460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the 93966460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries. 94066460765SRob Bradford 94166460765SRob Bradford### Notable Bug Fixes 94266460765SRob Bradford 94366460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher 94466460765SRob Bradford memory consumption (#4835) 94566460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799) 94666460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767) 94766460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863) 94866460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811) 94966460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on 95066460765SRob Bradford newer Linux kernels (#4744) 95166460765SRob Bradford* Error on reboot from race to close TAP devices (#4871) 95266460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888) 95366460765SRob Bradford 95466460765SRob Bradford### Removals 95566460765SRob Bradford 95666460765SRob BradfordThe following functionality has been removed: 95766460765SRob Bradford 95866460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511) 95966460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926) 96066460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737) 96166460765SRob Bradford 96266460765SRob Bradford### Contributors 96366460765SRob Bradford 96466460765SRob BradfordMany thanks to everyone who has contributed to our release: 96566460765SRob Bradford 96666460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 96766460765SRob Bradford* Bo Chen <chen.bo@intel.com> 96866460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 96966460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 97066460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 97166460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com> 97266460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn> 97366460765SRob Bradford* Michael Zhao <michael.zhao@arm.com> 97466460765SRob Bradford* Muminul Islam <muislam@microsoft.com> 97566460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 97666460765SRob Bradford* Rob Bradford <robert.bradford@intel.com> 97766460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 97866460765SRob Bradford* Wei Liu <liuwe@microsoft.com> 97966460765SRob Bradford 9802ba6a9bfSRob Bradford# v27.0 9812ba6a9bfSRob Bradford 9822ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap 9832ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 9842ba6a9bfSRob Bradfordv27.0. 9852ba6a9bfSRob Bradford 9862ba6a9bfSRob Bradford### Community Engagement 9872ba6a9bfSRob Bradford 9882ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions. 9892ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an 9902ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly. 9912ba6a9bfSRob Bradford 9922ba6a9bfSRob Bradford### Prebuilt Packages 9932ba6a9bfSRob Bradford 9942ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this 9952ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md) 9962ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different 9972ba6a9bfSRob Bradfordfirmware options available. 9982ba6a9bfSRob Bradford 9992ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest 10002ba6a9bfSRob Bradford 10012ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed 10022ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is 10032ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for 10042ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend 10052ba6a9bfSRob Bradford(#4658, #4676.) 10062ba6a9bfSRob Bradford 10072ba6a9bfSRob Bradford### Boot Tracing 10082ba6a9bfSRob Bradford 10092ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added 10102ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.) 10112ba6a9bfSRob Bradford 10122ba6a9bfSRob Bradford### Simplified Build Feature Flags 10132ba6a9bfSRob Bradford 10142ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified: 10152ba6a9bfSRob Bradford 10162ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors 10172ba6a9bfSRob Bradford (with `kvm` enabled by default), 10182ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support 10192ba6a9bfSRob Bradford now it is now possible to compile with the `mshv` feature (#4696,) 10202ba6a9bfSRob Bradford* `tracing` adds support for boot tracing, 10212ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb` 10222ba6a9bfSRob Bradford feature) and dumping guest memory. 10232ba6a9bfSRob Bradford 10242ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by 10252ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.) 10262ba6a9bfSRob Bradford 10272ba6a9bfSRob Bradford### Asynchronous Kernel Loading 10282ba6a9bfSRob Bradford 10292ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like 10302ba6a9bfSRob Bradfordx86-64. (#4538) 10312ba6a9bfSRob Bradford 10322ba6a9bfSRob Bradford### GDB Support for AArch64 10332ba6a9bfSRob Bradford 10342ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now 10352ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64. 10362ba6a9bfSRob Bradford 10372ba6a9bfSRob Bradford### Notable Bug Fixes 10382ba6a9bfSRob Bradford 10392ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue 10402ba6a9bfSRob Bradford where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.) 10412ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices 10422ba6a9bfSRob Bradford (#4520, #4533, #4535.) 10432ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697) 10442ba6a9bfSRob Bradford 10452ba6a9bfSRob Bradford### Deprecations 10462ba6a9bfSRob Bradford 10472ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should 10482ba6a9bfSRob Bradfordplan to use alternatives. 10492ba6a9bfSRob Bradford 10502ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated. 10512ba6a9bfSRob Bradford All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware) 10522ba6a9bfSRob Bradford support booting with PVH so support for loading firmware in a legacy mode is no 10532ba6a9bfSRob Bradford longer needed. This functionality will be removed in the next release. 10542ba6a9bfSRob Bradford 10552ba6a9bfSRob Bradford### Contributors 10562ba6a9bfSRob Bradford 10572ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release: 10582ba6a9bfSRob Bradford 10592ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 10602ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com> 10612ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com> 10622ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 10632ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de> 10642ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com> 10652ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 10662ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com> 10672ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 10682ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com> 10692ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com> 10702ba6a9bfSRob Bradford 1071ed9e54d6SRob Bradford# v26.0 1072ed9e54d6SRob Bradford 1073ed9e54d6SRob BradfordThis release has been tracked through the [v26.0 1074ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30). 1075ed9e54d6SRob Bradford 1076ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform` 1077ed9e54d6SRob Bradford 1078ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying 1079ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest) 1080ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.) 1081ed9e54d6SRob Bradford 1082ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support 1083ed9e54d6SRob Bradford 1084ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same 1085ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime. 1086ed9e54d6SRob Bradford 1087ed9e54d6SRob Bradford### Notable Bug Fixes 1088ed9e54d6SRob Bradford 1089ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454) 10907bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered 1091ed9e54d6SRob Bradford out (#4456) 1092ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363) 1093ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted 1094ed9e54d6SRob Bradford (#4269, #4293) 1095ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362) 1096ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing 1097ed9e54d6SRob Bradford the`virtio-fs` driver in OVMF to be used (#4341, #4314) 1098ed9e54d6SRob Bradford* VHDX file format header fix (#4291) 1099ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463) 1100ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442) 1101ed9e54d6SRob Bradford 1102ed9e54d6SRob Bradford### Deprecations 1103ed9e54d6SRob Bradford 1104ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should 1105ed9e54d6SRob Bradfordplan to use alternatives. 1106ed9e54d6SRob Bradford 1107ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been 1108ed9e54d6SRob Bradford moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document 1109ed9e54d6SRob Bradford has been updated to reflect the change and the old API members continue to 1110ed9e54d6SRob Bradford function and are mapped to the new version. The expectation is that these old 1111ed9e54d6SRob Bradford versions will be removed in the v28.0 release. 1112ed9e54d6SRob Bradford 1113ed9e54d6SRob Bradford### Removals 1114ed9e54d6SRob Bradford 1115ed9e54d6SRob BradfordThe following functionality has been removed: 1116ed9e54d6SRob Bradford 1117ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and 1118ed9e54d6SRob Bradford equivalent. This was residual from the the removal of the `vhost-user-block` 1119ed9e54d6SRob Bradford spawning feature (#4402.) 1120ed9e54d6SRob Bradford 1121ed9e54d6SRob Bradford### Contributors 1122ed9e54d6SRob Bradford 1123ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release: 1124ed9e54d6SRob Bradford 1125ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is> 1126ed9e54d6SRob Bradford* Anatol Belski <ab@php.net> 1127ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com> 1128ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com> 1129ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 1130ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com> 1131ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1132ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1133ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1134ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com> 1135ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com> 1136ed9e54d6SRob Bradford 1137b132cd21SRob Bradford# v25.0 1138b132cd21SRob Bradford 1139b132cd21SRob BradfordThis release has been tracked through the [v25.0 1140b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29). 1141b132cd21SRob Bradford 1142b132cd21SRob Bradford### `ch-remote` Improvements 1143b132cd21SRob Bradford 1144b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON 1145b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM. 1146b132cd21SRob Bradford 1147b132cd21SRob Bradford### VM "Coredump" Support 1148b132cd21SRob Bradford 1149b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory 1150b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012) 1151b132cd21SRob Bradford 1152b132cd21SRob Bradford### Notable Bug Fixes 1153b132cd21SRob Bradford 1154b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248) 1155b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244) 1156b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279) 1157b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286) 1158b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux 1159b132cd21SRob Bradford 5.16 (#4156) 1160b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer 1161b132cd21SRob Bradford Linux guest 1162b132cd21SRob Bradford 1163b132cd21SRob Bradford### Removals 1164b132cd21SRob Bradford 1165b132cd21SRob BradfordThe following functionality has been removed: 1166b132cd21SRob Bradford 1167b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed 1168b132cd21SRob Bradford (#3968) 1169b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889) 1170b132cd21SRob Bradford 1171b132cd21SRob Bradford### Contributors 1172b132cd21SRob Bradford 1173b132cd21SRob BradfordMany thanks to everyone who has contributed to our release: 1174b132cd21SRob Bradford 1175b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com> 1176b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 1177b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1178b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1179b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1180b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com> 1181b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 1182b132cd21SRob Bradford 11830150de55SSebastien Boeuf# v24.0 11840150de55SSebastien Boeuf 11850150de55SSebastien BoeufThis release has been tracked through the [v24.0 11860150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28). 11870150de55SSebastien Boeuf 11880150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu` 11890150de55SSebastien Boeuf 11900150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default 11910150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with 11920150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access 11930150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM 11940150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing 11950150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU. 11960150de55SSebastien Boeuf 11970150de55SSebastien Boeuf### Ensure Identifiers Uniqueness 11980150de55SSebastien Boeuf 11990150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical 12000150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot 12010150de55SSebastien Boeufor whenever a device was hot plugged into the VM. 12020150de55SSebastien Boeuf 12030150de55SSebastien Boeuf### Sparse Mmap support 12040150de55SSebastien Boeuf 12050150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This 12060150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped. 12070150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the 12080150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly 12090150de55SSebastien Boeufimpacts the performance related to this device. 12100150de55SSebastien Boeuf 12110150de55SSebastien Boeuf### Expose Platform Serial Number 12120150de55SSebastien Boeuf 12130150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to 12140150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the 12150150de55SSebastien Boeufguest through the SMBIOS. 12160150de55SSebastien Boeuf 12170150de55SSebastien Boeuf### Notable Bug Fixes 12180150de55SSebastien Boeuf 12190150de55SSebastien Boeuf* Fix loading RAW firmware (#4072) 12200150de55SSebastien Boeuf* Reject compressed QCOW images (#4055) 12210150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003) 12220150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069) 12230150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983) 12240150de55SSebastien Boeuf 12250150de55SSebastien Boeuf### Notable Improvements 12260150de55SSebastien Boeuf 12270150de55SSebastien Boeuf* Refactor interrupt handling (#4083) 12280150de55SSebastien Boeuf* Load kernel asynchronously (#4022) 12290150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013) 12300150de55SSebastien Boeuf 12310150de55SSebastien Boeuf### Deprecations 12320150de55SSebastien Boeuf 12330150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should 12340150de55SSebastien Boeufplan to use alternatives 12350150de55SSebastien Boeuf 12360150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated 12370150de55SSebastien Boeuf (#3968) 12380150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 12390150de55SSebastien Boeuf 12400150de55SSebastien Boeuf### New on the Website 12410150de55SSebastien Boeuf 12420150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual 12430150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine) 12440150de55SSebastien Boeufhas been added to the Cloud Hypervisor website. 12450150de55SSebastien Boeuf 12460150de55SSebastien Boeuf### Contributors 12470150de55SSebastien Boeuf 12480150de55SSebastien BoeufMany thanks to everyone who has contributed to our release: 12490150de55SSebastien Boeuf 12500150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com> 12510150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com> 12520150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 12530150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io> 12540150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com> 12550150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 12560150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 12570150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com> 12580150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com> 12590150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 12600150de55SSebastien Boeuf 12610150de55SSebastien Boeuf# v23.1 12620150de55SSebastien Boeuf 12630150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed: 12640150de55SSebastien Boeuf 12650150de55SSebastien Boeuf* Add some missing seccomp rules 12660150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal 12670150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026) 12680150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device 12690150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs 12700150de55SSebastien Boeuf 12710c9c56f5SRob Bradford# v23.0 12720c9c56f5SRob Bradford 12730c9c56f5SRob BradfordThis release has been tracked through the [v23.0 12740c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27). 12750c9c56f5SRob Bradford 12760c9c56f5SRob Bradford### vDPA Support 12770c9c56f5SRob Bradford 12780c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but 12790c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API 12800c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor. 12810c9c56f5SRob Bradford 12820c9c56f5SRob Bradford### Updated OS Support list 12830c9c56f5SRob Bradford 12840c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to 12850c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed. 12860c9c56f5SRob Bradford 12870c9c56f5SRob Bradford### `AArch64` Memory Map Improvements 12880c9c56f5SRob Bradford 12890c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of 12900c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its 12910c9c56f5SRob Bradfordallocated RAM. (#3938) 12920c9c56f5SRob Bradford 12930c9c56f5SRob Bradford### `AMX` Support 12940c9c56f5SRob Bradford 12950c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the 12960c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime 12970c9c56f5SRob Bradfordenabling with `--cpu features=amx`. 12980c9c56f5SRob Bradford 12990c9c56f5SRob Bradford### Notable Bug Fixes 13000c9c56f5SRob Bradford 13010c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887) 13020c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914) 13030c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with 13040c9c56f5SRob Bradford `virtio-mem` (#3883) 13050c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the 13060c9c56f5SRob Bradford vIOMMU (#3870) 13070c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access 13080c9c56f5SRob Bradford (#3848) 13090c9c56f5SRob Bradford 13100c9c56f5SRob Bradford### Deprecations 13110c9c56f5SRob Bradford 13120c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should 13130c9c56f5SRob Bradfordplan to use alternatives 13140c9c56f5SRob Bradford 13150c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated 13160c9c56f5SRob Bradford (#3968) 13170c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 13180c9c56f5SRob Bradford 13190c9c56f5SRob Bradford### Contributors 13200c9c56f5SRob Bradford 13210c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release: 13220c9c56f5SRob Bradford 13230c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com> 13240c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 13250c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com> 13260c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 13270c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io> 13280c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com> 13290c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com> 13300c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 13310c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com> 13320c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com> 13330c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 13340c9c56f5SRob Bradford 13350c9c56f5SRob Bradford# v22.1 13360c9c56f5SRob Bradford 13370c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed: 13380c9c56f5SRob Bradford 13390c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827) 13400c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829) 13410c9c56f5SRob Bradford 13426aa10938SRob Bradford# v22.0 13436aa10938SRob Bradford 13440c9c56f5SRob BradfordThis release has been tracked through the [v22.0 13450c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25). 13466aa10938SRob Bradford 13476aa10938SRob Bradford### GDB Debug Stub Support 13486aa10938SRob Bradford 13496aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled 13506aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in 13516aa10938SRob Bradfordthe [gdb 13526aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md). 13536aa10938SRob Bradford 13546aa10938SRob Bradford### `virtio-iommu` Backed Segments 13556aa10938SRob Bradford 13566aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g. 13576aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that 13586aa10938SRob Bradfordwill place all the specified segments behind the IOMMU. 13596aa10938SRob Bradford 13606aa10938SRob Bradford### Before Boot Configuration Changes 13616aa10938SRob Bradford 13626aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices, 13636aa10938SRob Bradfordresize) before the VM is booted. 13646aa10938SRob Bradford 13656aa10938SRob Bradford### `virtio-balloon` Free Page Reporting 13666aa10938SRob Bradford 13676aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages 13686aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that 13696aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved 13706aa10938SRob Bradfordmemory density. 13716aa10938SRob Bradford 13726aa10938SRob Bradford### Support for Direct Kernel Booting with TDX 13736aa10938SRob Bradford 13746aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to 13756aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX 13766aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim) 13776aa10938SRob Bradfordhas been updated for this usage. 13786aa10938SRob Bradford 13796aa10938SRob Bradford### PMU Support for AArch64 13806aa10938SRob Bradford 13816aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be 13826aa10938SRob Bradfordexposed automatically if available from the host. 13836aa10938SRob Bradford 13840c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License 13856aa10938SRob Bradford 13866aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0 13876aa10938SRob BradfordInternational" license which is aligned with the project charter under the 13886aa10938SRob BradfordLinux Foundation. 13896aa10938SRob Bradford 13906aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd` 13916aa10938SRob Bradford 13926aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) 13936aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic" 13946aa10938SRob Bradfordversion. 13956aa10938SRob Bradford 13966aa10938SRob Bradford### Notable Bug Fixes 13976aa10938SRob Bradford 13986aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785) 13996aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689) 14006aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677) 14016aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607) 14026aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578) 14036aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609) 14046aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720) 14056aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737) 14066aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733) 14076aa10938SRob Bradford 14086aa10938SRob Bradford### Contributors 14096aa10938SRob Bradford 14106aa10938SRob BradfordMany thanks to everyone who has contributed to our release: 14116aa10938SRob Bradford 14126aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com> 14136aa10938SRob Bradford* Barret Rhoden <brho@google.com> 14146aa10938SRob Bradford* Bo Chen <chen.bo@intel.com> 14156aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 14166aa10938SRob Bradford* Feng Ye <yefeng@smartx.com> 14176aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com> 14186aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 14196aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 14206aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com> 14216aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com> 14226aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 14236aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com> 14246aa10938SRob Bradford 142595ca7997SRob Bradford# v21.0 142695ca7997SRob Bradford 142795ca7997SRob BradfordThis release has been tracked through the [v21.0 142895ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24). 142995ca7997SRob Bradford 143095ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade) 143195ca7997SRob Bradford 14326aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been 14336aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to 14346aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote 14356aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the 14366aa10938SRob Bradfordorder of 50ms vs 3s. (#3566) 143795ca7997SRob Bradford 143895ca7997SRob Bradford### Recommended Kernel is Now 5.15 143995ca7997SRob Bradford 14406aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel 14416aa10938SRob Bradfordis now 5.15. (#3530) 144295ca7997SRob Bradford 144395ca7997SRob Bradford### Notable Bug fixes 144495ca7997SRob Bradford 14457bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562) 144695ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585) 144795ca7997SRob Bradford* Support live migration within firmware (#3586) 14487bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548) 144995ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587) 145095ca7997SRob Bradford 145195ca7997SRob Bradford### Contributors 145295ca7997SRob Bradford 145395ca7997SRob BradfordMany thanks to everyone who has contributed to our release: 145495ca7997SRob Bradford 145595ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 145695ca7997SRob Bradford* Barret Rhoden <brho@google.com> 145795ca7997SRob Bradford* Bo Chen <chen.bo@intel.com> 145895ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 145995ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com> 146095ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn> 146195ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com> 146295ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com> 146395ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com> 146495ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com> 146595ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 146695ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com> 146795ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com> 146895ca7997SRob Bradford 146995ca7997SRob Bradford# v20.2 147095ca7997SRob Bradford 147195ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 147295ca7997SRob Bradford 147395ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize) 147495ca7997SRob Bradford when this fails due to older kernel (#3456) 147595ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused 147695ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised 147795ca7997SRob Bradford (#3496) 147895ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497) 147995ca7997SRob Bradford 148095ca7997SRob Bradford# v20.1 148195ca7997SRob Bradford 148295ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 148395ca7997SRob Bradford 148495ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450) 148595ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401) 148695ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432) 148795ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM 148895ca7997SRob Bradford* Correctly update the `DeviceTree` on restore 148995ca7997SRob Bradford 14907fc0776aSSebastien Boeuf# v20.0 14917fc0776aSSebastien Boeuf 14927fc0776aSSebastien BoeufThis release has been tracked through the [v20.0 14937fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23). 14947fc0776aSSebastien Boeuf 14957fc0776aSSebastien Boeuf### Multiple PCI segments support 14967fc0776aSSebastien Boeuf 14977fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and 14987fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments, 14997fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496. 15007fc0776aSSebastien Boeuf 15017fc0776aSSebastien Boeuf### CPU pinning 15027fc0776aSSebastien Boeuf 15037fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is 15047fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and 15057fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node. 15067fc0776aSSebastien Boeuf 15077fc0776aSSebastien Boeuf### Improved VFIO support 15087fc0776aSSebastien Boeuf 15097fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting 15107fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of 15117fc0776aSSebastien Boeufthe passthrough device. 15127fc0776aSSebastien Boeuf 15137fc0776aSSebastien Boeuf### Safer code 15147fc0776aSSebastien Boeuf 15157fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe 15167fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining 15177fc0776aSSebastien Boeufunsafe sections are safe to use. 15187fc0776aSSebastien Boeuf 15197fc0776aSSebastien Boeuf### Extended documentation 15207fc0776aSSebastien Boeuf 15217fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have 15227fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run 15237fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX. 15247fc0776aSSebastien Boeuf 15257fc0776aSSebastien Boeuf### Notable bug fixes 15267fc0776aSSebastien Boeuf 15277fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244) 15287fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338) 15297fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344) 15307fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393) 15317fc0776aSSebastien Boeuf 15327fc0776aSSebastien Boeuf### Contributors 15337fc0776aSSebastien Boeuf 15347fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release: 15357fc0776aSSebastien Boeuf 15367fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is> 15377fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com> 15387fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 15397fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com> 15407fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com> 15417fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 15427fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 15437fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 15447fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com> 15457fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com> 15467fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com> 15477fc0776aSSebastien Boeuf 1548d00eb4aaSRob Bradford# v19.0 1549d00eb4aaSRob Bradford 1550d00eb4aaSRob BradfordThis release has been tracked through the [v19.0 1551d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22). 1552d00eb4aaSRob Bradford 1553d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console` 1554d00eb4aaSRob Bradford 1555d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the 1556d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in 1557d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized. 1558d00eb4aaSRob Bradford 1559d00eb4aaSRob Bradford### PCI boot time optimisations 1560d00eb4aaSRob Bradford 1561d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in 1562d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest. 1563d00eb4aaSRob Bradford 1564d00eb4aaSRob Bradford### Improved TDX support 1565d00eb4aaSRob Bradford 1566d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now 1567d00eb4aaSRob Bradfordexposed via the firmware to the guest. 1568d00eb4aaSRob Bradford 1569d00eb4aaSRob Bradford### Live migration enhancements 1570d00eb4aaSRob Bradford 1571d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem` 1572d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live 1573d00eb4aaSRob Bradfordmigration. 1574d00eb4aaSRob Bradford 1575d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user` 1576d00eb4aaSRob Bradford 1577d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with 1578d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug. 1579d00eb4aaSRob Bradford 1580d00eb4aaSRob Bradford### AArch64 for `virtio-iommu` 1581d00eb4aaSRob Bradford 1582d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform. 1583d00eb4aaSRob Bradford 1584d00eb4aaSRob Bradford### Notable bug fixes 1585d00eb4aaSRob Bradford 1586d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or 1587d00eb4aaSRob Bradford snapshot/restore (#3165) 1588d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO 1589d00eb4aaSRob Bradford (#3078 #3113) 1590d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in 1591d00eb4aaSRob Bradford the underlying crate (#3157) 1592d00eb4aaSRob Bradford 1593d00eb4aaSRob Bradford### Contributors 1594d00eb4aaSRob Bradford 1595d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release: 1596d00eb4aaSRob Bradford 1597d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is> 1598d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com> 1599d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com> 1600d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com> 1601d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1602d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com> 1603d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com> 1604d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com> 1605d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com> 1606d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1607d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com> 1608d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com> 1609d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1610d00eb4aaSRob Bradford 16112c4f8d22SRob Bradford# v18.0 16122c4f8d22SRob Bradford 16132c4f8d22SRob BradfordThis release has been tracked through the [v18.0 16142c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21). 16152c4f8d22SRob Bradford 16162c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support 16172c4f8d22SRob Bradford 16182c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user` 16192c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller 16202c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line. 16212c4f8d22SRob Bradford 16222c4f8d22SRob Bradford### Migration support for `vhost-user` devices 16232c4f8d22SRob Bradford 16242c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live 16252c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly 16262c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this. 16272c4f8d22SRob Bradford 16282c4f8d22SRob Bradford### VHDX disk image support 16292c4f8d22SRob Bradford 16302c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor. 16312c4f8d22SRob Bradford 16322c4f8d22SRob Bradford### Device pass through on MSHV hypervisor 16332c4f8d22SRob Bradford 16342c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from 16352c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`) 16362c4f8d22SRob Bradford 16372c4f8d22SRob Bradford### AArch64 for support `virtio-mem` 16382c4f8d22SRob Bradford 16392c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64. 16402c4f8d22SRob Bradford 16412c4f8d22SRob Bradford### Live migration on MSHV hypervisor 16422c4f8d22SRob Bradford 16432c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including 16442c4f8d22SRob Bradfordefficient tracking of dirty pages. 16452c4f8d22SRob Bradford 16462c4f8d22SRob Bradford### AArch64 CPU topology support 16472c4f8d22SRob Bradford 16482c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be 16492c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device 16502c4f8d22SRob Bradfordtree. 16512c4f8d22SRob Bradford 16522c4f8d22SRob Bradford### Power button support on AArch64 16532c4f8d22SRob Bradford 16542c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`) 16552c4f8d22SRob Bradfordis now supported when running on AArch64. 16562c4f8d22SRob Bradford 16572c4f8d22SRob Bradford### Notable bug fixes 16582c4f8d22SRob Bradford 16592c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012) 16602c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005) 16612c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004) 16622c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049) 16632c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069) 16642c4f8d22SRob Bradford 16652c4f8d22SRob Bradford### Contributors 16662c4f8d22SRob Bradford 16672c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release: 16682c4f8d22SRob Bradford 16692c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is> 16702c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 16712c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com> 16722c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com> 16732c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu> 16742c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com> 16752c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 16762c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com> 16772c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de> 16782c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com> 16792c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com> 16802c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 16812c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com> 16822c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1683e6db5999SRob Bradford 1684e6db5999SRob Bradford# v17.0 1685e6db5999SRob Bradford 1686e6db5999SRob BradfordThis release has been tracked through the [v17.0 1687e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20). 1688e6db5999SRob Bradford 1689e6db5999SRob Bradford### ARM64 NUMA support using ACPI 1690e6db5999SRob Bradford 1691e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for 1692e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options. 1693e6db5999SRob Bradford 1694e6db5999SRob Bradford### `Seccomp` support for MSHV backend 1695e6db5999SRob Bradford 1696e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV 1697e6db5999SRob Bradfordhypervisor backend. 1698e6db5999SRob Bradford 1699e6db5999SRob Bradford### Hotplug of `macvtap` devices 1700e6db5999SRob Bradford 1701e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the 1702e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote` 1703e6db5999SRob Bradfordtool supports this functionality when adding a network device. 1704e6db5999SRob Bradford 1705e6db5999SRob Bradford### Improved SGX support 1706e6db5999SRob Bradford 1707e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and 1708e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes. 1709e6db5999SRob Bradford 1710e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices 1711e6db5999SRob Bradford 1712e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the 1713e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection. 1714e6db5999SRob Bradford 1715e6db5999SRob Bradford### Notable bug fixes 1716e6db5999SRob Bradford 1717e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821). 1718e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the 1719e6db5999SRob Bradford `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM 1720e6db5999SRob Bradford(#2833). 1721e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763). 1722e6db5999SRob Bradford 1723e6db5999SRob Bradford### Contributors 1724e6db5999SRob Bradford 1725e6db5999SRob BradfordMany thanks to everyone who has contributed to our release: 1726e6db5999SRob Bradford 1727e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 1728e6db5999SRob Bradford* Arafatms <arafatms@outlook.com> 1729e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com> 1730e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com> 1731e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com> 1732e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 1733e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1734e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com> 1735e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1736e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com> 1737e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1738e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1739e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com> 1740e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com> 1741e6db5999SRob Bradford 17425ed8e01fSRob Bradford# v16.0 17435ed8e01fSRob Bradford 17445ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19). 17455ed8e01fSRob Bradford 17465ed8e01fSRob Bradford### Improved live migration support 17475ed8e01fSRob Bradford 17485ed8e01fSRob 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. 17495ed8e01fSRob Bradford 17505ed8e01fSRob Bradford### Improved `vhost-user` support 17515ed8e01fSRob Bradford 17525ed8e01fSRob 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. 17535ed8e01fSRob Bradford 17545ed8e01fSRob Bradford### ARM64 ACPI and UEFI support 17555ed8e01fSRob Bradford 17565ed8e01fSRob 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. 17575ed8e01fSRob Bradford 17585ed8e01fSRob Bradford### Notable bug fixes 17595ed8e01fSRob Bradford 17605ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578). 17615ed8e01fSRob 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). 17625ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore. 17635ed8e01fSRob Bradford 17645ed8e01fSRob Bradford### Removed functionality 17655ed8e01fSRob Bradford 17665ed8e01fSRob BradfordThe following formerly deprecated features have been removed: 17675ed8e01fSRob Bradford 17685ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 17695ed8e01fSRob Bradford binaries has been deprecated. When using direct boot users should configure 17705ed8e01fSRob Bradford their kernel with `CONFIG_PVH=y`. 17715ed8e01fSRob Bradford 17725ed8e01fSRob Bradford### Contributors 17735ed8e01fSRob Bradford 17745ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 17755ed8e01fSRob Bradford 17765ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 17775ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com> 17785ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn> 17795ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com> 17805ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 17815ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 17825ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com> 17835ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 17845ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com> 17855ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn> 17865ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com> 17875ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 17885ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com> 17895ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 17905ed8e01fSRob Bradford 179130a01277SRob Bradford# v15.0 179230a01277SRob Bradford 179330a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18). 179430a01277SRob Bradford 179530a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include: 179630a01277SRob Bradford 179730a01277SRob Bradford### Version numbering and stability guarantees 179830a01277SRob Bradford 179930a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that 180030a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability. 180130a01277SRob BradfordWith this new release we are beginning our new stability guarantees: 180230a01277SRob Bradford 180330a01277SRob Bradford* The API (including command line options) will not be removed or changed in a 180430a01277SRob Bradford breaking way without a minimum of 2 releases notice. Where possible warnings 180530a01277SRob Bradford will be given about the use of deprecated functionality and the deprecations 180630a01277SRob Bradford will be documented in the release notes. 180730a01277SRob Bradford* Point releases will be made between individual releases where there are 180830a01277SRob Bradford substantial bug fixes or security issues that need to be fixed. 180930a01277SRob Bradford 181030a01277SRob BradfordCurrently the following items are **not** guaranteed across updates: 181130a01277SRob Bradford 181230a01277SRob Bradford* Snapshot/restore is not supported across different versions 181330a01277SRob Bradford* Live migration is not supported across different versions 181430a01277SRob Bradford* The following features are considered experimental and may change 181530a01277SRob Bradford substantially between releases: TDX, SGX. 181630a01277SRob Bradford 181730a01277SRob Bradford### Network device rate limiting 181830a01277SRob Bradford 181930a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network 182030a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the 182130a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 182230a01277SRob Bradford 182330a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload 182430a01277SRob Bradford 182530a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net` 182630a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the 182730a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings 182830a01277SRob Bradfordeven if they are not advertised as configurable (#2528). 182930a01277SRob Bradford 183030a01277SRob Bradford### `--api-socket` supports file descriptor parameter 183130a01277SRob Bradford 183230a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file 183330a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to 183430a01277SRob Bradfordprogrammatically control Cloud Hypervisor. 183530a01277SRob Bradford 183630a01277SRob Bradford### Bug fixes 183730a01277SRob Bradford 183830a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that 183930a01277SRob Bradford results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277). 184030a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to 184130a01277SRob Bradford reprogram them (#1797,#1798) 184230a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer 184330a01277SRob Bradford exhaustion on the host) (#2517) 184430a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that 184530a01277SRob Bradford prevents snapshot & restore working (#2535) 184630a01277SRob Bradford 184730a01277SRob Bradford### Deprecations 184830a01277SRob Bradford 184930a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 185030a01277SRob Bradford 185130a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 185230a01277SRob Bradford binaries has been deprecated. When using direct boot users should configure 185330a01277SRob Bradford their kernel with `CONFIG_PVH=y`. Will be removed in v16.0. 185430a01277SRob Bradford 185530a01277SRob Bradford### Contributors 185630a01277SRob Bradford 185730a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 185830a01277SRob Bradford 185930a01277SRob Bradford* Alyssa Ross <hi@alyssa.is> 186030a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 186130a01277SRob Bradford* Bo Chen <chen.bo@intel.com> 186230a01277SRob Bradford* Gaelan Steele <gbs@canishe.com> 186330a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 186430a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com> 186530a01277SRob Bradford* Muminul Islam <muislam@microsoft.com> 186630a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com> 186730a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 186830a01277SRob Bradford* Wei Liu <liuwe@microsoft.com> 186930a01277SRob Bradford* William Douglas <william.douglas@intel.com> 187030a01277SRob Bradford 187130a01277SRob Bradford# v0.14.1 187230a01277SRob Bradford 187330a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed 187430a01277SRob Bradfordin this release: 187530a01277SRob Bradford 187630a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and 187730a01277SRob Bradford the lack of HyperV CPUID bit enabled (#2437, #2449, #2436) 187830a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455) 187930a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating 188030a01277SRob Bradford DescriptorChainTooShort errors in certain circumstances (#2450, #2424) 188130a01277SRob Bradford 188240c63dcfSRob Bradford# v0.14.0 188340c63dcfSRob Bradford 188440c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17). 188540c63dcfSRob Bradford 188640c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include: 188740c63dcfSRob Bradford 188840c63dcfSRob Bradford### Structured event monitoring 188940c63dcfSRob Bradford 189040c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured 189140c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of 189240c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further 189340c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud 189440c63dcfSRob BradfordHypervisor API surface. 189540c63dcfSRob Bradford 189640c63dcfSRob Bradford### MSHV improvements 189740c63dcfSRob Bradford 189840c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV 189940c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to 190040c63dcfSRob Bradfordthe MSHV support. 190140c63dcfSRob Bradford 190240c63dcfSRob Bradford### Improved aarch64 platform 190340c63dcfSRob Bradford 190440c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running 190540c63dcfSRob BradfordVM including an enhanced serial UART. 190640c63dcfSRob Bradford 190740c63dcfSRob Bradford### Updated hotplug documentation 190840c63dcfSRob Bradford 190940c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use 191040c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as 191140c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices. 191240c63dcfSRob Bradford 191340c63dcfSRob Bradford### PTY control for serial and `virtio-console` 191440c63dcfSRob Bradford 191540c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY 191640c63dcfSRob Bradfordallowing programmatic control of the console from another process through the 191740c63dcfSRob BradfordPTY subsystem. 191840c63dcfSRob Bradford 191940c63dcfSRob Bradford### Block device rate limiting 192040c63dcfSRob Bradford 192140c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM 192240c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the 192330a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 192440c63dcfSRob Bradford 192540c63dcfSRob Bradford 192640c63dcfSRob Bradford### Deprecations 192740c63dcfSRob Bradford 192840c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 192940c63dcfSRob Bradford 193040c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 193140c63dcfSRob Bradford binaries has been deprecated. When using direct boot users should configure 193240c63dcfSRob Bradford their kernel with `CONFIG_PVH=y`. 193340c63dcfSRob Bradford 193440c63dcfSRob Bradford 193540c63dcfSRob Bradford### Contributors 193640c63dcfSRob Bradford 193740c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including 193840c63dcfSRob Bradfordsome new faces. 193940c63dcfSRob Bradford 194040c63dcfSRob BradfordBo Chen <chen.bo@intel.com> 194140c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com> 194240c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com> 194340c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com> 194440c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com> 194540c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com> 194640c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com> 194740c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com> 194840c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com> 194940c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com> 195040c63dcfSRob BradfordWei Liu <liuwe@microsoft.com> 195140c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com> 195240c63dcfSRob BradfordZide Chen <zide.chen@intel.com> 195340c63dcfSRob Bradford 1954f58b6f84SRob Bradford# v0.13.0 1955f58b6f84SRob Bradford 1956f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16). 1957f58b6f84SRob Bradford 1958f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include: 1959f58b6f84SRob Bradford 1960f58b6f84SRob Bradford### Wider VFIO device support 1961f58b6f84SRob Bradford 1962f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI 1963f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts. 1964f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary 1965f58b6f84SRob Bradforddrivers. 1966f58b6f84SRob Bradford 196740c63dcfSRob Bradford### Improved huge page support 1968f58b6f84SRob Bradford 1969f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to 1970f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest 1971f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the 1972f58b6f84SRob Bradforddesired size in their pool. 1973f58b6f84SRob Bradford 1974f58b6f84SRob Bradford### MACvTAP support 1975f58b6f84SRob Bradford 1976f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to 1977f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user. 1978f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP 1979f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md). 1980f58b6f84SRob Bradford 1981f58b6f84SRob Bradford### VHD disk image support 1982f58b6f84SRob Bradford 1983f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw 1984f58b6f84SRob Bradforddisk image with Cloud Hypervisor. 1985f58b6f84SRob Bradford 1986f58b6f84SRob Bradford### Improved Virtio device threading 1987f58b6f84SRob Bradford 1988f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more 1989f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a 1990f58b6f84SRob Bradfordpredictable name derived from the device id. 1991f58b6f84SRob Bradford 1992f58b6f84SRob Bradford### Clean shutdown support via synthetic power button 1993f58b6f84SRob Bradford 1994f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering 1995f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for 1996f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly 1997f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be 1998f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`. 1999f58b6f84SRob Bradford 2000f58b6f84SRob Bradford### Contributors 2001f58b6f84SRob Bradford 2002f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including 2003f58b6f84SRob Bradfordsome new faces. 2004f58b6f84SRob Bradford 2005f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com> 2006f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 2007f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com> 2008f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2009f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2010f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2011f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com> 2012f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com> 2013f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com> 2014f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com> 2015f58b6f84SRob Bradford 2016d42b5084SRob Bradford# v0.12.0 2017d42b5084SRob Bradford 2018d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15). 2019d42b5084SRob Bradford 2020d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include: 2021d42b5084SRob Bradford 2022d42b5084SRob Bradford### ARM64 enhancements 2023d42b5084SRob Bradford 2024d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the 2025d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system. 2026d42b5084SRob Bradford 2027d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning 2028d42b5084SRob Bradford 2029d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now 2030d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to 2031d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been 2032d42b5084SRob Bradfordremoved. 2033d42b5084SRob Bradford 2034d42b5084SRob Bradford### Migration of `vhost-user-fs` backend 2035d42b5084SRob Bradford 2036d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is 2037d42b5084SRob Bradfordinstead hosted in [it's own 2038d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs) 2039d42b5084SRob Bradford 2040d42b5084SRob Bradford### Enhanced "info" API 2041d42b5084SRob Bradford 2042d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the 2043d42b5084SRob Bradforddevices used by the VM including any VFIO devices used. 2044d42b5084SRob Bradford 2045d42b5084SRob Bradford### Contributors 2046d42b5084SRob Bradford 2047d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release: 2048d42b5084SRob Bradford 2049d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 2050d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com> 2051d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2052d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com> 2053d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2054d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2055d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com> 2056d42b5084SRob Bradford 20577dcd3affSRob Bradford# v0.11.0 20587dcd3affSRob Bradford 20597dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14). 20607dcd3affSRob Bradford 20617dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include: 20627dcd3affSRob Bradford 20637dcd3affSRob Bradford### `io_uring` support by default for `virtio-block` 20647dcd3affSRob Bradford 20657dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will 20667dcd3affSRob Bradfordbe used for a significantly higher performance block device. 20677dcd3affSRob Bradford 20687dcd3affSRob Bradford### Windows Guest Support 20697dcd3affSRob Bradford 20707dcd3affSRob BradfordThis is the first release where we officially support Windows running as a 20717dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a 20727dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows 20737dcd3affSRob Bradforddocumentation](docs/windows.md). 20747dcd3affSRob Bradford 20757dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation 20767dcd3affSRob Bradford 20777dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now 20787dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make 20797dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release. 20807dcd3affSRob Bradford 2081d00eb4aaSRob Bradford### `virtio-mmio` Removal 20827dcd3affSRob Bradford 20837dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been 20847dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly 20857dcd3affSRob Bradfordreduce the testing burden of the project. 20867dcd3affSRob Bradford 20877dcd3affSRob Bradford### Snapshot/Restore support for ARM64 20887dcd3affSRob Bradford 20897dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been 20907dcd3affSRob Bradfordimplemented. 20917dcd3affSRob Bradford 20927dcd3affSRob Bradford### Improved Linux Boot Time 20937dcd3affSRob Bradford 20947dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the 20957dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and 20967dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728. 20977dcd3affSRob Bradford 20987dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling 20997dcd3affSRob Bradford 21007dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will 21017dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The 21027dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its 21037dcd3affSRob Bradfordresources. 21047dcd3affSRob Bradford 21057dcd3affSRob Bradford### Default Log Level Changed 21067dcd3affSRob Bradford 21077dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it 21087dcd3affSRob Bradfordeasier to see potential issues. New [logging 21097dcd3affSRob Bradforddocumentation](docs/logging) was also added. 21107dcd3affSRob Bradford 21117dcd3affSRob Bradford### New `--balloon` Parameter Added 21127dcd3affSRob Bradford 21137dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its 21147dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific 21157dcd3affSRob Bradfordcontrols without overloading `--memory`. 21167dcd3affSRob Bradford 21177dcd3affSRob Bradford### Experimental `virtio-watchdog` Support 21187dcd3affSRob Bradford 21197dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to 21207dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the 21217dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support. 21227dcd3affSRob Bradford 21237dcd3affSRob Bradford### Notable Bug Fixes 21247dcd3affSRob Bradford 21257dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest 21267dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170) 21277dcd3affSRob Bradford* CPU identification string is now exposed to the guest 21287dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as 21297dcd3affSRob Bradford read only so avoids excessive VM exits (#1795) 21307dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802) 21317dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size 21327dcd3affSRob Bradford can be used (#1803) 21337dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works 21347dcd3affSRob Bradford correctly 21357dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work 21367dcd3affSRob Bradford correctly 21377dcd3affSRob Bradford 21387dcd3affSRob Bradford### Contributors 21397dcd3affSRob Bradford 21407dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces. 21417dcd3affSRob Bradford 21427dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 21437dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com> 21447dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org> 21457dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com> 21467dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com> 21477dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com> 21487dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com> 21497dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com> 21507dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com> 21517dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com> 21527dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com> 21537dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com> 21547dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com> 21557dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 21567dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com> 21577dcd3affSRob Bradford 21587dcd3affSRob Bradford 2159198bd551SRob Bradford# v0.10.0 2160198bd551SRob Bradford 2161198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13). 2162198bd551SRob Bradford 2163198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include: 2164198bd551SRob Bradford 2165198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors 2166198bd551SRob Bradford 2167198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers. 2168198bd551SRob Bradford 2169198bd551SRob Bradford### Memory Zones 2170198bd551SRob Bradford 2171198bd551SRob 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). 2172198bd551SRob Bradford 2173198bd551SRob Bradford### `Seccomp` Sandbox Improvements 2174198bd551SRob Bradford 2175198bd551SRob 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`. 2176198bd551SRob Bradford 2177198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control 2178198bd551SRob Bradford 2179198bd551SRob 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. 2180198bd551SRob Bradford 2181198bd551SRob Bradford### Notable Bug Fixes 2182198bd551SRob Bradford 2183198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596) 2184198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564) 2185198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593) 2186198bd551SRob Bradford- `--version` shows the version for released binaries (#1669) 2187198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551) 2188198bd551SRob Bradford 2189198bd551SRob Bradford### Contributors 2190198bd551SRob Bradford 2191198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces. 2192198bd551SRob Bradford 2193198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is> 2194198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com> 2195198bd551SRob Bradford* Anatol Belski <ab@php.net> 2196198bd551SRob Bradford* Bo Chen <chen.bo@intel.com> 2197198bd551SRob Bradford* Hui Zhu <teawater@antfin.com> 2198198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2199198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com> 2200198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2201198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2202198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2203198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com> 2204198bd551SRob Bradford 2205d714cf81SRob Bradford# v0.9.0 2206d714cf81SRob Bradford 2207d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12). 2208d714cf81SRob Bradford 2209d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include: 2210d714cf81SRob Bradford 2211d714cf81SRob Bradford### `io_uring` Based Block Device Support 2212d714cf81SRob Bradford 2213d714cf81SRob 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. 2214d714cf81SRob Bradford 2215d714cf81SRob Bradford### Block and Network Device Statistics 2216d714cf81SRob Bradford 2217d714cf81SRob 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. 2218d714cf81SRob Bradford 2219d714cf81SRob Bradford### HTTP API Responses 2220d714cf81SRob Bradford 2221d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF. 2222d714cf81SRob Bradford 2223d714cf81SRob Bradford### CPU Topology 2224d714cf81SRob Bradford 2225d714cf81SRob 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. 2226d714cf81SRob Bradford 2227d714cf81SRob Bradford### Release Build Optimization 2228d714cf81SRob Bradford 2229d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size. 2230d714cf81SRob Bradford 2231d714cf81SRob Bradford### Hypervisor Abstraction 2232d714cf81SRob Bradford 2233d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`. 2234d714cf81SRob Bradford 2235d714cf81SRob Bradford### Snapshot/Restore Improvements 2236d714cf81SRob Bradford 2237d714cf81SRob 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. 2238d714cf81SRob Bradford 2239d714cf81SRob Bradford### Virtio Memory Ballooning Support 2240d714cf81SRob Bradford 2241d714cf81SRob 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. 2242d714cf81SRob Bradford 2243d714cf81SRob Bradford### Enhancements to ARM64 Support 2244d714cf81SRob Bradford 2245d714cf81SRob 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. 2246d714cf81SRob Bradford 2247d714cf81SRob Bradford### Intel SGX Support 2248d714cf81SRob Bradford 2249d714cf81SRob 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). 2250d714cf81SRob Bradford 2251d714cf81SRob Bradford### `Seccomp` Sandbox Improvements 2252d714cf81SRob Bradford 2253d714cf81SRob 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. 2254d714cf81SRob Bradford 2255d714cf81SRob Bradford### Notable Bug Fixes 2256d714cf81SRob Bradford 2257d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes. 2258d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338) 2259d714cf81SRob 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). 2260d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275). 2261d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217) 2262d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521) 2263d714cf81SRob Bradford 2264d714cf81SRob Bradford### Contributors 2265d714cf81SRob Bradford 2266d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces. 2267d714cf81SRob Bradford 2268d714cf81SRob Bradford* Anatol Belski <ab@php.net> 2269d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com> 2270d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 2271d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com> 2272d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com> 2273d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com> 2274d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 2275d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2276d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 2277d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2278d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com> 2279d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com> 2280d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com> 2281d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2282d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2283d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2284d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com> 2285d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com> 2286d714cf81SRob Bradford 2287d714cf81SRob Bradford 228852b83969SRob Bradford# v0.8.0 228952b83969SRob Bradford 229052b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10). 229152b83969SRob Bradford 229252b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include: 229352b83969SRob Bradford 229452b83969SRob Bradford### Experimental Snapshot and Restore Support 229552b83969SRob Bradford 229652b83969SRob BradfordThis release includes the first version of the snapshot and restore feature. 229752b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later 229852b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the 229952b83969SRob Bradfordoriginal VM at the point it was paused. 230052b83969SRob Bradford 230152b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to 230252b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest 230352b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on 230452b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed 230552b83969SRob Bradford(#1176). 230652b83969SRob Bradford 230752b83969SRob Bradford### Experimental ARM64 Support 230852b83969SRob Bradford 230952b83969SRob BradfordIncluded in this release is experimental support for running on ARM64. 231052b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full 231152b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md). 231252b83969SRob Bradford 231352b83969SRob Bradford### Support for Using 5-level Paging in Guests 231452b83969SRob Bradford 231552b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57). 231652b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware 231752b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not 231852b83969SRob Bradfordwork due to current limitations in the PVH boot process. 231952b83969SRob Bradford 232052b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices 232152b83969SRob Bradford 232252b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress 232352b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This 232452b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts 232552b83969SRob Bradfordthe guest must service. 232652b83969SRob Bradford 232752b83969SRob Bradford### `vhost_user_fs` Improvements 232852b83969SRob Bradford 232952b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`. 233052b83969SRob Bradford 233152b83969SRob Bradford 233252b83969SRob Bradford### Notable Bug Fixes 233352b83969SRob Bradford 233452b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110). 233552b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to 233652b83969SRob Bradford run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273). 233752b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to 233852b83969SRob Bradford the specification and synchronizes to the underlying filesystem as required 233952b83969SRob Bradford based on guest feature negotiation. This avoids potential data loss (#399, 234052b83969SRob Bradford #1216). 234152b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be 234252b83969SRob Bradford overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the 234352b83969SRob Bradford `MPTABLE` will no longer be generated (#1132). 234452b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816). 234552b83969SRob Bradford* Created socket files are deleted on shutdown (#1083). 234652b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds 234752b83969SRob Bradford (#751). 234852b83969SRob Bradford 234952b83969SRob Bradford### Command Line and API Changes 235052b83969SRob Bradford 235152b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes: 235252b83969SRob Bradford 235352b83969SRob Bradford* All user visible socket parameters are now consistently called `socket` 235452b83969SRob Bradford rather than `sock` in some cases. 235552b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM 235652b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always 235752b83969SRob Bradford offered for negotiation. 235852b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC 235952b83969SRob Bradford address for the `tap` device on the host. 236052b83969SRob Bradford 236152b83969SRob Bradford### Contributors 236252b83969SRob Bradford 236352b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces. 236452b83969SRob Bradford 236552b83969SRob Bradford* Anatol Belski <ab@php.net> 236652b83969SRob Bradford* Arron Wang <arron.wang@intel.com> 236752b83969SRob Bradford* Bo Chen <chen.bo@intel.com> 236852b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 236952b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com> 237052b83969SRob Bradford* Hui Zhu <teawater@antfin.com> 237152b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 237252b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com> 237352b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com> 237452b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 237552b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 237652b83969SRob Bradford* Sergio Lopez <slp@redhat.com> 237752b83969SRob Bradford 237896be8229SRob Bradford# v0.7.0 237996be8229SRob Bradford 238096be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 238196be8229SRob Bradford 238296be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include: 238396be8229SRob Bradford 238496be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug 238596be8229SRob Bradford 238696be8229SRob BradfordFurther to our effort to support modifying a running guest we now support 238796be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network, 238896be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI 23895c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility 239096be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has 239196be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for 239296be8229SRob Bradforddevices to ease their removal. 239396be8229SRob Bradford 239496be8229SRob Bradford### Alternative `libc` Support 239596be8229SRob Bradford 239696be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release 239796be8229SRob Bradfordcontains a static binary compiled using that toolchain. 239896be8229SRob Bradford 239996be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends 240096be8229SRob Bradford 240196be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by 240296be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to 240396be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true` 240496be8229SRob Bradfordis passed when the devices are created. 240596be8229SRob Bradford 240696be8229SRob Bradford### Initial RamFS Support 240796be8229SRob Bradford 240896be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to 240996be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem. 241096be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to 241196be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very 241296be8229SRob Bradfordminimal image. 241396be8229SRob Bradford 241496be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem` 241596be8229SRob Bradford 241696be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using 241796be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the 241896be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently 241996be8229SRob Bradfordrequires kernel patches to be able to support it. 242096be8229SRob Bradford 242196be8229SRob Bradford### `Seccomp` Sandboxing 242296be8229SRob Bradford 242396be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the 242496be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is 242596be8229SRob Bradfordcontrolled by the `--seccomp` command line option. 242696be8229SRob Bradford 242796be8229SRob Bradford### Updated Distribution Support 242896be8229SRob Bradford 242996be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported 243096be8229SRob Bradforddistributions and is part of our regular testing programme. 243196be8229SRob Bradford 243296be8229SRob Bradford### Command Line and API Changes 243396be8229SRob Bradford 243496be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes 243596be8229SRob Bradford 243696be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal. 243796be8229SRob Bradford If no name is specified the VMM chooses one. 243896be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing 243996be8229SRob Bradford memory instead of providing a path. 244096be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only 244196be8229SRob Bradford supports a single Vsock device. The REST API has removed the vector for this 244296be8229SRob Bradford option and replaced it with a single optional field. 244396be8229SRob Bradford* There is enhanced validation of the command line and API provided 244496be8229SRob Bradford configurations to ensure that the provided options are compatible e.g. that 244596be8229SRob Bradford shared memory is in use if any attempt is made to used a `vhost-user` backed 244696be8229SRob Bradford device. 244796be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and 244896be8229SRob Bradford `add-vsock` subcommands. For removal `remove-device` is used. The REST API 244996be8229SRob Bradford has appropriate new HTTP endpoints too. 245096be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size 245196be8229SRob Bradford will be obtained from the file. A `discard_writes` option has also been added 245296be8229SRob Bradford to provide the equivalent of a read-only file. 245396be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align 245496be8229SRob Bradford with those used by `--disk`. 245596be8229SRob Bradford 245696be8229SRob Bradford### Contributors 245796be8229SRob Bradford 245896be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces. 245996be8229SRob Bradford 246096be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 246196be8229SRob Bradford* Bo Chen <chen.bo@intel.com> 246296be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com> 246396be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com> 246496be8229SRob Bradford* Dean Sheather <dean@coder.com> 246596be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com> 246696be8229SRob Bradford* Hui Zhu <teawater@antfin.com> 246796be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 246896be8229SRob Bradford* Martin Xu <martin.xu@intel.com> 246996be8229SRob Bradford* Muminul Islam <muislam@microsoft.com> 247096be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com> 247196be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 247296be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 247396be8229SRob Bradford* Sergio Lopez <slp@redhat.com> 247496be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com> 247596be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com> 247696be8229SRob Bradford 247703cb26ccSSamuel Ortiz# v0.6.0 247803cb26ccSSamuel Ortiz 247903cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 248003cb26ccSSamuel Ortiz 248103cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include: 248203cb26ccSSamuel Ortiz 248303cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug 248403cb26ccSSamuel Ortiz 248503cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest 248603cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor 248703cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`) 248803cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for 248903cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor. 249003cb26ccSSamuel Ortiz 249103cb26ccSSamuel Ortiz### Shared Filesystem Improvements 249203cb26ccSSamuel Ortiz 249303cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements. 249403cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`, 249503cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we 249603cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and 249703cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations. 249803cb26ccSSamuel Ortiz 249903cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading 250003cb26ccSSamuel Ortiz 250103cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an 250203cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now 250303cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends 250403cb26ccSSamuel Ortizinto their own, separate processes. 25055c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want 250603cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts. 250703cb26ccSSamuel Ortiz 250803cb26ccSSamuel Ortiz### Command Line Interface 250903cb26ccSSamuel Ortiz 251003cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the 251137a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only 251237a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract 251337a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor 251437a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`. The `ch-remote` binary 251537a2c13aSAlyssa Rossis created with each build and available e.g. at 251603cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build. 251703cb26ccSSamuel Ortiz 251803cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available 251903cb26ccSSamuel Ortizcommands. 252003cb26ccSSamuel Ortiz 252103cb26ccSSamuel Ortiz### PVH Boot 252203cb26ccSSamuel Ortiz 252303cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now 252403cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html). 252503cb26ccSSamuel Ortiz 252603cb26ccSSamuel Ortiz### Contributors 252703cb26ccSSamuel Ortiz 252803cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks 252903cb26ccSSamuel Ortizto them and to everyone that contributed to this release: 253003cb26ccSSamuel Ortiz 253103cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 253203cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com> 253303cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com> 253403cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com> 253503cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 253603cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com> 253703cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 253803cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com> 253903cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 254003cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 254103cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 254203cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 254303cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com> 254403cb26ccSSamuel Ortiz 254594f2fc33SRob Bradford# v0.5.1 254694f2fc33SRob Bradford 254794f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes: 254894f2fc33SRob Bradford 254994f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez 255094f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf 255194f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz 255294f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford 255394f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford 25548e8a7b6dSSamuel Ortiz 25552f395e60SSamuel Ortiz# v0.5.0 25562f395e60SSamuel Ortiz 25572f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6). 25582f395e60SSamuel Ortiz 25592f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include: 25602f395e60SSamuel Ortiz 25612f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing 25622f395e60SSamuel Ortiz 25632f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and 25642f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor 25652f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases. 25662f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot 25672f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest. 25682f395e60SSamuel Ortiz 25692f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature. 25702f395e60SSamuel Ortiz 25712f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization 25722f395e60SSamuel Ortiz 25732f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use 25742f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default 25752f395e60SSamuel Ortizparavirtualized networking and block devices throughput. 25762f395e60SSamuel Ortiz 25772f395e60SSamuel Ortiz### New Interrupt Management Framework 25782f395e60SSamuel Ortiz 25792f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt 25802f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device) 25812f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed 25822f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and 25832f395e60SSamuel Ortizvirtio ones. 25842f395e60SSamuel Ortiz 25852f395e60SSamuel Ortiz### Development Tools 25862f395e60SSamuel Ortiz 25872f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our 25882f395e60SSamuel Ortizbuild, development and testing tools. 25892f395e60SSamuel OrtizSomehow similar to the excellent 25902f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool), 259137a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh). 25922f395e60SSamuel Ortiz 25932f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test 25942f395e60SSamuel OrtizCloud Hypervisor through a containerized environment. 25952f395e60SSamuel Ortiz 25962f395e60SSamuel Ortiz### Kata Containers Integration 25972f395e60SSamuel Ortiz 25982f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration 25992f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud 26002f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is 26012f395e60SSamuel Ortizintegrated into the project's CI. 26022f395e60SSamuel Ortiz 26032f395e60SSamuel Ortiz### Contributors 26042f395e60SSamuel Ortiz 26052f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release: 26062f395e60SSamuel Ortiz 26072f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com> 26082f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 26092f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 26102f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 26112f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 26122f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 26132f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 26142f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com> 26152f395e60SSamuel Ortiz 2616cec884e8SSamuel Ortiz# v0.4.0 2617cec884e8SSamuel Ortiz 2618cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4). 2619cec884e8SSamuel Ortiz 2620cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include: 2621cec884e8SSamuel Ortiz 2622cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition 2623cec884e8SSamuel Ortiz 2624e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically 2625cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug. 2626cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs 2627cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are 262837a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md) 2629cec884e8SSamuel Ortiz 2630cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor 2631cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory. 2632cec884e8SSamuel Ortiz 2633cec884e8SSamuel Ortiz### Programmatic firmware tables generation 2634cec884e8SSamuel Ortiz 2635cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot 2636cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for 2637cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated 2638cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those 2639cec884e8SSamuel Ortiztables based on the VMM device model and topology. 2640cec884e8SSamuel Ortiz 2641cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends 2642cec884e8SSamuel Ortiz 2643cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a 2644cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based 2645cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the 2646cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the 2647cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture. 2648cec884e8SSamuel Ortiz 2649cec884e8SSamuel Ortiz### Guest pause and resume 2650cec884e8SSamuel Ortiz 26515c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for 2652cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live 2653cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause 2654cec884e8SSamuel Ortizand resume capabilities. 2655cec884e8SSamuel Ortiz 2656cec884e8SSamuel Ortiz### Userspace IOAPIC by default 2657cec884e8SSamuel Ortiz 2658cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to 2659cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on 2660cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by 2661cec884e8SSamuel Ortizdefault. 2662cec884e8SSamuel Ortiz 2663cec884e8SSamuel Ortiz### PCI BAR reprogramming 2664cec884e8SSamuel Ortiz 2665cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests 2666cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR 2667cec884e8SSamuel Ortizreprogramming. 2668cec884e8SSamuel Ortiz 2669cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization 2670cec884e8SSamuel Ortiz 2671cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project, 2672cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor). 2673cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) 2674cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux) 2675cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2676cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to 2677cec884e8SSamuel Ortiztemporarily fork. 2678cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely 2679cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers. 2680cec884e8SSamuel Ortiz 2681cec884e8SSamuel Ortiz### Contributors 2682cec884e8SSamuel Ortiz 2683cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release: 2684cec884e8SSamuel Ortiz 2685cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 2686cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com> 2687cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2688cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 2689cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 2690cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 2691cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 2692cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 2693cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com> 2694cec884e8SSamuel Ortiz 26958e8a7b6dSSamuel Ortiz# v0.3.0 26968e8a7b6dSSamuel Ortiz 26978ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3). 26988e8a7b6dSSamuel Ortiz 26998e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include: 27008e8a7b6dSSamuel Ortiz 27018e8a7b6dSSamuel Ortiz### Block device offloading 27028e8a7b6dSSamuel Ortiz 27038e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes, 27048e8a7b6dSSamuel Ortizand we added support for 27058e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends. 27068e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device 27078e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage 27088e8a7b6dSSamuel Ortizbackend. 27098e8a7b6dSSamuel Ortiz 27108e8a7b6dSSamuel Ortiz### Network device backend 27118e8a7b6dSSamuel Ortiz 27128e8a7b6dSSamuel OrtizThe previous release provided support for 27138e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we 27148e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together 27158e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the 27168e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture. 27178e8a7b6dSSamuel Ortiz 27188e8a7b6dSSamuel Ortiz### Virtual sockets 27198e8a7b6dSSamuel Ortiz 27208e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest, 27218e8a7b6dSSamuel Ortizwe added an hybrid implementation of the 27228e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address 27238e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the 27248e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md) 27258e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs. 27268e8a7b6dSSamuel Ortiz 27278e8a7b6dSSamuel Ortiz### HTTP based API 27288e8a7b6dSSamuel Ortiz 27298e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud 27308e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP 27318e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the 27328e8a7b6dSSamuel Ortiznext release cycle. 27338e8a7b6dSSamuel Ortiz 27348e8a7b6dSSamuel Ortiz### Memory mapped virtio transport 27358e8a7b6dSSamuel Ortiz 27368e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the 27378e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002) 27388e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest 27398e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation. 27408e8a7b6dSSamuel Ortiz 27418e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU 27428e8a7b6dSSamuel Ortiz 27438e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing 274437a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows 274537a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support. 27468e8a7b6dSSamuel Ortiz 27478e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor 27488e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual 27498e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be 27508e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]` 27518e8a7b6dSSamuel Ortizsetting. 27528e8a7b6dSSamuel Ortiz 27538e8a7b6dSSamuel Ortiz### Ubuntu 19.10 27548e8a7b6dSSamuel Ortiz 27558ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware), 27568e8a7b6dSSamuel Ortizwe can now support the latest 27578e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images. 27588e8a7b6dSSamuel Ortiz 27598e8a7b6dSSamuel Ortiz### Large memory guests 27608e8a7b6dSSamuel Ortiz 27618e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now 27628e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB). 27637688e6e2SSamuel Ortiz 2764d784ac29SSamuel Ortiz# v0.2.0 2765d784ac29SSamuel Ortiz 27668ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2). 2767d784ac29SSamuel Ortiz 2768d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include: 2769d784ac29SSamuel Ortiz 2770d784ac29SSamuel Ortiz### Network device offloading 2771d784ac29SSamuel Ortiz 2772d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external 2773d784ac29SSamuel Ortizprocesses, we added support for 2774d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This 2775d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device 2776d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend. 2777d784ac29SSamuel Ortiz 2778d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI 2779d784ac29SSamuel Ortiz 2780d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented 2781d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with 2782d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to 2783d784ac29SSamuel Ortizcleanly reboot and shutdown. 2784d784ac29SSamuel Ortiz 2785d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is 2786d784ac29SSamuel Ortizenabled by default. 2787d784ac29SSamuel Ortiz 2788d784ac29SSamuel Ortiz### Debug I/O port 2789d784ac29SSamuel Ortiz 2790d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest 2791d784ac29SSamuel Ortizboot times, we added support for logging guest events through the 2792d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html) 2793d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time 279437a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more 279537a2c13aSAlyssa Rossdetails. 2796d784ac29SSamuel Ortiz 2797d784ac29SSamuel Ortiz### Improved direct device assignment 2798d784ac29SSamuel Ortiz 2799d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When 2800d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads 2801d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from 2802d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from 2803d784ac29SSamuel Ortizdirectly assigned devices. 2804d784ac29SSamuel Ortiz 2805d784ac29SSamuel Ortiz### Improved shared filesystem 2806d784ac29SSamuel Ortiz 2807d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt) 2808d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system. 2809d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest 2810d784ac29SSamuel Ortizmemory footprint. 2811d784ac29SSamuel Ortiz 2812d784ac29SSamuel Ortiz### Ubuntu bionic based CI 2813d784ac29SSamuel Ortiz 28148ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2815d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to 2816d784ac29SSamuel Ortizour CI pipeline. 2817d784ac29SSamuel Ortiz 281893b77530SSamuel Ortiz# v0.1.0 281993b77530SSamuel Ortiz 28208ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1). 282193b77530SSamuel Ortiz 282293b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include: 282393b77530SSamuel Ortiz 282493b77530SSamuel Ortiz### Shared filesystem 282593b77530SSamuel Ortiz 282693b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file 282793b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem 282893b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest. 282993b77530SSamuel Ortiz 283037a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how 283137a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`. 283293b77530SSamuel Ortiz 283393b77530SSamuel Ortiz### Initial direct device assignment support 283493b77530SSamuel Ortiz 283593b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device 283693b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host 283793b77530SSamuel Ortizphysical devices into its guest. 283893b77530SSamuel Ortiz 283937a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly 284037a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests. 284193b77530SSamuel Ortiz 284293b77530SSamuel Ortiz### Userspace IOAPIC 284393b77530SSamuel Ortiz 284493b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by 284593b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC). 284693b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space, 284793b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode. 284893b77530SSamuel Ortiz 284993b77530SSamuel Ortiz### Virtual persistent memory 285093b77530SSamuel Ortiz 285193b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device 285293b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device 285393b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint. 285493b77530SSamuel Ortiz 285593b77530SSamuel Ortiz### Linux kernel bzImage 285693b77530SSamuel Ortiz 285793b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from 285893b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions 285993b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host 286093b77530SSamuel Ortizdistribution kernel image. 286193b77530SSamuel Ortiz 286293b77530SSamuel Ortiz### Console over virtio 286393b77530SSamuel Ortiz 286493b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although 286593b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot 286693b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console 286793b77530SSamuel Ortizimplementation. 286893b77530SSamuel Ortiz 286993b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console. 287093b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting 287193b77530SSamuel Ortiz`--serial tty --console off` from the command line. 287293b77530SSamuel Ortiz 287393b77530SSamuel Ortiz### Unit testing 287493b77530SSamuel Ortiz 287593b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI. 287693b77530SSamuel Ortiz 287793b77530SSamuel Ortiz### Integration tests parallelization 287893b77530SSamuel Ortiz 287993b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our 288093b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel. 2881