13fa1e77aSBo Chen- [v44.0](#v440) 23fa1e77aSBo Chen - [Configurable `virtio-iommu` Address Width](#configurable-virtio-iommu-address-width) 349a389ffSRob Bradford - [Notable Performance Improvements](#notable-performance-improvements) 43fa1e77aSBo Chen - [New Fuzzers](#new-fuzzers) 549a389ffSRob Bradford - [Notable Bug Fixes](#notable-bug-fixes) 649a389ffSRob Bradford - [Contributors](#contributors) 73fa1e77aSBo Chen- [v43.0](#v430) 83fa1e77aSBo Chen - [Live Migration over TCP Connections](#live-migration-over-tcp-connections) 93fa1e77aSBo Chen - [Notable Performance Improvements](#notable-performance-improvements-1) 103fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-1) 113fa1e77aSBo Chen - [Contributors](#contributors-1) 1258850d26SRob Bradford- [v42.0](#v420) 1358850d26SRob Bradford - [SVE/SVE2 Support on AArch64](#svesve2-support-on-aarch64) 143fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-2) 1558850d26SRob Bradford - [Sponsorships](#sponsorships) 163fa1e77aSBo Chen - [Contributors](#contributors-2) 17ea3e2ff6SRob Bradford- [v41.0](#v410) 18ea3e2ff6SRob Bradford - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support) 19ea3e2ff6SRob Bradford - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support) 203fa1e77aSBo Chen - [Notable Performance Improvements](#notable-performance-improvements-2) 2149a389ffSRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-3) 2249a389ffSRob Bradford - [Contributors](#contributors-3) 233fa1e77aSBo Chen- [v40.0](#v400) 243fa1e77aSBo Chen - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices) 253fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-4) 263fa1e77aSBo Chen - [Contributors](#contributors-4) 274f96fa15SRob Bradford- [v39.0](#v390) 284f96fa15SRob Bradford - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments) 294f96fa15SRob Bradford - [Direct Booting with bzImages](#direct-booting-with-bzimages) 304f96fa15SRob Bradford - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support) 314f96fa15SRob Bradford - [Guest NMI Injection Support](#guest-nmi-injection-support) 323fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-5) 333fa1e77aSBo Chen - [Contributors](#contributors-5) 34ef4fbf08SBo Chen- [v38.0](#v380) 35ef4fbf08SBo Chen - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices) 36ef4fbf08SBo Chen - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread) 37ef4fbf08SBo Chen - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault) 38ef4fbf08SBo Chen - [New 'debug-console' Device](#new-debug-console-device) 39ef4fbf08SBo Chen - [Improved VFIO Device Support](#improved-vfio-device-support) 40ef4fbf08SBo Chen - [Extended CPU Affinity Support](#extended-cpu-affinity-support) 413fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-6) 423fa1e77aSBo Chen - [Contributors](#contributors-6) 435e702dcdSBo Chen- [v37.0](#v370) 445e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release) 45ef4fbf08SBo Chen - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices) 465e702dcdSBo Chen - [Configurable Named TAP Devices](#configurable-named-tap-devices) 475e702dcdSBo Chen - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console) 485e702dcdSBo Chen - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots) 493fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-7) 503fa1e77aSBo Chen - [Contributors](#contributors-7) 51f5899d15SBo Chen- [v36.0](#v360) 52f5899d15SBo Chen - [Command Line Changes](#command-line-changes) 53f5899d15SBo Chen - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli) 54f5899d15SBo Chen - [NUMA Support for PCI segments](#numa-support-for-pci-segments) 55f5899d15SBo Chen - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms) 56f5899d15SBo Chen - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port) 57f5899d15SBo Chen - [AIO Backend for Block Devices](#aio-backend-for-block-devices) 58f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements) 593fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-8) 603fa1e77aSBo Chen - [Contributors](#contributors-8) 61339912a5SBo Chen- [v35.0](#v350) 62339912a5SBo Chen - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63) 63339912a5SBo Chen - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block) 64339912a5SBo Chen - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state) 653fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-9) 663fa1e77aSBo Chen - [Contributors](#contributors-9) 67487a43cdSRob Bradford- [v34.0](#v340) 68487a43cdSRob Bradford - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support) 69487a43cdSRob Bradford - [Improvements to VM Core Dump](#improvements-to-vm-core-dump) 70487a43cdSRob Bradford - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files) 71487a43cdSRob Bradford - [Minimum Host Kernel Bump](#minimum-host-kernel-bump) 723fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-10) 733fa1e77aSBo Chen - [Contributors](#contributors-10) 74487a43cdSRob Bradford- [v33.0](#v330) 75487a43cdSRob Bradford - [D-Bus based API](#d-bus-based-api) 76487a43cdSRob Bradford - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64) 773fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-11) 783fa1e77aSBo Chen - [Contributors](#contributors-11) 7942ca292dSRob Bradford- [v32.0](#v320) 8042ca292dSRob Bradford - [Increased PCI Segment Limit](#increased-pci-segment-limit) 8142ca292dSRob Bradford - [API Changes](#api-changes) 823fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-12) 833fa1e77aSBo Chen - [Contributors](#contributors-12) 8442ca292dSRob Bradford- [v31.1](#v311) 85f3522e85SMichael Zhao- [v31.0](#v310) 86f3522e85SMichael Zhao - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables) 87f3522e85SMichael Zhao - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62) 88f3522e85SMichael Zhao - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler) 89f3522e85SMichael Zhao - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile) 90f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-1) 913fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-13) 923fa1e77aSBo Chen - [Contributors](#contributors-13) 93ece0e6faSBo Chen- [v30.0](#v300) 94ece0e6faSBo Chen - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size) 95ece0e6faSBo Chen - [Basic vfio-user Server Support](#basic-vfio-user-server-support) 96ece0e6faSBo Chen - [Heap Profiling Support](#heap-profiling-support) 97f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-2) 983fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-14) 993fa1e77aSBo Chen - [Contributors](#contributors-14) 100ece0e6faSBo Chen- [v28.2](#v282) 10122cf8c97SRob Bradford- [v29.0](#v290) 10222cf8c97SRob Bradford - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm) 10322cf8c97SRob Bradford - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements) 10422cf8c97SRob Bradford - [Heap Allocation Improvements](#heap-allocation-improvements) 10522cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements) 10622cf8c97SRob Bradford - [`AArch64` Documentation Integration](#aarch64-documentation-integration) 10722cf8c97SRob Bradford - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement) 10822cf8c97SRob Bradford - [TCP Offload Control](#tcp-offload-control) 1093fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-15) 11022cf8c97SRob Bradford - [Removals](#removals) 11122cf8c97SRob Bradford - [Deprecations](#deprecations) 1123fa1e77aSBo Chen - [Contributors](#contributors-15) 11322cf8c97SRob Bradford- [v28.1](#v281) 11466460765SRob Bradford- [v28.0](#v280) 11566460765SRob Bradford - [Community Engagement (Reminder)](#community-engagement-reminder) 1165e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release-1) 11766460765SRob Bradford - [Virtualised TPM Support](#virtualised-tpm-support) 11866460765SRob Bradford - [Transparent Huge Page Support](#transparent-huge-page-support) 11966460765SRob Bradford - [README Quick Start Improved](#readme-quick-start-improved) 1203fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-16) 12122cf8c97SRob Bradford - [Removals](#removals-1) 1223fa1e77aSBo Chen - [Contributors](#contributors-16) 1232ba6a9bfSRob Bradford- [v27.0](#v270) 1242ba6a9bfSRob Bradford - [Community Engagement](#community-engagement) 1252ba6a9bfSRob Bradford - [Prebuilt Packages](#prebuilt-packages) 1262ba6a9bfSRob Bradford - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest) 1272ba6a9bfSRob Bradford - [Boot Tracing](#boot-tracing) 1282ba6a9bfSRob Bradford - [Simplified Build Feature Flags](#simplified-build-feature-flags) 1292ba6a9bfSRob Bradford - [Asynchronous Kernel Loading](#asynchronous-kernel-loading) 1302ba6a9bfSRob Bradford - [GDB Support for AArch64](#gdb-support-for-aarch64) 1313fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-17) 132f3522e85SMichael Zhao - [Deprecations](#deprecations-1) 1333fa1e77aSBo Chen - [Contributors](#contributors-17) 134f3522e85SMichael Zhao- [v26.0](#v260) 135f3522e85SMichael Zhao - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform) 136f3522e85SMichael Zhao - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support) 1373fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-18) 13822cf8c97SRob Bradford - [Deprecations](#deprecations-2) 13966460765SRob Bradford - [Removals](#removals-2) 1403fa1e77aSBo Chen - [Contributors](#contributors-18) 14122cf8c97SRob Bradford- [v25.0](#v250) 14222cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements-1) 14322cf8c97SRob Bradford - [VM "Coredump" Support](#vm-coredump-support) 1443fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-19) 14522cf8c97SRob Bradford - [Removals](#removals-3) 1463fa1e77aSBo Chen - [Contributors](#contributors-19) 1470150de55SSebastien Boeuf- [v24.0](#v240) 1480150de55SSebastien Boeuf - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu) 1490150de55SSebastien Boeuf - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness) 1500150de55SSebastien Boeuf - [Sparse Mmap support](#sparse-mmap-support) 1510150de55SSebastien Boeuf - [Expose Platform Serial Number](#expose-platform-serial-number) 1523fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-20) 1530150de55SSebastien Boeuf - [Notable Improvements](#notable-improvements) 15422cf8c97SRob Bradford - [Deprecations](#deprecations-3) 1550150de55SSebastien Boeuf - [New on the Website](#new-on-the-website) 1563fa1e77aSBo Chen - [Contributors](#contributors-20) 1570150de55SSebastien Boeuf- [v23.1](#v231) 1580c9c56f5SRob Bradford- [v23.0](#v230) 1590c9c56f5SRob Bradford - [vDPA Support](#vdpa-support) 1600c9c56f5SRob Bradford - [Updated OS Support list](#updated-os-support-list) 1610c9c56f5SRob Bradford - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements) 1620c9c56f5SRob Bradford - [`AMX` Support](#amx-support) 1633fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-21) 16422cf8c97SRob Bradford - [Deprecations](#deprecations-4) 1653fa1e77aSBo Chen - [Contributors](#contributors-21) 1660c9c56f5SRob Bradford- [v22.1](#v221) 1676aa10938SRob Bradford- [v22.0](#v220) 1686aa10938SRob Bradford - [GDB Debug Stub Support](#gdb-debug-stub-support) 1696aa10938SRob Bradford - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments) 1706aa10938SRob Bradford - [Before Boot Configuration Changes](#before-boot-configuration-changes) 1716aa10938SRob Bradford - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting) 1726aa10938SRob Bradford - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx) 1736aa10938SRob Bradford - [PMU Support for AArch64](#pmu-support-for-aarch64) 1740c9c56f5SRob Bradford - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license) 1756aa10938SRob Bradford - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd) 1763fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-22) 1773fa1e77aSBo Chen - [Contributors](#contributors-22) 17895ca7997SRob Bradford- [v21.0](#v210) 17995ca7997SRob Bradford - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade) 18095ca7997SRob Bradford - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515) 1813fa1e77aSBo Chen - [Notable Bug fixes](#notable-bug-fixes-23) 1823fa1e77aSBo Chen - [Contributors](#contributors-23) 18395ca7997SRob Bradford- [v20.2](#v202) 18495ca7997SRob Bradford- [v20.1](#v201) 1857fc0776aSSebastien Boeuf- [v20.0](#v200) 1867fc0776aSSebastien Boeuf - [Multiple PCI segments support](#multiple-pci-segments-support) 1877fc0776aSSebastien Boeuf - [CPU pinning](#cpu-pinning) 1887fc0776aSSebastien Boeuf - [Improved VFIO support](#improved-vfio-support) 1897fc0776aSSebastien Boeuf - [Safer code](#safer-code) 1907fc0776aSSebastien Boeuf - [Extended documentation](#extended-documentation) 1913fa1e77aSBo Chen - [Notable bug fixes](#notable-bug-fixes-24) 1923fa1e77aSBo Chen - [Contributors](#contributors-24) 193d00eb4aaSRob Bradford- [v19.0](#v190) 194d00eb4aaSRob Bradford - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console) 195d00eb4aaSRob Bradford - [PCI boot time optimisations](#pci-boot-time-optimisations) 196d00eb4aaSRob Bradford - [Improved TDX support](#improved-tdx-support) 197d00eb4aaSRob Bradford - [Live migration enhancements](#live-migration-enhancements) 198d00eb4aaSRob Bradford - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user) 199d00eb4aaSRob Bradford - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu) 2003fa1e77aSBo Chen - [Notable bug fixes](#notable-bug-fixes-25) 2013fa1e77aSBo Chen - [Contributors](#contributors-25) 2022c4f8d22SRob Bradford- [v18.0](#v180) 2032c4f8d22SRob Bradford - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support) 2042c4f8d22SRob Bradford - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices) 2052c4f8d22SRob Bradford - [VHDX disk image support](#vhdx-disk-image-support) 2062c4f8d22SRob Bradford - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor) 2072c4f8d22SRob Bradford - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem) 2082c4f8d22SRob Bradford - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor) 2092c4f8d22SRob Bradford - [AArch64 CPU topology support](#aarch64-cpu-topology-support) 2102c4f8d22SRob Bradford - [Power button support on AArch64](#power-button-support-on-aarch64) 2113fa1e77aSBo Chen - [Notable bug fixes](#notable-bug-fixes-26) 2123fa1e77aSBo Chen - [Contributors](#contributors-26) 213e6db5999SRob Bradford- [v17.0](#v170) 214e6db5999SRob Bradford - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi) 215e6db5999SRob Bradford - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend) 216e6db5999SRob Bradford - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices) 217e6db5999SRob Bradford - [Improved SGX support](#improved-sgx-support) 218e6db5999SRob Bradford - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices) 2193fa1e77aSBo Chen - [Notable bug fixes](#notable-bug-fixes-27) 2203fa1e77aSBo Chen - [Contributors](#contributors-27) 2215ed8e01fSRob Bradford- [v16.0](#v160) 2225ed8e01fSRob Bradford - [Improved live migration support](#improved-live-migration-support) 2235ed8e01fSRob Bradford - [Improved `vhost-user` support](#improved-vhost-user-support) 2245ed8e01fSRob Bradford - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support) 2253fa1e77aSBo Chen - [Notable bug fixes](#notable-bug-fixes-28) 2265ed8e01fSRob Bradford - [Removed functionality](#removed-functionality) 2273fa1e77aSBo Chen - [Contributors](#contributors-28) 22830a01277SRob Bradford- [v15.0](#v150) 22930a01277SRob Bradford - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees) 23030a01277SRob Bradford - [Network device rate limiting](#network-device-rate-limiting) 23130a01277SRob Bradford - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload) 232f3522e85SMichael Zhao - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter) 23330a01277SRob Bradford - [Bug fixes](#bug-fixes) 23422cf8c97SRob Bradford - [Deprecations](#deprecations-5) 2353fa1e77aSBo Chen - [Contributors](#contributors-29) 23630a01277SRob Bradford- [v0.14.1](#v0141) 23740c63dcfSRob Bradford- [v0.14.0](#v0140) 23840c63dcfSRob Bradford - [Structured event monitoring](#structured-event-monitoring) 23940c63dcfSRob Bradford - [MSHV improvements](#mshv-improvements) 24040c63dcfSRob Bradford - [Improved aarch64 platform](#improved-aarch64-platform) 24140c63dcfSRob Bradford - [Updated hotplug documentation](#updated-hotplug-documentation) 24240c63dcfSRob Bradford - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console) 24340c63dcfSRob Bradford - [Block device rate limiting](#block-device-rate-limiting) 24422cf8c97SRob Bradford - [Deprecations](#deprecations-6) 2453fa1e77aSBo Chen - [Contributors](#contributors-30) 246f58b6f84SRob Bradford- [v0.13.0](#v0130) 247f58b6f84SRob Bradford - [Wider VFIO device support](#wider-vfio-device-support) 24840c63dcfSRob Bradford - [Improved huge page support](#improved-huge-page-support) 249f58b6f84SRob Bradford - [MACvTAP support](#macvtap-support) 250f58b6f84SRob Bradford - [VHD disk image support](#vhd-disk-image-support) 251f58b6f84SRob Bradford - [Improved Virtio device threading](#improved-virtio-device-threading) 252f58b6f84SRob Bradford - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button) 2533fa1e77aSBo Chen - [Contributors](#contributors-31) 254d42b5084SRob Bradford- [v0.12.0](#v0120) 255d42b5084SRob Bradford - [ARM64 enhancements](#arm64-enhancements) 256d42b5084SRob Bradford - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning) 257d42b5084SRob Bradford - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend) 258d42b5084SRob Bradford - [Enhanced "info" API](#enhanced-info-api) 2593fa1e77aSBo Chen - [Contributors](#contributors-32) 2607dcd3affSRob Bradford- [v0.11.0](#v0110) 2617dcd3affSRob Bradford - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block) 2627dcd3affSRob Bradford - [Windows Guest Support](#windows-guest-support) 2637dcd3affSRob Bradford - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation) 264d00eb4aaSRob Bradford - [`virtio-mmio` Removal](#virtio-mmio-removal) 2657dcd3affSRob Bradford - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64) 2667dcd3affSRob Bradford - [Improved Linux Boot Time](#improved-linux-boot-time) 2677dcd3affSRob Bradford - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling) 2687dcd3affSRob Bradford - [Default Log Level Changed](#default-log-level-changed) 269f3522e85SMichael Zhao - [New `--balloon` Parameter Added](#new---balloon-parameter-added) 2707dcd3affSRob Bradford - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support) 2713fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-29) 2723fa1e77aSBo Chen - [Contributors](#contributors-33) 273198bd551SRob Bradford- [v0.10.0](#v0100) 274198bd551SRob Bradford - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors) 275198bd551SRob Bradford - [Memory Zones](#memory-zones) 276198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements) 277198bd551SRob Bradford - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control) 2783fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-30) 2793fa1e77aSBo Chen - [Contributors](#contributors-34) 280d714cf81SRob Bradford- [v0.9.0](#v090) 281d714cf81SRob Bradford - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support) 282d714cf81SRob Bradford - [Block and Network Device Statistics](#block-and-network-device-statistics) 283d714cf81SRob Bradford - [HTTP API Responses](#http-api-responses) 284d714cf81SRob Bradford - [CPU Topology](#cpu-topology) 285d714cf81SRob Bradford - [Release Build Optimization](#release-build-optimization) 286d714cf81SRob Bradford - [Hypervisor Abstraction](#hypervisor-abstraction) 287d714cf81SRob Bradford - [Snapshot/Restore Improvements](#snapshotrestore-improvements) 288d714cf81SRob Bradford - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support) 289d714cf81SRob Bradford - [Enhancements to ARM64 Support](#enhancements-to-arm64-support) 290d714cf81SRob Bradford - [Intel SGX Support](#intel-sgx-support) 291198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1) 2923fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-31) 2933fa1e77aSBo Chen - [Contributors](#contributors-35) 294d714cf81SRob Bradford- [v0.8.0](#v080) 295d714cf81SRob Bradford - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support) 296d714cf81SRob Bradford - [Experimental ARM64 Support](#experimental-arm64-support) 297d714cf81SRob Bradford - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests) 298d714cf81SRob Bradford - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices) 299d714cf81SRob Bradford - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements) 3003fa1e77aSBo Chen - [Notable Bug Fixes](#notable-bug-fixes-32) 301d714cf81SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes) 3023fa1e77aSBo Chen - [Contributors](#contributors-36) 30396be8229SRob Bradford- [v0.7.0](#v070) 30496be8229SRob Bradford - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug) 30596be8229SRob Bradford - [Alternative `libc` Support](#alternative-libc-support) 30696be8229SRob Bradford - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends) 30796be8229SRob Bradford - [Initial RamFS Support](#initial-ramfs-support) 30896be8229SRob Bradford - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem) 30996be8229SRob Bradford - [`Seccomp` Sandboxing](#seccomp-sandboxing) 31096be8229SRob Bradford - [Updated Distribution Support](#updated-distribution-support) 31152b83969SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes-1) 3123fa1e77aSBo Chen - [Contributors](#contributors-37) 31303cb26ccSSamuel Ortiz- [v0.6.0](#v060) 31403cb26ccSSamuel Ortiz - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug) 31503cb26ccSSamuel Ortiz - [Shared Filesystem Improvements](#shared-filesystem-improvements) 31603cb26ccSSamuel Ortiz - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading) 31703cb26ccSSamuel Ortiz - [Command Line Interface](#command-line-interface) 31803cb26ccSSamuel Ortiz - [PVH Boot](#pvh-boot) 3193fa1e77aSBo Chen - [Contributors](#contributors-38) 32094f2fc33SRob Bradford- [v0.5.1](#v051) 3212f395e60SSamuel Ortiz- [v0.5.0](#v050) 32294f2fc33SRob Bradford - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing) 32394f2fc33SRob Bradford - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization) 32494f2fc33SRob Bradford - [New Interrupt Management Framework](#new-interrupt-management-framework) 32594f2fc33SRob Bradford - [Development Tools](#development-tools) 32694f2fc33SRob Bradford - [Kata Containers Integration](#kata-containers-integration) 3273fa1e77aSBo Chen - [Contributors](#contributors-39) 328cec884e8SSamuel Ortiz- [v0.4.0](#v040) 32994f2fc33SRob Bradford - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition) 33094f2fc33SRob Bradford - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation) 33194f2fc33SRob Bradford - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends) 33294f2fc33SRob Bradford - [Guest pause and resume](#guest-pause-and-resume) 33394f2fc33SRob Bradford - [Userspace IOAPIC by default](#userspace-ioapic-by-default) 33494f2fc33SRob Bradford - [PCI BAR reprogramming](#pci-bar-reprogramming) 33594f2fc33SRob Bradford - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization) 3363fa1e77aSBo Chen - [Contributors](#contributors-40) 3378e8a7b6dSSamuel Ortiz- [v0.3.0](#v030) 33894f2fc33SRob Bradford - [Block device offloading](#block-device-offloading) 33994f2fc33SRob Bradford - [Network device backend](#network-device-backend) 34094f2fc33SRob Bradford - [Virtual sockets](#virtual-sockets) 34194f2fc33SRob Bradford - [HTTP based API](#http-based-api) 34294f2fc33SRob Bradford - [Memory mapped virtio transport](#memory-mapped-virtio-transport) 34394f2fc33SRob Bradford - [Paravirtualized IOMMU](#paravirtualized-iommu) 34494f2fc33SRob Bradford - [Ubuntu 19.10](#ubuntu-1910) 34594f2fc33SRob Bradford - [Large memory guests](#large-memory-guests) 3467688e6e2SSamuel Ortiz- [v0.2.0](#v020) 34794f2fc33SRob Bradford - [Network device offloading](#network-device-offloading) 34894f2fc33SRob Bradford - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi) 34994f2fc33SRob Bradford - [Debug I/O port](#debug-io-port) 35094f2fc33SRob Bradford - [Improved direct device assignment](#improved-direct-device-assignment) 35194f2fc33SRob Bradford - [Improved shared filesystem](#improved-shared-filesystem) 35294f2fc33SRob Bradford - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci) 3537688e6e2SSamuel Ortiz- [v0.1.0](#v010) 35494f2fc33SRob Bradford - [Shared filesystem](#shared-filesystem) 35594f2fc33SRob Bradford - [Initial direct device assignment support](#initial-direct-device-assignment-support) 35694f2fc33SRob Bradford - [Userspace IOAPIC](#userspace-ioapic) 35794f2fc33SRob Bradford - [Virtual persistent memory](#virtual-persistent-memory) 35894f2fc33SRob Bradford - [Linux kernel bzImage](#linux-kernel-bzimage) 35994f2fc33SRob Bradford - [Console over virtio](#console-over-virtio) 36094f2fc33SRob Bradford - [Unit testing](#unit-testing) 36194f2fc33SRob Bradford - [Integration tests parallelization](#integration-tests-parallelization) 36294f2fc33SRob Bradford 3633fa1e77aSBo Chen# v44.0 3643fa1e77aSBo Chen 3653fa1e77aSBo ChenThis release has been tracked in our [roadmap 3663fa1e77aSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 3673fa1e77aSBo Chenv44.0. The following user visible changes have been made: 3683fa1e77aSBo Chen 3693fa1e77aSBo Chen### Configurable `virtio-iommu` Address Width 3703fa1e77aSBo Chen 3713fa1e77aSBo ChenThe `iommu_address_width` option has been added to `--platform` to allow users 3723fa1e77aSBo Chento limit the `virtio-iommu` address space in the guest. (#6900) 3733fa1e77aSBo Chen 3743fa1e77aSBo Chen### Notable Performance Improvements 3753fa1e77aSBo Chen 3763fa1e77aSBo ChenThe `VIRTIO_BLK_F_SEG_MAX` feature has been enabled for `virtio-block` devices, 3773fa1e77aSBo Chenwhich brings significant performance improvements on throughput. (#6885) 3783fa1e77aSBo Chen 3793fa1e77aSBo ChenThe `io_uring` entries are no longer forced to use async helper workers, 3803fa1e77aSBo Chendelegating the decision to the kernel. This change resolved the issue of having 3813fa1e77aSBo Chenexcessive amount of worker threads when `io_uring` is being used, which is 3823fa1e77aSBo Chenexpected to improve performance, such as reducing memory usage and reduce CPU 3833fa1e77aSBo Chencontention. 3843fa1e77aSBo Chen 3853fa1e77aSBo Chen### New Fuzzers 3863fa1e77aSBo Chen 3873fa1e77aSBo ChenOur continuous fuzzing infrastructure is augmented with two new fuzzers to cover 3883fa1e77aSBo Chenx86 instruction emulator and `virtio-vsock`. 3893fa1e77aSBo Chen 3903fa1e77aSBo Chen### Notable Bug Fixes 3913fa1e77aSBo Chen 3923fa1e77aSBo Chen* Fix short read and short write that impact QCOW and VHDX support. (#6884) 3933fa1e77aSBo Chen* Various bug fixes on VHDX support. (#6890, #6899) 3943fa1e77aSBo Chen 3953fa1e77aSBo Chen### Contributors 3963fa1e77aSBo Chen 3973fa1e77aSBo ChenMany thanks to everyone who has contributed to our release: 3983fa1e77aSBo Chen 3993fa1e77aSBo Chen* Arvind Vasudev <avasudev@crusoeenergy.com> 4003fa1e77aSBo Chen* Bo Chen <bo.arvin.chen@gmail.com> 4013fa1e77aSBo Chen* Nikolay Edigaryev <edigaryev@gmail.com> 4023fa1e77aSBo Chen* Rob Bradford <rbradford@rivosinc.com> 4033fa1e77aSBo Chen* Ruoqing He <heruoqing@iscas.ac.cn> 4043fa1e77aSBo Chen* Wei Liu <liuwe@microsoft.com> 4053fa1e77aSBo Chen 40649a389ffSRob Bradford# v43.0 40749a389ffSRob Bradford 40849a389ffSRob BradfordThis release has been tracked in our [roadmap 40949a389ffSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 41049a389ffSRob Bradfordv43.0. The following user visible changes have been made: 41149a389ffSRob Bradford 41249a389ffSRob Bradford### Live Migration over TCP Connections 41349a389ffSRob Bradford 41449a389ffSRob BradfordSupport has been added to enable direct live migration from two hosts via TCP 41549a389ffSRob Bradfordconnections. This supplements the existing support for migrating over a UNIX 41649a389ffSRob Bradfordsocket which can then be tunnelled as desired. The documentation has been 41749a389ffSRob Bradfordupdated. (#6850) 41849a389ffSRob Bradford 41949a389ffSRob Bradford### Notable Performance Improvements 42049a389ffSRob Bradford 42149a389ffSRob BradfordThe `VIRTIO_RING_F_INDIRECT_DESC` feature has been enabled for `virtio-block` 42249a389ffSRob Bradforddevices. This significantly increases the throughput of the devices with a 42349a389ffSRob Bradfordsmall negative impact on latency. (#6826) 42449a389ffSRob Bradford 42549a389ffSRob Bradford### Notable Bug Fixes 42649a389ffSRob Bradford 42749a389ffSRob Bradford* Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64 42849a389ffSRob Bradford architectures. Whether they function depends on the host PCI host bridge 42949a389ffSRob Bradford support - previously they would be rejected even if the driver did not use 43049a389ffSRob Bradford these BARs. (#6871) 43149a389ffSRob Bradford* Command line groups were adjusted to ensure that at least one payload 43249a389ffSRob Bradford parameter was provided if any other VM parameters provided. (#6832) 43349a389ffSRob Bradford 43449a389ffSRob Bradford### Contributors 43549a389ffSRob Bradford 43649a389ffSRob BradfordMany thanks to everyone who has contributed to our release: 43749a389ffSRob Bradford 43849a389ffSRob Bradford* Alyssa Ross <hi@alyssa.is> 43949a389ffSRob Bradford* Andrew Consroe <aconz2@gmail.com> 44049a389ffSRob Bradford* Bo Chen <bo.arvin.chen@gmail.com> 44149a389ffSRob Bradford* Jinrong Liang <cloudliang@tencent.com> 44249a389ffSRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de> 44349a389ffSRob Bradford* Muminul Islam <muislam@microsoft.com> 44449a389ffSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 44549a389ffSRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn> 44649a389ffSRob Bradford* Wojtek Czekalski <wczekalski@me.com> 44749a389ffSRob Bradford 44858850d26SRob Bradford# v42.0 44958850d26SRob Bradford 45058850d26SRob BradfordThis release has been tracked in our [roadmap 45158850d26SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 45258850d26SRob Bradfordv42.0. The following user visible changes have been made: 45358850d26SRob Bradford 45458850d26SRob Bradford### SVE/SVE2 Support on AArch64 45558850d26SRob Bradford 45658850d26SRob BradfordThe SVE and SVE2 feature bits are now propagated through to the guest on 45758850d26SRob BradfordAArch64. (#6678, #6691) 45858850d26SRob Bradford 45958850d26SRob Bradford### Notable Bug Fixes 46058850d26SRob Bradford 46158850d26SRob Bradford* Reduce latency notification when rate limited (#6672) 46258850d26SRob Bradford* Fix `virtio-console` resizing (#6704) 46358850d26SRob Bradford* Fix resizing when console uses TTY (#6754) 46458850d26SRob Bradford* Avoid deadlock in PCI BAR reprogramming that can occur when adding a new 46558850d26SRob Bradford `virtio` device to a VM that has been restored (#6775) 46658850d26SRob Bradford* Fix console resizing after VM restore (#6748) 46758850d26SRob Bradford* Fix memory resize error due to incorrect bounds checks (#6736) 46858850d26SRob Bradford 46958850d26SRob Bradford### Sponsorships 47058850d26SRob Bradford 47158850d26SRob BradfordDuring this release cycle a new VFIO CI worker has been provided by Crusoe 47258850d26SRob BradfordEnergy and a new ARM64 CI worker has been provided by Ubicloud. 47358850d26SRob Bradford 47458850d26SRob Bradford### Contributors 47558850d26SRob Bradford 47658850d26SRob BradfordMany thanks to everyone who has contributed to our release: 47758850d26SRob Bradford 47858850d26SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com> 47958850d26SRob Bradford* Alyssa Ross <hi@alyssa.is> 48058850d26SRob Bradford* Anirudh Rayabharam <anrayabh@microsoft.com> 48158850d26SRob Bradford* BharatNarasimman <bharatn@microsoft.com> 48258850d26SRob Bradford* Bo Chen <chen.bo@intel.com> 48358850d26SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 48458850d26SRob Bradford* Jonas Scholz <Jonas.Scholz@bbscholz.de> 48558850d26SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 48658850d26SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 48758850d26SRob Bradford* Purna Pavan Chandra <paekkaladevi@microsoft.com> 48858850d26SRob Bradford* Rob Bradford <rbradford@rivosinc.com> 48958850d26SRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn> 49058850d26SRob Bradford* Songqian Li <sionli@tencent.com> 49158850d26SRob Bradford* Tom Dohrmann <erbse.13@gmx.de> 49258850d26SRob Bradford* Wei Liu <liuwe@microsoft.com> 49358850d26SRob Bradford* Wenyu Huang <huangwenyuu@outlook.com> 49458850d26SRob Bradford* Yuhong Zhong <yz@cs.columbia.edu> 49558850d26SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com> 49658850d26SRob Bradford 497ea3e2ff6SRob Bradford# v41.0 498ea3e2ff6SRob Bradford 499ea3e2ff6SRob BradfordThis release has been tracked in our [roadmap 500ea3e2ff6SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 501ea3e2ff6SRob Bradfordv41.0. The following user visible changes have been made: 502ea3e2ff6SRob Bradford 503ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support 504ea3e2ff6SRob Bradford 505ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires 506ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its 507ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features. 508ea3e2ff6SRob Bradford(#6318, #6467) 509ea3e2ff6SRob Bradford 510ea3e2ff6SRob Bradford### Sandboxing With Landlock Support 511ea3e2ff6SRob Bradford 512ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API 513ea3e2ff6SRob Bradfordhas been added - this can be used to restrict the files (and the read/write 514ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of 515ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be 516ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170) 517ea3e2ff6SRob Bradford 518ea3e2ff6SRob Bradford### Notable Performance Improvements 519ea3e2ff6SRob Bradford 520ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec` 521ea3e2ff6SRob Bradford structures (#6636) 522ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to 523ea3e2ff6SRob Bradford `virtio-block` giving a 60% improvement in single queue block throughput and 524ea3e2ff6SRob Bradford IOPs performance (#6580) 525ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586) 526ea3e2ff6SRob Bradford 527ea3e2ff6SRob Bradford### Notable Bug Fixes 528ea3e2ff6SRob Bradford 529ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657) 530ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API 531ea3e2ff6SRob Bradford access (#6647) 532ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now 533ea3e2ff6SRob Bradford included in the virtio-device seccomp filters for tests that use this (#6648) 534ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621) 535ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568) 536ea3e2ff6SRob Bradford 537ea3e2ff6SRob Bradford### Contributors 538ea3e2ff6SRob Bradford 539ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release: 540ea3e2ff6SRob Bradford 541ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is> 542ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com> 543ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com> 544ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 545ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de> 546ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com> 547ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 548ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 549ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com> 550ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com> 551ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com> 552ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com> 553ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com> 554ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com> 555ea3e2ff6SRob Bradford 556e9b26397SRob Bradford# v40.0 557e9b26397SRob Bradford 558e9b26397SRob BradfordThis release has been tracked in our [roadmap 559e9b26397SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 560e9b26397SRob Bradfordv40.0. The following user visible changes have been made: 561e9b26397SRob Bradford 562e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices 563e9b26397SRob Bradford 564e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using 565e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices. 566e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or 567e9b26397SRob Bradfordother file descriptor backed network devices. (#6286) 568e9b26397SRob Bradford 569e9b26397SRob Bradford### Notable Bug Fixes 570e9b26397SRob Bradford 571e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata 572e9b26397SRob Bradford (#6495) 573e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456) 574e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial` 575e9b26397SRob Bradford (#6486) 576e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has 577e9b26397SRob Bradford been introduced (#6482) 578e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding 579e9b26397SRob Bradford `cpuid` instructions and by seeding the in kernel file descriptor table 580e9b26397SRob Bradford (#6498, #6478) 581e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523) 582e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets 583e9b26397SRob Bradford (#6504) 584e9b26397SRob Bradford 585e9b26397SRob Bradford### Contributors 586e9b26397SRob Bradford 587e9b26397SRob BradfordMany thanks to everyone who has contributed to our release: 588e9b26397SRob Bradford 589e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com> 590e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com> 591e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 592e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com> 593e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com> 594e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 595e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 596e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 597e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com> 598e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com> 599e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com> 600e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai> 601e9b26397SRob Bradford* Songqian Li <sionli@tencent.com> 602e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com> 603e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com> 604e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 605e9b26397SRob Bradford* 606e9b26397SRob Bradford 6074f96fa15SRob Bradford# v39.0 6084f96fa15SRob Bradford 6094f96fa15SRob BradfordThis release has been tracked in our [roadmap 6104f96fa15SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 6114f96fa15SRob Bradfordv39.0. The following user visible changes have been made: 6124f96fa15SRob Bradford 6134f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments 6144f96fa15SRob Bradford 6154f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that 6164f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously 6174f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may 6184f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With 6194f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387) 6204f96fa15SRob Bradford 6214f96fa15SRob Bradford### Direct Booting with bzImages 6224f96fa15SRob Bradford 6234f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200) 6244f96fa15SRob Bradford 6254f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support 6264f96fa15SRob Bradford 6274f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the 6284f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235) 6294f96fa15SRob Bradford 6304f96fa15SRob Bradford### Guest NMI Injection Support 6314f96fa15SRob Bradford 6324f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the 6334f96fa15SRob Bradfordguest. (#6047) 6344f96fa15SRob Bradford 6354f96fa15SRob Bradford### Notable Bug Fixes 6364f96fa15SRob Bradford 6374f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353) 6384f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208) 6394f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247) 6404f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268) 6414f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock` 6424f96fa15SRob Bradford (#6306) 6434f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359) 6444f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372) 6454f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297, 6464f96fa15SRob Bradford #6319) 6474f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337, 6484f96fa15SRob Bradford #6338) 6494f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across 6504f96fa15SRob Bradford snapshot/restore (#6332, #6286) 6514f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274) 6524f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293) 6534f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230) 6544f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration 6554f96fa15SRob Bradford (#6326, #6265) 6564f96fa15SRob Bradford 6574f96fa15SRob Bradford### Contributors 6584f96fa15SRob Bradford 6594f96fa15SRob BradfordMany thanks to everyone who has contributed to our release: 6604f96fa15SRob Bradford 6614f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com> 6624f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com> 6634f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com> 6644f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke> 6654f96fa15SRob Bradford* Chris Webb <chris@arachsys.com> 6664f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 6674f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com> 6684f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com> 6694f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 6704f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 6714f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com> 6724f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 6734f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de> 6744f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com> 6754f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com> 6764f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com> 6774f96fa15SRob Bradford 678ef4fbf08SBo Chen# v38.0 679ef4fbf08SBo Chen 680ef4fbf08SBo ChenThis release has been tracked in our [roadmap 681ef4fbf08SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 682ef4fbf08SBo Chenv38.0. The following user visible changes have been made: 683ef4fbf08SBo Chen 684ef4fbf08SBo Chen### Group Rate Limiter on Block Devices 685ef4fbf08SBo Chen 686ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new 687ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O 688ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md) 689ef4fbf08SBo Chen 690ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread 691ef4fbf08SBo Chen 692ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices 693ef4fbf08SBo Chento specific host cpus. 694ef4fbf08SBo Chen 695ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault 696ef4fbf08SBo Chen 697ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel 698ef4fbf08SBo Chenmemory prefault. 699ef4fbf08SBo Chen 700ef4fbf08SBo Chen### New 'debug-console' Device 701ef4fbf08SBo Chen 702ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug 703ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug 704ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md). 705ef4fbf08SBo Chen 706ef4fbf08SBo Chen### Improved VFIO Device Support 707ef4fbf08SBo Chen 708ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO 709ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same 710ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving 711ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU 712ef4fbf08SBo Chenand an IB device). 713ef4fbf08SBo Chen 714ef4fbf08SBo Chen### Extended CPU Affinity Support 715ef4fbf08SBo Chen 716ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger 717ef4fbf08SBo Chenthan 255. 718ef4fbf08SBo Chen 719ef4fbf08SBo Chen### Notable Bug Fixes 720ef4fbf08SBo Chen 721ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software 722ef4fbf08SBo Chensuch as hwloc in the guest (#6146) 723ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141) 724ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062) 725ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095) 726ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106) 727ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196) 728ef4fbf08SBo Chen 729ef4fbf08SBo Chen### Contributors 730ef4fbf08SBo Chen 731ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release: 732ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is> 733ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com> 734ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com> 735ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com> 736ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com> 737ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com> 738ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 739ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 740ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com> 741ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 742ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com> 743ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 744ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com> 745ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com> 746ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com> 747ef4fbf08SBo Chen 7485e702dcdSBo Chen# v37.0 7495e702dcdSBo Chen 7505e702dcdSBo ChenThis release has been tracked in our [roadmap 7515e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 7525e702dcdSBo Chenv37.0. The following user visible changes have been made: 7535e702dcdSBo Chen 7545e702dcdSBo Chen### Long Term Support (LTS) Release 7555e702dcdSBo Chen 7565e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made 7575e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be 7585e702dcdSBo Chensupported between the point releases of the LTS. 7595e702dcdSBo Chen 7605e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices 7615e702dcdSBo Chen 7625e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI 7635e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and 7645e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance. 7655e702dcdSBo Chen 7665e702dcdSBo Chen### Configurable Named TAP Devices 7675e702dcdSBo Chen 7685e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP 7695e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud 7705e702dcdSBo ChenHypervisor (e.g. not existing TAP devices). 7715e702dcdSBo Chen 7725e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console 7735e702dcdSBo Chen 7745e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as 7755e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the 7765e702dcdSBo Chenlegacy serial device without losing performance benefits of using 7775e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as 7785e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86). 7795e702dcdSBo Chen 7805e702dcdSBo Chen### Faster VM Restoration from Snapshots 7815e702dcdSBo Chen 7825e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better 7835e702dcdSBo Chenimplementation of deserializing JSON files. 7845e702dcdSBo Chen 7855e702dcdSBo Chen### Notable Bug Fixes 7865e702dcdSBo Chen 7875e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache 7885e702dcdSBo Chen disabled (#5930) 7895e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956) 7905e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967) 7915e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025) 7925e702dcdSBo Chen 7935e702dcdSBo Chen### Contributors 7945e702dcdSBo Chen 7955e702dcdSBo ChenMany thanks to everyone who has contributed to our release: 7965e702dcdSBo Chen 7975e702dcdSBo Chen* Bo Chen <chen.bo@intel.com> 7985e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com> 7995e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com> 8005e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com> 8015e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com> 8025e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com> 8035e702dcdSBo Chen* Rui Chang <rui.chang@arm.com> 8045e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 8055e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 8065e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com> 8075e702dcdSBo Chen* Yi Wang <foxywang@tencent.com> 8085e702dcdSBo Chen* Yong He <alexyonghe@tencent.com> 8095e702dcdSBo Chen 810f5899d15SBo Chen# v36.0 811f5899d15SBo Chen 812f5899d15SBo ChenThis release has been tracked in our [roadmap 813f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 814f5899d15SBo Chenv36.0. The following user visible changes have been made: 815f5899d15SBo Chen 816f5899d15SBo Chen### Command Line Changes 817f5899d15SBo Chen 818f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line, 819f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax 820f5899d15SBo Chenchanges: 821f5899d15SBo Chen 822f5899d15SBo Chen* All `--option value` commands now are `--option=value`. 823f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`. 824f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`. 825f5899d15SBo Chen 826f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change. 827f5899d15SBo Chen 828f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI 829f5899d15SBo Chen 830f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor 831f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI 832f5899d15SBo Chen(`--version -v`). 833f5899d15SBo Chen 834f5899d15SBo Chen### NUMA Support for PCI segments 835f5899d15SBo Chen 836f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so 837f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA 838f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md) 839f5899d15SBo Chen 840f5899d15SBo Chen### CPU Topology Support on AMD Platforms 841f5899d15SBo Chen 842f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors. 843f5899d15SBo Chen 844f5899d15SBo Chen### Unix Socket Backend for Serial Port 845f5899d15SBo Chen 846f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing 847f5899d15SBo Chenusers to access the serial port using a Unix socket. 848f5899d15SBo Chen 849f5899d15SBo Chen### AIO Backend for Block Devices 850f5899d15SBo Chen 851f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block 852f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the 853f5899d15SBo Chenhost Operating System. 854f5899d15SBo Chen 855f5899d15SBo Chen### Documentation Improvements 856f5899d15SBo Chen 857f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data 858f5899d15SBo Chen* Various typo fixes 859f5899d15SBo Chen 860f5899d15SBo Chen### Notable Bug Fixes 861f5899d15SBo Chen 862f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845) 863f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is 864f5899d15SBo Chen enabled (#5834) 865f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893) 866f5899d15SBo Chen 867f5899d15SBo Chen### Contributors 868f5899d15SBo Chen 869f5899d15SBo ChenMany thanks to everyone who has contributed to our release: 870f5899d15SBo Chen 871f5899d15SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 872f5899d15SBo Chen* Bo Chen <chen.bo@intel.com> 873f5899d15SBo Chen* Dario Nieuwenhuis <dirbaio@dirbaio.net> 874f5899d15SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 875f5899d15SBo Chen* Jinank Jain <jinankjain@microsoft.com> 876f5899d15SBo Chen* Muminul Islam <muislam@microsoft.com> 877f5899d15SBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 878f5899d15SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 879f5899d15SBo Chen* Rob Bradford <rbradford@rivosinc.com> 880f5899d15SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 881f5899d15SBo Chen* Wei Liu <liuwe@microsoft.com> 882f5899d15SBo Chen* Yi Wang <foxywang@tencent.com> 883f5899d15SBo Chen* dom.song <dom.song@amperecomputing.com> 884f5899d15SBo Chen 885339912a5SBo Chen# v35.0 886339912a5SBo Chen 887339912a5SBo ChenThis release has been tracked in our [roadmap 888339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 889339912a5SBo Chenv35.0. The following user visible changes have been made: 890339912a5SBo Chen 891339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+ 892339912a5SBo Chen 893339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor, 894339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation 895339912a5SBo Chennow support both situations. 896339912a5SBo Chen 897339912a5SBo Chen### User Specified Serial Number for `virtio-block` 898339912a5SBo Chen 899339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to 900339912a5SBo Chenspecify a serial number for block devices which will be guest visible. 901339912a5SBo Chen 902339912a5SBo Chen### vCPU TSC Frequency Included in Migration State 903339912a5SBo Chen 904339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC 905339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping. 906339912a5SBo Chen 907339912a5SBo Chen### Notable Bug Fixes 908339912a5SBo Chen 909339912a5SBo Chen* Disallow concurrent CPU resizing (#5668) 910339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681) 911339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719) 912339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720) 913339912a5SBo Chen* Ensure probing reads are block size aligned (#5727) 914339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices 915339912a5SBo Chen (#5712, #5750, #5762, #5763) 916339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772) 917339912a5SBo Chen 918339912a5SBo Chen### Contributors 919339912a5SBo Chen 920339912a5SBo ChenMany thanks to everyone who has contributed to our release: 921339912a5SBo Chen 922339912a5SBo Chen* Alyssa Ross <hi@alyssa.is> 923339912a5SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 924339912a5SBo Chen* Bo Chen <chen.bo@intel.com> 925339912a5SBo Chen* Christian Blichmann <cblichmann@google.com> 926339912a5SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 927339912a5SBo Chen* Jinank Jain <jinankjain@microsoft.com> 928339912a5SBo Chen* Julian Stecklina <julian.stecklina@cyberus-technology.de> 929339912a5SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 930339912a5SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 931339912a5SBo Chen* Rob Bradford <rbradford@rivosinc.com> 932339912a5SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 933339912a5SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 934339912a5SBo Chen* Wei Liu <liuwe@microsoft.com> 935339912a5SBo Chen* Yi Wang <foxywang@tencent.com> 936339912a5SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 937339912a5SBo Chen 938487a43cdSRob Bradford# v34.0 939487a43cdSRob Bradford 940487a43cdSRob BradfordThis release has been tracked in our [roadmap 941487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 942487a43cdSRob Bradfordv34.0. The following user visible changes have been made: 943487a43cdSRob Bradford 944487a43cdSRob Bradford### Paravirtualised Panic Device Support 945487a43cdSRob Bradford 946487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has 947487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new 948487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526) 949487a43cdSRob Bradford 950487a43cdSRob Bradford### Improvements to VM Core Dump 951487a43cdSRob Bradford 952487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause 953487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604) 954487a43cdSRob Bradford 955487a43cdSRob Bradford### QCOW2 Support for Backing Files 956487a43cdSRob Bradford 957487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using 958487a43cdSRob Bradfordbacking files. (#5573) 959487a43cdSRob Bradford 960487a43cdSRob Bradford### Minimum Host Kernel Bump 961487a43cdSRob Bradford 962487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix 963487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626) 964487a43cdSRob Bradford 965487a43cdSRob Bradford### Notable Bug Fixes 966487a43cdSRob Bradford 967487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel 968487a43cdSRob Bradford carries out this job with KVM) (#5561). 969487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather 970487a43cdSRob Bradford than MSI-X (#5658). 971487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be 972487a43cdSRob Bradford blocked until that asynchronous event has been received (#5645). 973487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing 974487a43cdSRob Bradford when all vCPUs are paused (#5611). 975487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633). 976487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573). 977487a43cdSRob Bradford 978487a43cdSRob Bradford### Contributors 979487a43cdSRob Bradford 980487a43cdSRob BradfordMany thanks to everyone who has contributed to our release: 981487a43cdSRob Bradford 982487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is> 983487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 984487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com> 985487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com> 986487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com> 987487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com> 988487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 989487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 990487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 991487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 992487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 993487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com> 994487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com> 995487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 996487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com> 997487a43cdSRob Bradford 9986e0e6323SBo Chen# v33.0 9996e0e6323SBo Chen 10006e0e6323SBo ChenThis release has been tracked in our [roadmap 10016e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 10026e0e6323SBo Chenv33.0. The following user visible changes have been made: 10036e0e6323SBo Chen 10046e0e6323SBo Chen### D-Bus based API 10056e0e6323SBo Chen 10066e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST 10076e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be 10086e0e6323SBo Chenfound in the [API documentation](docs/api.md). 10096e0e6323SBo Chen 10106e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64 10116e0e6323SBo Chen 10126e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the 10136e0e6323SBo Chenguest on AArch64. 10146e0e6323SBo Chen 10156e0e6323SBo Chen### Notable Bug Fixes 10166e0e6323SBo Chen 10176e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453) 10186e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469) 10196e0e6323SBo Chen* Fix TDX initialization (#5454) 10206e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496) 10216e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty 10226e0e6323SBo Chen (#5506, #5524) 10236e0e6323SBo Chen* Populate APIC ID properly (#5512) 10246e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522) 10256e0e6323SBo Chen 10266e0e6323SBo Chen### Contributors 10276e0e6323SBo Chen 10286e0e6323SBo ChenMany thanks to everyone who has contributed to our release: 10296e0e6323SBo Chen 10306e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is> 10316e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 10326e0e6323SBo Chen* Bo Chen <chen.bo@intel.com> 10336e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 10346e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 10356e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com> 10366e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 10376e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com> 10386e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 10396e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 10406e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 10416e0e6323SBo Chen 104242ca292dSRob Bradford# v32.0 104342ca292dSRob Bradford 104442ca292dSRob BradfordThis release has been tracked in our [roadmap 104542ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 104642ca292dSRob Bradfordv32.0. The following user visible changes have been made: 104742ca292dSRob Bradford 104842ca292dSRob Bradford### Increased PCI Segment Limit 104942ca292dSRob Bradford 105042ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16). 105142ca292dSRob Bradford 105242ca292dSRob Bradford### API Changes 105342ca292dSRob Bradford 105442ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details. 105542ca292dSRob Bradford (#5348) 105642ca292dSRob Bradford 105742ca292dSRob Bradford### Notable Bug Fixes 105842ca292dSRob Bradford 105942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 106042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 106142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 106242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 106342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 106442ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357) 106542ca292dSRob Bradford* Fixes for TTY reset (#5414) 106642ca292dSRob Bradford* CPU topology fixes on MSHV (#5325) 106742ca292dSRob Bradford* Seccomp fixes for older distributions (#5397) 106842ca292dSRob Bradford 106942ca292dSRob Bradford### Contributors 107042ca292dSRob Bradford 107142ca292dSRob BradfordMany thanks to everyone who has contributed to our release: 107242ca292dSRob Bradford 107342ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is> 107442ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 107542ca292dSRob Bradford* Bo Chen <chen.bo@intel.com> 107642ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com> 107742ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com> 107842ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 107942ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com> 108042ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 108142ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 108242ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com> 108342ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com> 108442ca292dSRob Bradford 108542ca292dSRob Bradford# v31.1 108642ca292dSRob Bradford 108742ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed: 108842ca292dSRob Bradford 108942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 109042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 109142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 109242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 109342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 109442ca292dSRob Bradford 1095f3522e85SMichael Zhao# v31.0 1096f3522e85SMichael Zhao 1097f3522e85SMichael ZhaoThis release has been tracked in our [roadmap 1098f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 1099f3522e85SMichael Zhaov31.0. The following user visible changes have been made: 1100f3522e85SMichael Zhao 1101f3522e85SMichael Zhao### Update to Latest `acpi_tables` 1102f3522e85SMichael Zhao 1103f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables). 1104f3522e85SMichael ZhaoThere has been significant API changes in the crate. 1105f3522e85SMichael Zhao 1106f3522e85SMichael Zhao### Update Reference Kernel to 6.2 1107f3522e85SMichael Zhao 1108f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2. 1109f3522e85SMichael Zhao 1110f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler 1111f3522e85SMichael Zhao 1112f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize 1113f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable. 1114f3522e85SMichael Zhao 1115f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one 1116f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console 1117f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both 1118f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler 1119f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5. 1120f3522e85SMichael Zhao 1121f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file` 1122f3522e85SMichael Zhao 1123f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported. 1124f3522e85SMichael Zhao 1125f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone` 1126f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for 1127f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had 1128f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory. 1129f3522e85SMichael Zhao 1130f3522e85SMichael Zhao### Documentation Improvements 1131f3522e85SMichael Zhao 1132f3522e85SMichael Zhao* Various improvements in API document 1133f3522e85SMichael Zhao* Improvements in Doc comments 1134f3522e85SMichael Zhao* Updated Slack channel information in README 1135f3522e85SMichael Zhao 1136f3522e85SMichael Zhao### Notable Bug Fixes 1137f3522e85SMichael Zhao 1138f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS 1139f3522e85SMichael Zhao client. 1140f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API 1141f3522e85SMichael Zhao endpoint. 1142f3522e85SMichael Zhao 1143f3522e85SMichael Zhao### Contributors 1144f3522e85SMichael Zhao 1145f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release: 1146f3522e85SMichael Zhao 1147f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is> 1148f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com> 1149f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io> 1150f3522e85SMichael Zhao* Dom <peng6662001@163.com> 1151f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com> 1152f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com> 1153f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr> 1154f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 1155f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com> 1156f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com> 1157f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com> 1158f3522e85SMichael Zhao* Yang <ailin.yang@intel.com> 1159f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com> 1160f3522e85SMichael Zhao 1161ece0e6faSBo Chen# v30.0 1162ece0e6faSBo Chen 1163ece0e6faSBo ChenThis release has been tracked in our [roadmap 1164ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 1165ece0e6faSBo Chenv30.0. The following user visible changes have been made: 1166ece0e6faSBo Chen 1167ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size 1168ece0e6faSBo Chen 1169ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command 1170ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There 1171ece0e6faSBo Chenwere several syntax changes: 1172ece0e6faSBo Chen 1173ece0e6faSBo Chen* All `--option=value` commands now are `--option value`. 1174ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`. 1175ece0e6faSBo Chen* The `-vvv` command now is `-v -v -v` 1176ece0e6faSBo Chen 1177ece0e6faSBo Chen### Basic vfio-user Server Support 1178ece0e6faSBo Chen 1179ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support 1180ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its 1181ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the 1182ece0e6faSBo Chen`rust-vmm` organization. 1183ece0e6faSBo Chen 1184ece0e6faSBo Chen### Heap Profiling Support 1185ece0e6faSBo Chen 1186ece0e6faSBo ChenA new building target is added for profiling purposes with examples of 1187ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature. 1188ece0e6faSBo Chen 1189ece0e6faSBo Chen### Documentation Improvements 1190ece0e6faSBo Chen 1191ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building 1192ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim), 1193abcbf434SRuoqing Hereferences to [TDX Linux](https://github.com/intel/tdx-linux), and 1194ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also, 1195ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the 1196ece0e6faSBo Chenexisting 'profiling' documentation. 1197ece0e6faSBo Chen 1198ece0e6faSBo Chen### Notable Bug Fixes 1199ece0e6faSBo Chen 1200ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206) 1201ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211) 1202ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179) 1203ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151) 1204ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186) 1205ece0e6faSBo Chen 1206ece0e6faSBo Chen### Contributors 1207ece0e6faSBo Chen 1208ece0e6faSBo ChenMany thanks to everyone who has contributed to our release: 1209ece0e6faSBo Chen 1210ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 1211ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com> 1212ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com> 1213ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com> 1214ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com> 1215ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com> 1216ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com> 1217ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 1218ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 1219ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 1220ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com> 1221ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 1222ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com> 1223ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com> 1224ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com> 1225ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 1226ece0e6faSBo Chen 1227ece0e6faSBo Chen# v28.2 1228ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed: 1229ece0e6faSBo Chen 1230ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034) 1231ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037) 1232ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095) 1233ece0e6faSBo Chen 123422cf8c97SRob Bradford# v29.0 123522cf8c97SRob Bradford 123622cf8c97SRob BradfordThis release has been tracked in our [roadmap 123722cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 123822cf8c97SRob Bradfordv29.0. The following user visible changes have been made: 123922cf8c97SRob Bradford 124022cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM 124122cf8c97SRob Bradford 124222cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV 124322cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use. 124422cf8c97SRob Bradford 124522cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements 124622cf8c97SRob Bradford 124722cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration 124822cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older 124922cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially 125022cf8c97SRob Bradfordsupported but has worked for some versions.) 125122cf8c97SRob Bradford 125222cf8c97SRob Bradford### Heap Allocation Improvements 125322cf8c97SRob Bradford 125422cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with 125522cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size. 125622cf8c97SRob Bradford 125722cf8c97SRob Bradford### `ch-remote` Improvements 125822cf8c97SRob Bradford 125922cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to 126022cf8c97SRob Bradford`ch-remote`. 126122cf8c97SRob Bradford 126222cf8c97SRob Bradford### `AArch64` Documentation Integration 126322cf8c97SRob Bradford 126422cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main 126522cf8c97SRob BradfordREADME. 126622cf8c97SRob Bradford 126722cf8c97SRob Bradford### `virtio-block` Counters Enhancement 126822cf8c97SRob Bradford 126922cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max 127022cf8c97SRob Bradfordlatency counters. 127122cf8c97SRob Bradford 127222cf8c97SRob Bradford### TCP Offload Control 127322cf8c97SRob Bradford 127422cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of 127522cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments 127622cf8c97SRob Bradfordwhere the hardware lacks support for the offloading. 127722cf8c97SRob Bradford 127822cf8c97SRob Bradford### Notable Bug Fixes 127922cf8c97SRob Bradford 128022cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an 128122cf8c97SRob Bradford infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 128222cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 128322cf8c97SRob Bradford (#4924, #4949) 128422cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 128522cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016) 128622cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034) 128722cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037) 128822cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095) 128922cf8c97SRob Bradford 129022cf8c97SRob Bradford### Removals 129122cf8c97SRob Bradford 129222cf8c97SRob BradfordNo functionality has been removed in this release. 129322cf8c97SRob Bradford 129422cf8c97SRob Bradford### Deprecations 129522cf8c97SRob Bradford 129622cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or 129722cf8c97SRob Bradford `MemoryConfig::file` has been deprecated. This was originally used for 129822cf8c97SRob Bradford supporting huge pages or shared memory backing which is now natively supported 129922cf8c97SRob Bradford (#5085) 130022cf8c97SRob Bradford 130122cf8c97SRob Bradford### Contributors 130222cf8c97SRob Bradford 130322cf8c97SRob BradfordMany thanks to everyone who has contributed to our release: 130422cf8c97SRob Bradford 130522cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com> 130622cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com> 130722cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com> 130822cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com> 130922cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 131022cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com> 131122cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com> 131222cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 131322cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com> 131422cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 131522cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com> 131622cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com> 131722cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com> 131822cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com> 131922cf8c97SRob Bradford 132022cf8c97SRob Bradford 132122cf8c97SRob Bradford# v28.1 132222cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed: 132322cf8c97SRob Bradford 132422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that 132522cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 132622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 132722cf8c97SRob Bradford (#4924, #4949) 132822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 132922cf8c97SRob Bradford* Improve README and documentation 133022cf8c97SRob Bradford 133166460765SRob Bradford# v28.0 133266460765SRob Bradford 133366460765SRob BradfordThis release has been tracked in our new [roadmap 133466460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 133566460765SRob Bradfordv28.0. 133666460765SRob Bradford 133766460765SRob Bradford### Community Engagement (Reminder) 133866460765SRob Bradford 133966460765SRob BradfordJust a reminder that we have a new mailing list to support broader community 134066460765SRob Bradforddiscussions. Please consider 134166460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use 134266460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud 134366460765SRob BradfordHypervisor development. 134466460765SRob Bradford 134566460765SRob Bradford### Long Term Support (LTS) Release 134666460765SRob Bradford 134766460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS 134866460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18 134966460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point 135066460765SRob Bradfordreleases of the LTS. 135166460765SRob Bradford 135266460765SRob Bradford### Virtualised TPM Support 135366460765SRob Bradford 135442e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM 135566460765SRob Bradforddocumentation](docs/tpm.md). 135666460765SRob Bradford 135766460765SRob Bradford### Transparent Huge Page Support 135866460765SRob Bradford 135966460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back 136066460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`) 136166460765SRob Bradfordthen this will be used resulting in improved boot performance. 136266460765SRob Bradford 136366460765SRob Bradford### README Quick Start Improved 136466460765SRob Bradford 136566460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the 136666460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries. 136766460765SRob Bradford 136866460765SRob Bradford### Notable Bug Fixes 136966460765SRob Bradford 137066460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher 137166460765SRob Bradford memory consumption (#4835) 137266460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799) 137366460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767) 137466460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863) 137566460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811) 137666460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on 137766460765SRob Bradford newer Linux kernels (#4744) 137866460765SRob Bradford* Error on reboot from race to close TAP devices (#4871) 137966460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888) 138066460765SRob Bradford 138166460765SRob Bradford### Removals 138266460765SRob Bradford 138366460765SRob BradfordThe following functionality has been removed: 138466460765SRob Bradford 138566460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511) 138666460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926) 138766460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737) 138866460765SRob Bradford 138966460765SRob Bradford### Contributors 139066460765SRob Bradford 139166460765SRob BradfordMany thanks to everyone who has contributed to our release: 139266460765SRob Bradford 139366460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 139466460765SRob Bradford* Bo Chen <chen.bo@intel.com> 139566460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 139666460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 139766460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 139866460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com> 139966460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn> 140066460765SRob Bradford* Michael Zhao <michael.zhao@arm.com> 140166460765SRob Bradford* Muminul Islam <muislam@microsoft.com> 140266460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 140366460765SRob Bradford* Rob Bradford <robert.bradford@intel.com> 140466460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 140566460765SRob Bradford* Wei Liu <liuwe@microsoft.com> 140666460765SRob Bradford 14072ba6a9bfSRob Bradford# v27.0 14082ba6a9bfSRob Bradford 14092ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap 14102ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 14112ba6a9bfSRob Bradfordv27.0. 14122ba6a9bfSRob Bradford 14132ba6a9bfSRob Bradford### Community Engagement 14142ba6a9bfSRob Bradford 14152ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions. 14162ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an 14172ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly. 14182ba6a9bfSRob Bradford 14192ba6a9bfSRob Bradford### Prebuilt Packages 14202ba6a9bfSRob Bradford 14212ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this 14222ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md) 14232ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different 14242ba6a9bfSRob Bradfordfirmware options available. 14252ba6a9bfSRob Bradford 14262ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest 14272ba6a9bfSRob Bradford 14282ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed 14292ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is 14302ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for 14312ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend 14322ba6a9bfSRob Bradford(#4658, #4676.) 14332ba6a9bfSRob Bradford 14342ba6a9bfSRob Bradford### Boot Tracing 14352ba6a9bfSRob Bradford 14362ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added 14372ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.) 14382ba6a9bfSRob Bradford 14392ba6a9bfSRob Bradford### Simplified Build Feature Flags 14402ba6a9bfSRob Bradford 14412ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified: 14422ba6a9bfSRob Bradford 14432ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors 14442ba6a9bfSRob Bradford (with `kvm` enabled by default), 14452ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support 14462ba6a9bfSRob Bradford now it is now possible to compile with the `mshv` feature (#4696,) 14472ba6a9bfSRob Bradford* `tracing` adds support for boot tracing, 14482ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb` 14492ba6a9bfSRob Bradford feature) and dumping guest memory. 14502ba6a9bfSRob Bradford 14512ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by 14522ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.) 14532ba6a9bfSRob Bradford 14542ba6a9bfSRob Bradford### Asynchronous Kernel Loading 14552ba6a9bfSRob Bradford 14562ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like 14572ba6a9bfSRob Bradfordx86-64. (#4538) 14582ba6a9bfSRob Bradford 14592ba6a9bfSRob Bradford### GDB Support for AArch64 14602ba6a9bfSRob Bradford 14612ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now 14622ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64. 14632ba6a9bfSRob Bradford 14642ba6a9bfSRob Bradford### Notable Bug Fixes 14652ba6a9bfSRob Bradford 14662ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue 14672ba6a9bfSRob Bradford where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.) 14682ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices 14692ba6a9bfSRob Bradford (#4520, #4533, #4535.) 14702ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697) 14712ba6a9bfSRob Bradford 14722ba6a9bfSRob Bradford### Deprecations 14732ba6a9bfSRob Bradford 14742ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should 14752ba6a9bfSRob Bradfordplan to use alternatives. 14762ba6a9bfSRob Bradford 14772ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated. 14782ba6a9bfSRob Bradford All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware) 14792ba6a9bfSRob Bradford support booting with PVH so support for loading firmware in a legacy mode is no 14802ba6a9bfSRob Bradford longer needed. This functionality will be removed in the next release. 14812ba6a9bfSRob Bradford 14822ba6a9bfSRob Bradford### Contributors 14832ba6a9bfSRob Bradford 14842ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release: 14852ba6a9bfSRob Bradford 14862ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 14872ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com> 14882ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com> 14892ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 14902ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de> 14912ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com> 14922ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 14932ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com> 14942ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 14952ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com> 14962ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com> 14972ba6a9bfSRob Bradford 1498ed9e54d6SRob Bradford# v26.0 1499ed9e54d6SRob Bradford 1500ed9e54d6SRob BradfordThis release has been tracked through the [v26.0 1501ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30). 1502ed9e54d6SRob Bradford 1503ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform` 1504ed9e54d6SRob Bradford 1505ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying 1506ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest) 1507ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.) 1508ed9e54d6SRob Bradford 1509ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support 1510ed9e54d6SRob Bradford 1511ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same 1512ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime. 1513ed9e54d6SRob Bradford 1514ed9e54d6SRob Bradford### Notable Bug Fixes 1515ed9e54d6SRob Bradford 1516ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454) 15177bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered 1518ed9e54d6SRob Bradford out (#4456) 1519ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363) 1520ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted 1521ed9e54d6SRob Bradford (#4269, #4293) 1522ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362) 1523ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing 1524ed9e54d6SRob Bradford the`virtio-fs` driver in OVMF to be used (#4341, #4314) 1525ed9e54d6SRob Bradford* VHDX file format header fix (#4291) 1526ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463) 1527ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442) 1528ed9e54d6SRob Bradford 1529ed9e54d6SRob Bradford### Deprecations 1530ed9e54d6SRob Bradford 1531ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should 1532ed9e54d6SRob Bradfordplan to use alternatives. 1533ed9e54d6SRob Bradford 1534ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been 1535ed9e54d6SRob Bradford moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document 1536ed9e54d6SRob Bradford has been updated to reflect the change and the old API members continue to 1537ed9e54d6SRob Bradford function and are mapped to the new version. The expectation is that these old 1538ed9e54d6SRob Bradford versions will be removed in the v28.0 release. 1539ed9e54d6SRob Bradford 1540ed9e54d6SRob Bradford### Removals 1541ed9e54d6SRob Bradford 1542ed9e54d6SRob BradfordThe following functionality has been removed: 1543ed9e54d6SRob Bradford 1544ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and 154542e9632cSJosh Soref equivalent. This was residual from the removal of the `vhost-user-block` 1546ed9e54d6SRob Bradford spawning feature (#4402.) 1547ed9e54d6SRob Bradford 1548ed9e54d6SRob Bradford### Contributors 1549ed9e54d6SRob Bradford 1550ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release: 1551ed9e54d6SRob Bradford 1552ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is> 1553ed9e54d6SRob Bradford* Anatol Belski <ab@php.net> 1554ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com> 1555ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com> 1556ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 1557ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com> 1558ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1559ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1560ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1561ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com> 1562ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com> 1563ed9e54d6SRob Bradford 1564b132cd21SRob Bradford# v25.0 1565b132cd21SRob Bradford 1566b132cd21SRob BradfordThis release has been tracked through the [v25.0 1567b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29). 1568b132cd21SRob Bradford 1569b132cd21SRob Bradford### `ch-remote` Improvements 1570b132cd21SRob Bradford 1571b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON 1572b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM. 1573b132cd21SRob Bradford 1574b132cd21SRob Bradford### VM "Coredump" Support 1575b132cd21SRob Bradford 1576b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory 1577b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012) 1578b132cd21SRob Bradford 1579b132cd21SRob Bradford### Notable Bug Fixes 1580b132cd21SRob Bradford 1581b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248) 1582b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244) 1583b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279) 1584b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286) 1585b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux 1586b132cd21SRob Bradford 5.16 (#4156) 1587b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer 1588b132cd21SRob Bradford Linux guest 1589b132cd21SRob Bradford 1590b132cd21SRob Bradford### Removals 1591b132cd21SRob Bradford 1592b132cd21SRob BradfordThe following functionality has been removed: 1593b132cd21SRob Bradford 1594b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed 1595b132cd21SRob Bradford (#3968) 1596b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889) 1597b132cd21SRob Bradford 1598b132cd21SRob Bradford### Contributors 1599b132cd21SRob Bradford 1600b132cd21SRob BradfordMany thanks to everyone who has contributed to our release: 1601b132cd21SRob Bradford 1602b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com> 1603b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 1604b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1605b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1606b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1607b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com> 1608b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 1609b132cd21SRob Bradford 16100150de55SSebastien Boeuf# v24.0 16110150de55SSebastien Boeuf 16120150de55SSebastien BoeufThis release has been tracked through the [v24.0 16130150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28). 16140150de55SSebastien Boeuf 16150150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu` 16160150de55SSebastien Boeuf 16170150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default 16180150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with 16190150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access 16200150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM 16210150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing 16220150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU. 16230150de55SSebastien Boeuf 16240150de55SSebastien Boeuf### Ensure Identifiers Uniqueness 16250150de55SSebastien Boeuf 16260150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical 16270150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot 16280150de55SSebastien Boeufor whenever a device was hot plugged into the VM. 16290150de55SSebastien Boeuf 16300150de55SSebastien Boeuf### Sparse Mmap support 16310150de55SSebastien Boeuf 16320150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This 16330150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped. 16340150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the 16350150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly 16360150de55SSebastien Boeufimpacts the performance related to this device. 16370150de55SSebastien Boeuf 16380150de55SSebastien Boeuf### Expose Platform Serial Number 16390150de55SSebastien Boeuf 16400150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to 16410150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the 16420150de55SSebastien Boeufguest through the SMBIOS. 16430150de55SSebastien Boeuf 16440150de55SSebastien Boeuf### Notable Bug Fixes 16450150de55SSebastien Boeuf 16460150de55SSebastien Boeuf* Fix loading RAW firmware (#4072) 16470150de55SSebastien Boeuf* Reject compressed QCOW images (#4055) 16480150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003) 16490150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069) 16500150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983) 16510150de55SSebastien Boeuf 16520150de55SSebastien Boeuf### Notable Improvements 16530150de55SSebastien Boeuf 16540150de55SSebastien Boeuf* Refactor interrupt handling (#4083) 16550150de55SSebastien Boeuf* Load kernel asynchronously (#4022) 16560150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013) 16570150de55SSebastien Boeuf 16580150de55SSebastien Boeuf### Deprecations 16590150de55SSebastien Boeuf 16600150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should 16610150de55SSebastien Boeufplan to use alternatives 16620150de55SSebastien Boeuf 16630150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated 16640150de55SSebastien Boeuf (#3968) 16650150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 16660150de55SSebastien Boeuf 16670150de55SSebastien Boeuf### New on the Website 16680150de55SSebastien Boeuf 16690150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual 16700150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine) 16710150de55SSebastien Boeufhas been added to the Cloud Hypervisor website. 16720150de55SSebastien Boeuf 16730150de55SSebastien Boeuf### Contributors 16740150de55SSebastien Boeuf 16750150de55SSebastien BoeufMany thanks to everyone who has contributed to our release: 16760150de55SSebastien Boeuf 16770150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com> 16780150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com> 16790150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 16800150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io> 16810150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com> 16820150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 16830150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 16840150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com> 16850150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com> 16860150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 16870150de55SSebastien Boeuf 16880150de55SSebastien Boeuf# v23.1 16890150de55SSebastien Boeuf 16900150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed: 16910150de55SSebastien Boeuf 16920150de55SSebastien Boeuf* Add some missing seccomp rules 16930150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal 16940150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026) 16950150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device 16960150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs 16970150de55SSebastien Boeuf 16980c9c56f5SRob Bradford# v23.0 16990c9c56f5SRob Bradford 17000c9c56f5SRob BradfordThis release has been tracked through the [v23.0 17010c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27). 17020c9c56f5SRob Bradford 17030c9c56f5SRob Bradford### vDPA Support 17040c9c56f5SRob Bradford 17050c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but 17060c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API 17070c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor. 17080c9c56f5SRob Bradford 17090c9c56f5SRob Bradford### Updated OS Support list 17100c9c56f5SRob Bradford 17110c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to 17120c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed. 17130c9c56f5SRob Bradford 17140c9c56f5SRob Bradford### `AArch64` Memory Map Improvements 17150c9c56f5SRob Bradford 17160c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of 17170c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its 17180c9c56f5SRob Bradfordallocated RAM. (#3938) 17190c9c56f5SRob Bradford 17200c9c56f5SRob Bradford### `AMX` Support 17210c9c56f5SRob Bradford 17220c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the 17230c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime 17240c9c56f5SRob Bradfordenabling with `--cpu features=amx`. 17250c9c56f5SRob Bradford 17260c9c56f5SRob Bradford### Notable Bug Fixes 17270c9c56f5SRob Bradford 17280c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887) 17290c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914) 17300c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with 17310c9c56f5SRob Bradford `virtio-mem` (#3883) 17320c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the 17330c9c56f5SRob Bradford vIOMMU (#3870) 17340c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access 17350c9c56f5SRob Bradford (#3848) 17360c9c56f5SRob Bradford 17370c9c56f5SRob Bradford### Deprecations 17380c9c56f5SRob Bradford 17390c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should 17400c9c56f5SRob Bradfordplan to use alternatives 17410c9c56f5SRob Bradford 17420c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated 17430c9c56f5SRob Bradford (#3968) 17440c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 17450c9c56f5SRob Bradford 17460c9c56f5SRob Bradford### Contributors 17470c9c56f5SRob Bradford 17480c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release: 17490c9c56f5SRob Bradford 17500c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com> 17510c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 17520c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com> 17530c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 17540c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io> 17550c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com> 17560c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com> 17570c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 17580c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com> 17590c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com> 17600c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 17610c9c56f5SRob Bradford 17620c9c56f5SRob Bradford# v22.1 17630c9c56f5SRob Bradford 17640c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed: 17650c9c56f5SRob Bradford 17660c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827) 17670c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829) 17680c9c56f5SRob Bradford 17696aa10938SRob Bradford# v22.0 17706aa10938SRob Bradford 17710c9c56f5SRob BradfordThis release has been tracked through the [v22.0 17720c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25). 17736aa10938SRob Bradford 17746aa10938SRob Bradford### GDB Debug Stub Support 17756aa10938SRob Bradford 17766aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled 17776aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in 17786aa10938SRob Bradfordthe [gdb 17796aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md). 17806aa10938SRob Bradford 17816aa10938SRob Bradford### `virtio-iommu` Backed Segments 17826aa10938SRob Bradford 17836aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g. 17846aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that 17856aa10938SRob Bradfordwill place all the specified segments behind the IOMMU. 17866aa10938SRob Bradford 17876aa10938SRob Bradford### Before Boot Configuration Changes 17886aa10938SRob Bradford 17896aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices, 17906aa10938SRob Bradfordresize) before the VM is booted. 17916aa10938SRob Bradford 17926aa10938SRob Bradford### `virtio-balloon` Free Page Reporting 17936aa10938SRob Bradford 17946aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages 17956aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that 17966aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved 17976aa10938SRob Bradfordmemory density. 17986aa10938SRob Bradford 17996aa10938SRob Bradford### Support for Direct Kernel Booting with TDX 18006aa10938SRob Bradford 18016aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to 18026aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX 18036aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim) 18046aa10938SRob Bradfordhas been updated for this usage. 18056aa10938SRob Bradford 18066aa10938SRob Bradford### PMU Support for AArch64 18076aa10938SRob Bradford 18086aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be 18096aa10938SRob Bradfordexposed automatically if available from the host. 18106aa10938SRob Bradford 18110c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License 18126aa10938SRob Bradford 18136aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0 18146aa10938SRob BradfordInternational" license which is aligned with the project charter under the 18156aa10938SRob BradfordLinux Foundation. 18166aa10938SRob Bradford 18176aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd` 18186aa10938SRob Bradford 18196aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) 18206aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic" 18216aa10938SRob Bradfordversion. 18226aa10938SRob Bradford 18236aa10938SRob Bradford### Notable Bug Fixes 18246aa10938SRob Bradford 18256aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785) 18266aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689) 18276aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677) 18286aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607) 18296aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578) 18306aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609) 18316aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720) 18326aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737) 18336aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733) 18346aa10938SRob Bradford 18356aa10938SRob Bradford### Contributors 18366aa10938SRob Bradford 18376aa10938SRob BradfordMany thanks to everyone who has contributed to our release: 18386aa10938SRob Bradford 18396aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com> 18406aa10938SRob Bradford* Barret Rhoden <brho@google.com> 18416aa10938SRob Bradford* Bo Chen <chen.bo@intel.com> 18426aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 18436aa10938SRob Bradford* Feng Ye <yefeng@smartx.com> 18446aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com> 18456aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 18466aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 18476aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com> 18486aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com> 18496aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 18506aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com> 18516aa10938SRob Bradford 185295ca7997SRob Bradford# v21.0 185395ca7997SRob Bradford 185495ca7997SRob BradfordThis release has been tracked through the [v21.0 185595ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24). 185695ca7997SRob Bradford 185795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade) 185895ca7997SRob Bradford 18596aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been 18606aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to 18616aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote 18626aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the 18636aa10938SRob Bradfordorder of 50ms vs 3s. (#3566) 186495ca7997SRob Bradford 186595ca7997SRob Bradford### Recommended Kernel is Now 5.15 186695ca7997SRob Bradford 18676aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel 18686aa10938SRob Bradfordis now 5.15. (#3530) 186995ca7997SRob Bradford 187095ca7997SRob Bradford### Notable Bug fixes 187195ca7997SRob Bradford 18727bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562) 187395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585) 187495ca7997SRob Bradford* Support live migration within firmware (#3586) 18757bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548) 187695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587) 187795ca7997SRob Bradford 187895ca7997SRob Bradford### Contributors 187995ca7997SRob Bradford 188095ca7997SRob BradfordMany thanks to everyone who has contributed to our release: 188195ca7997SRob Bradford 188295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 188395ca7997SRob Bradford* Barret Rhoden <brho@google.com> 188495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com> 188595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 188695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com> 188795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn> 188895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com> 188995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com> 189095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com> 189195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com> 189295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 189395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com> 189495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com> 189595ca7997SRob Bradford 189695ca7997SRob Bradford# v20.2 189795ca7997SRob Bradford 189895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 189995ca7997SRob Bradford 190095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize) 190195ca7997SRob Bradford when this fails due to older kernel (#3456) 190295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused 190395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised 190495ca7997SRob Bradford (#3496) 190595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497) 190695ca7997SRob Bradford 190795ca7997SRob Bradford# v20.1 190895ca7997SRob Bradford 190995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 191095ca7997SRob Bradford 191195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450) 191295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401) 191395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432) 191495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM 191595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore 191695ca7997SRob Bradford 19177fc0776aSSebastien Boeuf# v20.0 19187fc0776aSSebastien Boeuf 19197fc0776aSSebastien BoeufThis release has been tracked through the [v20.0 19207fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23). 19217fc0776aSSebastien Boeuf 19227fc0776aSSebastien Boeuf### Multiple PCI segments support 19237fc0776aSSebastien Boeuf 19247fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and 19257fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments, 19267fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496. 19277fc0776aSSebastien Boeuf 19287fc0776aSSebastien Boeuf### CPU pinning 19297fc0776aSSebastien Boeuf 19307fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is 19317fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and 19327fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node. 19337fc0776aSSebastien Boeuf 19347fc0776aSSebastien Boeuf### Improved VFIO support 19357fc0776aSSebastien Boeuf 19367fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting 19377fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of 19387fc0776aSSebastien Boeufthe passthrough device. 19397fc0776aSSebastien Boeuf 19407fc0776aSSebastien Boeuf### Safer code 19417fc0776aSSebastien Boeuf 19427fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe 19437fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining 19447fc0776aSSebastien Boeufunsafe sections are safe to use. 19457fc0776aSSebastien Boeuf 19467fc0776aSSebastien Boeuf### Extended documentation 19477fc0776aSSebastien Boeuf 19487fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have 19497fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run 19507fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX. 19517fc0776aSSebastien Boeuf 19527fc0776aSSebastien Boeuf### Notable bug fixes 19537fc0776aSSebastien Boeuf 19547fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244) 19557fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338) 19567fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344) 19577fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393) 19587fc0776aSSebastien Boeuf 19597fc0776aSSebastien Boeuf### Contributors 19607fc0776aSSebastien Boeuf 19617fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release: 19627fc0776aSSebastien Boeuf 19637fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is> 19647fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com> 19657fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 19667fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com> 19677fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com> 19687fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 19697fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 19707fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 19717fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com> 19727fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com> 19737fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com> 19747fc0776aSSebastien Boeuf 1975d00eb4aaSRob Bradford# v19.0 1976d00eb4aaSRob Bradford 1977d00eb4aaSRob BradfordThis release has been tracked through the [v19.0 1978d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22). 1979d00eb4aaSRob Bradford 1980d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console` 1981d00eb4aaSRob Bradford 1982d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the 1983d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in 1984d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized. 1985d00eb4aaSRob Bradford 1986d00eb4aaSRob Bradford### PCI boot time optimisations 1987d00eb4aaSRob Bradford 1988d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in 1989d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest. 1990d00eb4aaSRob Bradford 1991d00eb4aaSRob Bradford### Improved TDX support 1992d00eb4aaSRob Bradford 1993d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now 1994d00eb4aaSRob Bradfordexposed via the firmware to the guest. 1995d00eb4aaSRob Bradford 1996d00eb4aaSRob Bradford### Live migration enhancements 1997d00eb4aaSRob Bradford 1998d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem` 1999d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live 2000d00eb4aaSRob Bradfordmigration. 2001d00eb4aaSRob Bradford 2002d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user` 2003d00eb4aaSRob Bradford 2004d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with 2005d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug. 2006d00eb4aaSRob Bradford 2007d00eb4aaSRob Bradford### AArch64 for `virtio-iommu` 2008d00eb4aaSRob Bradford 2009d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform. 2010d00eb4aaSRob Bradford 2011d00eb4aaSRob Bradford### Notable bug fixes 2012d00eb4aaSRob Bradford 2013d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or 2014d00eb4aaSRob Bradford snapshot/restore (#3165) 2015d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO 2016d00eb4aaSRob Bradford (#3078 #3113) 2017d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in 2018d00eb4aaSRob Bradford the underlying crate (#3157) 2019d00eb4aaSRob Bradford 2020d00eb4aaSRob Bradford### Contributors 2021d00eb4aaSRob Bradford 2022d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release: 2023d00eb4aaSRob Bradford 2024d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is> 2025d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com> 2026d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com> 2027d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com> 2028d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 2029d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com> 2030d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com> 2031d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com> 2032d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com> 2033d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2034d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com> 2035d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com> 2036d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 2037d00eb4aaSRob Bradford 20382c4f8d22SRob Bradford# v18.0 20392c4f8d22SRob Bradford 20402c4f8d22SRob BradfordThis release has been tracked through the [v18.0 20412c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21). 20422c4f8d22SRob Bradford 20432c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support 20442c4f8d22SRob Bradford 20452c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user` 20462c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller 20472c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line. 20482c4f8d22SRob Bradford 20492c4f8d22SRob Bradford### Migration support for `vhost-user` devices 20502c4f8d22SRob Bradford 20512c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live 20522c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly 20532c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this. 20542c4f8d22SRob Bradford 20552c4f8d22SRob Bradford### VHDX disk image support 20562c4f8d22SRob Bradford 20572c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor. 20582c4f8d22SRob Bradford 20592c4f8d22SRob Bradford### Device pass through on MSHV hypervisor 20602c4f8d22SRob Bradford 20612c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from 20622c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`) 20632c4f8d22SRob Bradford 20642c4f8d22SRob Bradford### AArch64 for support `virtio-mem` 20652c4f8d22SRob Bradford 20662c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64. 20672c4f8d22SRob Bradford 20682c4f8d22SRob Bradford### Live migration on MSHV hypervisor 20692c4f8d22SRob Bradford 20702c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including 20712c4f8d22SRob Bradfordefficient tracking of dirty pages. 20722c4f8d22SRob Bradford 20732c4f8d22SRob Bradford### AArch64 CPU topology support 20742c4f8d22SRob Bradford 20752c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be 20762c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device 20772c4f8d22SRob Bradfordtree. 20782c4f8d22SRob Bradford 20792c4f8d22SRob Bradford### Power button support on AArch64 20802c4f8d22SRob Bradford 20812c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`) 20822c4f8d22SRob Bradfordis now supported when running on AArch64. 20832c4f8d22SRob Bradford 20842c4f8d22SRob Bradford### Notable bug fixes 20852c4f8d22SRob Bradford 20862c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012) 20872c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005) 20882c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004) 20892c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049) 20902c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069) 20912c4f8d22SRob Bradford 20922c4f8d22SRob Bradford### Contributors 20932c4f8d22SRob Bradford 20942c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release: 20952c4f8d22SRob Bradford 20962c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is> 20972c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 20982c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com> 20992c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com> 21002c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu> 21012c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com> 21022c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 21032c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com> 21042c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de> 21052c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com> 21062c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com> 21072c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 21082c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com> 21092c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 2110e6db5999SRob Bradford 2111e6db5999SRob Bradford# v17.0 2112e6db5999SRob Bradford 2113e6db5999SRob BradfordThis release has been tracked through the [v17.0 2114e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20). 2115e6db5999SRob Bradford 2116e6db5999SRob Bradford### ARM64 NUMA support using ACPI 2117e6db5999SRob Bradford 2118e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for 2119e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options. 2120e6db5999SRob Bradford 2121e6db5999SRob Bradford### `Seccomp` support for MSHV backend 2122e6db5999SRob Bradford 2123e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV 2124e6db5999SRob Bradfordhypervisor backend. 2125e6db5999SRob Bradford 2126e6db5999SRob Bradford### Hotplug of `macvtap` devices 2127e6db5999SRob Bradford 2128e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the 2129e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote` 2130e6db5999SRob Bradfordtool supports this functionality when adding a network device. 2131e6db5999SRob Bradford 2132e6db5999SRob Bradford### Improved SGX support 2133e6db5999SRob Bradford 2134e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and 2135e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes. 2136e6db5999SRob Bradford 2137e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices 2138e6db5999SRob Bradford 2139e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the 2140e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection. 2141e6db5999SRob Bradford 2142e6db5999SRob Bradford### Notable bug fixes 2143e6db5999SRob Bradford 2144e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821). 2145e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the 2146e6db5999SRob Bradford `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM 2147e6db5999SRob Bradford(#2833). 2148e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763). 2149e6db5999SRob Bradford 2150e6db5999SRob Bradford### Contributors 2151e6db5999SRob Bradford 2152e6db5999SRob BradfordMany thanks to everyone who has contributed to our release: 2153e6db5999SRob Bradford 2154e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 2155e6db5999SRob Bradford* Arafatms <arafatms@outlook.com> 2156e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com> 2157e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com> 2158e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com> 2159e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 2160e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 2161e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com> 2162e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2163e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com> 2164e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2165e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2166e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com> 2167e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com> 2168e6db5999SRob Bradford 21695ed8e01fSRob Bradford# v16.0 21705ed8e01fSRob Bradford 21715ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19). 21725ed8e01fSRob Bradford 21735ed8e01fSRob Bradford### Improved live migration support 21745ed8e01fSRob Bradford 21755ed8e01fSRob 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. 21765ed8e01fSRob Bradford 21775ed8e01fSRob Bradford### Improved `vhost-user` support 21785ed8e01fSRob Bradford 21795ed8e01fSRob 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. 21805ed8e01fSRob Bradford 21815ed8e01fSRob Bradford### ARM64 ACPI and UEFI support 21825ed8e01fSRob Bradford 21835ed8e01fSRob 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. 21845ed8e01fSRob Bradford 21855ed8e01fSRob Bradford### Notable bug fixes 21865ed8e01fSRob Bradford 21875ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578). 21885ed8e01fSRob 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). 21895ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore. 21905ed8e01fSRob Bradford 21915ed8e01fSRob Bradford### Removed functionality 21925ed8e01fSRob Bradford 21935ed8e01fSRob BradfordThe following formerly deprecated features have been removed: 21945ed8e01fSRob Bradford 21955ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 21965ed8e01fSRob Bradford binaries has been deprecated. When using direct boot users should configure 21975ed8e01fSRob Bradford their kernel with `CONFIG_PVH=y`. 21985ed8e01fSRob Bradford 21995ed8e01fSRob Bradford### Contributors 22005ed8e01fSRob Bradford 22015ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 22025ed8e01fSRob Bradford 22035ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 22045ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com> 22055ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn> 22065ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com> 22075ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 22085ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 22095ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com> 22105ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 22115ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com> 22125ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn> 22135ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com> 22145ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 22155ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com> 22165ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 22175ed8e01fSRob Bradford 221830a01277SRob Bradford# v15.0 221930a01277SRob Bradford 222030a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18). 222130a01277SRob Bradford 222230a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include: 222330a01277SRob Bradford 222430a01277SRob Bradford### Version numbering and stability guarantees 222530a01277SRob Bradford 222630a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that 222730a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability. 222830a01277SRob BradfordWith this new release we are beginning our new stability guarantees: 222930a01277SRob Bradford 223030a01277SRob Bradford* The API (including command line options) will not be removed or changed in a 223130a01277SRob Bradford breaking way without a minimum of 2 releases notice. Where possible warnings 223230a01277SRob Bradford will be given about the use of deprecated functionality and the deprecations 223330a01277SRob Bradford will be documented in the release notes. 223430a01277SRob Bradford* Point releases will be made between individual releases where there are 223530a01277SRob Bradford substantial bug fixes or security issues that need to be fixed. 223630a01277SRob Bradford 223730a01277SRob BradfordCurrently the following items are **not** guaranteed across updates: 223830a01277SRob Bradford 223930a01277SRob Bradford* Snapshot/restore is not supported across different versions 224030a01277SRob Bradford* Live migration is not supported across different versions 224130a01277SRob Bradford* The following features are considered experimental and may change 224230a01277SRob Bradford substantially between releases: TDX, SGX. 224330a01277SRob Bradford 224430a01277SRob Bradford### Network device rate limiting 224530a01277SRob Bradford 224630a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network 224730a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the 224830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 224930a01277SRob Bradford 225030a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload 225130a01277SRob Bradford 225230a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net` 225330a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the 225430a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings 225530a01277SRob Bradfordeven if they are not advertised as configurable (#2528). 225630a01277SRob Bradford 225730a01277SRob Bradford### `--api-socket` supports file descriptor parameter 225830a01277SRob Bradford 225930a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file 226030a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to 226130a01277SRob Bradfordprogrammatically control Cloud Hypervisor. 226230a01277SRob Bradford 226330a01277SRob Bradford### Bug fixes 226430a01277SRob Bradford 226530a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that 226630a01277SRob Bradford results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277). 226730a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to 226830a01277SRob Bradford reprogram them (#1797,#1798) 226930a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer 227030a01277SRob Bradford exhaustion on the host) (#2517) 227130a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that 227230a01277SRob Bradford prevents snapshot & restore working (#2535) 227330a01277SRob Bradford 227430a01277SRob Bradford### Deprecations 227530a01277SRob Bradford 227630a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 227730a01277SRob Bradford 227830a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 227930a01277SRob Bradford binaries has been deprecated. When using direct boot users should configure 228030a01277SRob Bradford their kernel with `CONFIG_PVH=y`. Will be removed in v16.0. 228130a01277SRob Bradford 228230a01277SRob Bradford### Contributors 228330a01277SRob Bradford 228430a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 228530a01277SRob Bradford 228630a01277SRob Bradford* Alyssa Ross <hi@alyssa.is> 228730a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 228830a01277SRob Bradford* Bo Chen <chen.bo@intel.com> 228930a01277SRob Bradford* Gaelan Steele <gbs@canishe.com> 229030a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 229130a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com> 229230a01277SRob Bradford* Muminul Islam <muislam@microsoft.com> 229330a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com> 229430a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 229530a01277SRob Bradford* Wei Liu <liuwe@microsoft.com> 229630a01277SRob Bradford* William Douglas <william.douglas@intel.com> 229730a01277SRob Bradford 229830a01277SRob Bradford# v0.14.1 229930a01277SRob Bradford 230030a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed 230130a01277SRob Bradfordin this release: 230230a01277SRob Bradford 230330a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and 230430a01277SRob Bradford the lack of HyperV CPUID bit enabled (#2437, #2449, #2436) 230530a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455) 230630a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating 230730a01277SRob Bradford DescriptorChainTooShort errors in certain circumstances (#2450, #2424) 230830a01277SRob Bradford 230940c63dcfSRob Bradford# v0.14.0 231040c63dcfSRob Bradford 231140c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17). 231240c63dcfSRob Bradford 231340c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include: 231440c63dcfSRob Bradford 231540c63dcfSRob Bradford### Structured event monitoring 231640c63dcfSRob Bradford 231740c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured 231840c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of 231940c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further 232040c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud 232140c63dcfSRob BradfordHypervisor API surface. 232240c63dcfSRob Bradford 232340c63dcfSRob Bradford### MSHV improvements 232440c63dcfSRob Bradford 232540c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV 232640c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to 232740c63dcfSRob Bradfordthe MSHV support. 232840c63dcfSRob Bradford 232940c63dcfSRob Bradford### Improved aarch64 platform 233040c63dcfSRob Bradford 233140c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running 233240c63dcfSRob BradfordVM including an enhanced serial UART. 233340c63dcfSRob Bradford 233440c63dcfSRob Bradford### Updated hotplug documentation 233540c63dcfSRob Bradford 233640c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use 233740c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as 233840c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices. 233940c63dcfSRob Bradford 234040c63dcfSRob Bradford### PTY control for serial and `virtio-console` 234140c63dcfSRob Bradford 234240c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY 234340c63dcfSRob Bradfordallowing programmatic control of the console from another process through the 234440c63dcfSRob BradfordPTY subsystem. 234540c63dcfSRob Bradford 234640c63dcfSRob Bradford### Block device rate limiting 234740c63dcfSRob Bradford 234840c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM 234940c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the 235030a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 235140c63dcfSRob Bradford 235240c63dcfSRob Bradford 235340c63dcfSRob Bradford### Deprecations 235440c63dcfSRob Bradford 235540c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 235640c63dcfSRob Bradford 235740c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 235840c63dcfSRob Bradford binaries has been deprecated. When using direct boot users should configure 235940c63dcfSRob Bradford their kernel with `CONFIG_PVH=y`. 236040c63dcfSRob Bradford 236140c63dcfSRob Bradford 236240c63dcfSRob Bradford### Contributors 236340c63dcfSRob Bradford 236440c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including 236540c63dcfSRob Bradfordsome new faces. 236640c63dcfSRob Bradford 236742e9632cSJosh Soref* Bo Chen <chen.bo@intel.com> 236842e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com> 236942e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com> 237042e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 237142e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com> 237242e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com> 237342e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com> 237442e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com> 237542e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com> 237642e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com> 237742e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com> 237842e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com> 237942e9632cSJosh Soref* Zide Chen <zide.chen@intel.com> 238040c63dcfSRob Bradford 2381f58b6f84SRob Bradford# v0.13.0 2382f58b6f84SRob Bradford 2383f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16). 2384f58b6f84SRob Bradford 2385f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include: 2386f58b6f84SRob Bradford 2387f58b6f84SRob Bradford### Wider VFIO device support 2388f58b6f84SRob Bradford 2389f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI 2390f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts. 2391f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary 2392f58b6f84SRob Bradforddrivers. 2393f58b6f84SRob Bradford 239440c63dcfSRob Bradford### Improved huge page support 2395f58b6f84SRob Bradford 2396f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to 2397f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest 2398f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the 2399f58b6f84SRob Bradforddesired size in their pool. 2400f58b6f84SRob Bradford 2401f58b6f84SRob Bradford### MACvTAP support 2402f58b6f84SRob Bradford 2403f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to 2404f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user. 2405f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP 2406f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md). 2407f58b6f84SRob Bradford 2408f58b6f84SRob Bradford### VHD disk image support 2409f58b6f84SRob Bradford 2410f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw 2411f58b6f84SRob Bradforddisk image with Cloud Hypervisor. 2412f58b6f84SRob Bradford 2413f58b6f84SRob Bradford### Improved Virtio device threading 2414f58b6f84SRob Bradford 2415f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more 2416f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a 2417f58b6f84SRob Bradfordpredictable name derived from the device id. 2418f58b6f84SRob Bradford 2419f58b6f84SRob Bradford### Clean shutdown support via synthetic power button 2420f58b6f84SRob Bradford 2421f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering 2422f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for 2423f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly 2424f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be 2425f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`. 2426f58b6f84SRob Bradford 2427f58b6f84SRob Bradford### Contributors 2428f58b6f84SRob Bradford 2429f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including 2430f58b6f84SRob Bradfordsome new faces. 2431f58b6f84SRob Bradford 2432f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com> 2433f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 2434f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com> 2435f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2436f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2437f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2438f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com> 2439f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com> 2440f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com> 2441f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com> 2442f58b6f84SRob Bradford 2443d42b5084SRob Bradford# v0.12.0 2444d42b5084SRob Bradford 2445d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15). 2446d42b5084SRob Bradford 2447d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include: 2448d42b5084SRob Bradford 2449d42b5084SRob Bradford### ARM64 enhancements 2450d42b5084SRob Bradford 2451d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the 2452d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system. 2453d42b5084SRob Bradford 2454d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning 2455d42b5084SRob Bradford 2456d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now 2457d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to 2458d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been 2459d42b5084SRob Bradfordremoved. 2460d42b5084SRob Bradford 2461d42b5084SRob Bradford### Migration of `vhost-user-fs` backend 2462d42b5084SRob Bradford 2463d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is 246442e9632cSJosh Sorefinstead hosted in [its own 2465d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs) 2466d42b5084SRob Bradford 2467d42b5084SRob Bradford### Enhanced "info" API 2468d42b5084SRob Bradford 2469d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the 2470d42b5084SRob Bradforddevices used by the VM including any VFIO devices used. 2471d42b5084SRob Bradford 2472d42b5084SRob Bradford### Contributors 2473d42b5084SRob Bradford 2474d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release: 2475d42b5084SRob Bradford 2476d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 2477d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com> 2478d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2479d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com> 2480d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2481d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2482d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com> 2483d42b5084SRob Bradford 24847dcd3affSRob Bradford# v0.11.0 24857dcd3affSRob Bradford 24867dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14). 24877dcd3affSRob Bradford 24887dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include: 24897dcd3affSRob Bradford 24907dcd3affSRob Bradford### `io_uring` support by default for `virtio-block` 24917dcd3affSRob Bradford 24927dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will 24937dcd3affSRob Bradfordbe used for a significantly higher performance block device. 24947dcd3affSRob Bradford 24957dcd3affSRob Bradford### Windows Guest Support 24967dcd3affSRob Bradford 24977dcd3affSRob BradfordThis is the first release where we officially support Windows running as a 24987dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a 24997dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows 25007dcd3affSRob Bradforddocumentation](docs/windows.md). 25017dcd3affSRob Bradford 25027dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation 25037dcd3affSRob Bradford 25047dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now 25057dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make 25067dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release. 25077dcd3affSRob Bradford 2508d00eb4aaSRob Bradford### `virtio-mmio` Removal 25097dcd3affSRob Bradford 25107dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been 25117dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly 25127dcd3affSRob Bradfordreduce the testing burden of the project. 25137dcd3affSRob Bradford 25147dcd3affSRob Bradford### Snapshot/Restore support for ARM64 25157dcd3affSRob Bradford 25167dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been 25177dcd3affSRob Bradfordimplemented. 25187dcd3affSRob Bradford 25197dcd3affSRob Bradford### Improved Linux Boot Time 25207dcd3affSRob Bradford 25217dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the 25227dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and 25237dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728. 25247dcd3affSRob Bradford 25257dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling 25267dcd3affSRob Bradford 25277dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will 25287dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The 25297dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its 25307dcd3affSRob Bradfordresources. 25317dcd3affSRob Bradford 25327dcd3affSRob Bradford### Default Log Level Changed 25337dcd3affSRob Bradford 25347dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it 25357dcd3affSRob Bradfordeasier to see potential issues. New [logging 25369988379fSRuoqing Hedocumentation](docs/logging.md) was also added. 25377dcd3affSRob Bradford 25387dcd3affSRob Bradford### New `--balloon` Parameter Added 25397dcd3affSRob Bradford 25407dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its 25417dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific 25427dcd3affSRob Bradfordcontrols without overloading `--memory`. 25437dcd3affSRob Bradford 25447dcd3affSRob Bradford### Experimental `virtio-watchdog` Support 25457dcd3affSRob Bradford 25467dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to 25477dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the 25487dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support. 25497dcd3affSRob Bradford 25507dcd3affSRob Bradford### Notable Bug Fixes 25517dcd3affSRob Bradford 25527dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest 25537dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170) 25547dcd3affSRob Bradford* CPU identification string is now exposed to the guest 25557dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as 25567dcd3affSRob Bradford read only so avoids excessive VM exits (#1795) 25577dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802) 25587dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size 25597dcd3affSRob Bradford can be used (#1803) 25607dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works 25617dcd3affSRob Bradford correctly 25627dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work 25637dcd3affSRob Bradford correctly 25647dcd3affSRob Bradford 25657dcd3affSRob Bradford### Contributors 25667dcd3affSRob Bradford 25677dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces. 25687dcd3affSRob Bradford 25697dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 25707dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com> 25717dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org> 25727dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com> 25737dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com> 25747dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com> 25757dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com> 25767dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com> 25777dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com> 25787dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com> 25797dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com> 25807dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com> 25817dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com> 25827dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 25837dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com> 25847dcd3affSRob Bradford 25857dcd3affSRob Bradford 2586198bd551SRob Bradford# v0.10.0 2587198bd551SRob Bradford 2588198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13). 2589198bd551SRob Bradford 2590198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include: 2591198bd551SRob Bradford 2592198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors 2593198bd551SRob Bradford 2594198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers. 2595198bd551SRob Bradford 2596198bd551SRob Bradford### Memory Zones 2597198bd551SRob Bradford 259842e9632cSJosh SorefSupport 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). 2599198bd551SRob Bradford 2600198bd551SRob Bradford### `Seccomp` Sandbox Improvements 2601198bd551SRob Bradford 2602198bd551SRob 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`. 2603198bd551SRob Bradford 2604198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control 2605198bd551SRob Bradford 2606198bd551SRob 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. 2607198bd551SRob Bradford 2608198bd551SRob Bradford### Notable Bug Fixes 2609198bd551SRob Bradford 2610198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596) 2611198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564) 2612198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593) 2613198bd551SRob Bradford- `--version` shows the version for released binaries (#1669) 2614198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551) 2615198bd551SRob Bradford 2616198bd551SRob Bradford### Contributors 2617198bd551SRob Bradford 2618198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces. 2619198bd551SRob Bradford 2620198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is> 2621198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com> 2622198bd551SRob Bradford* Anatol Belski <ab@php.net> 2623198bd551SRob Bradford* Bo Chen <chen.bo@intel.com> 2624198bd551SRob Bradford* Hui Zhu <teawater@antfin.com> 2625198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2626198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com> 2627198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2628198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2629198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2630198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com> 2631198bd551SRob Bradford 2632d714cf81SRob Bradford# v0.9.0 2633d714cf81SRob Bradford 2634d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12). 2635d714cf81SRob Bradford 2636d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include: 2637d714cf81SRob Bradford 2638d714cf81SRob Bradford### `io_uring` Based Block Device Support 2639d714cf81SRob Bradford 2640d714cf81SRob 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. 2641d714cf81SRob Bradford 2642d714cf81SRob Bradford### Block and Network Device Statistics 2643d714cf81SRob Bradford 2644d714cf81SRob 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. 2645d714cf81SRob Bradford 2646d714cf81SRob Bradford### HTTP API Responses 2647d714cf81SRob Bradford 2648d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF. 2649d714cf81SRob Bradford 2650d714cf81SRob Bradford### CPU Topology 2651d714cf81SRob Bradford 2652d714cf81SRob 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. 2653d714cf81SRob Bradford 2654d714cf81SRob Bradford### Release Build Optimization 2655d714cf81SRob Bradford 2656d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size. 2657d714cf81SRob Bradford 2658d714cf81SRob Bradford### Hypervisor Abstraction 2659d714cf81SRob Bradford 2660d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`. 2661d714cf81SRob Bradford 2662d714cf81SRob Bradford### Snapshot/Restore Improvements 2663d714cf81SRob Bradford 2664d714cf81SRob 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. 2665d714cf81SRob Bradford 2666d714cf81SRob Bradford### Virtio Memory Ballooning Support 2667d714cf81SRob Bradford 2668d714cf81SRob 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. 2669d714cf81SRob Bradford 2670d714cf81SRob Bradford### Enhancements to ARM64 Support 2671d714cf81SRob Bradford 2672d714cf81SRob 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. 2673d714cf81SRob Bradford 2674d714cf81SRob Bradford### Intel SGX Support 2675d714cf81SRob Bradford 2676d714cf81SRob 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). 2677d714cf81SRob Bradford 2678d714cf81SRob Bradford### `Seccomp` Sandbox Improvements 2679d714cf81SRob Bradford 2680d714cf81SRob 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. 2681d714cf81SRob Bradford 2682d714cf81SRob Bradford### Notable Bug Fixes 2683d714cf81SRob Bradford 2684d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes. 2685d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338) 2686d714cf81SRob 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). 2687d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275). 2688d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217) 2689d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521) 2690d714cf81SRob Bradford 2691d714cf81SRob Bradford### Contributors 2692d714cf81SRob Bradford 2693d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces. 2694d714cf81SRob Bradford 2695d714cf81SRob Bradford* Anatol Belski <ab@php.net> 2696d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com> 2697d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 2698d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com> 2699d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com> 2700d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com> 2701d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 2702d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2703d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 2704d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2705d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com> 2706d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com> 2707d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com> 2708d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2709d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2710d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2711d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com> 2712d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com> 2713d714cf81SRob Bradford 2714d714cf81SRob Bradford 271552b83969SRob Bradford# v0.8.0 271652b83969SRob Bradford 271752b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10). 271852b83969SRob Bradford 271952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include: 272052b83969SRob Bradford 272152b83969SRob Bradford### Experimental Snapshot and Restore Support 272252b83969SRob Bradford 272352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature. 272452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later 272552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the 272652b83969SRob Bradfordoriginal VM at the point it was paused. 272752b83969SRob Bradford 272852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to 272952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest 273052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on 273152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed 273252b83969SRob Bradford(#1176). 273352b83969SRob Bradford 273452b83969SRob Bradford### Experimental ARM64 Support 273552b83969SRob Bradford 273652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64. 273752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full 2738dfebc892SRuoqing Hedetails can be found in the [ARM64 documentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/8ab15b9a984a448006f97b1211498c1bb583de3b/docs/arm64.md). 273952b83969SRob Bradford 274052b83969SRob Bradford### Support for Using 5-level Paging in Guests 274152b83969SRob Bradford 274252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57). 274352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware 274452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not 274552b83969SRob Bradfordwork due to current limitations in the PVH boot process. 274652b83969SRob Bradford 274752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices 274852b83969SRob Bradford 274952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress 275052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This 275152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts 275252b83969SRob Bradfordthe guest must service. 275352b83969SRob Bradford 275452b83969SRob Bradford### `vhost_user_fs` Improvements 275552b83969SRob Bradford 275652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`. 275752b83969SRob Bradford 275852b83969SRob Bradford 275952b83969SRob Bradford### Notable Bug Fixes 276052b83969SRob Bradford 276152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110). 276252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to 276352b83969SRob Bradford run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273). 276452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to 276552b83969SRob Bradford the specification and synchronizes to the underlying filesystem as required 276652b83969SRob Bradford based on guest feature negotiation. This avoids potential data loss (#399, 276752b83969SRob Bradford #1216). 276852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be 276952b83969SRob Bradford overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the 277052b83969SRob Bradford `MPTABLE` will no longer be generated (#1132). 277152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816). 277252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083). 277352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds 277452b83969SRob Bradford (#751). 277552b83969SRob Bradford 277652b83969SRob Bradford### Command Line and API Changes 277752b83969SRob Bradford 277852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes: 277952b83969SRob Bradford 278052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket` 278152b83969SRob Bradford rather than `sock` in some cases. 278252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM 278352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always 278452b83969SRob Bradford offered for negotiation. 278552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC 278652b83969SRob Bradford address for the `tap` device on the host. 278752b83969SRob Bradford 278852b83969SRob Bradford### Contributors 278952b83969SRob Bradford 279052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces. 279152b83969SRob Bradford 279252b83969SRob Bradford* Anatol Belski <ab@php.net> 279352b83969SRob Bradford* Arron Wang <arron.wang@intel.com> 279452b83969SRob Bradford* Bo Chen <chen.bo@intel.com> 279552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 279652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com> 279752b83969SRob Bradford* Hui Zhu <teawater@antfin.com> 279852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 279952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com> 280052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com> 280152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 280252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 280352b83969SRob Bradford* Sergio Lopez <slp@redhat.com> 280452b83969SRob Bradford 280596be8229SRob Bradford# v0.7.0 280696be8229SRob Bradford 280796be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 280896be8229SRob Bradford 280996be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include: 281096be8229SRob Bradford 281196be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug 281296be8229SRob Bradford 281396be8229SRob BradfordFurther to our effort to support modifying a running guest we now support 281496be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network, 281596be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI 28165c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility 281796be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has 281896be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for 281996be8229SRob Bradforddevices to ease their removal. 282096be8229SRob Bradford 282196be8229SRob Bradford### Alternative `libc` Support 282296be8229SRob Bradford 282396be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release 282496be8229SRob Bradfordcontains a static binary compiled using that toolchain. 282596be8229SRob Bradford 282696be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends 282796be8229SRob Bradford 282896be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by 282996be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to 283096be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true` 283196be8229SRob Bradfordis passed when the devices are created. 283296be8229SRob Bradford 283396be8229SRob Bradford### Initial RamFS Support 283496be8229SRob Bradford 283596be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to 283696be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem. 283796be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to 283896be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very 283996be8229SRob Bradfordminimal image. 284096be8229SRob Bradford 284196be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem` 284296be8229SRob Bradford 284396be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using 284496be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the 284596be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently 284696be8229SRob Bradfordrequires kernel patches to be able to support it. 284796be8229SRob Bradford 284896be8229SRob Bradford### `Seccomp` Sandboxing 284996be8229SRob Bradford 285096be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the 285196be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is 285296be8229SRob Bradfordcontrolled by the `--seccomp` command line option. 285396be8229SRob Bradford 285496be8229SRob Bradford### Updated Distribution Support 285596be8229SRob Bradford 285696be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported 285796be8229SRob Bradforddistributions and is part of our regular testing programme. 285896be8229SRob Bradford 285996be8229SRob Bradford### Command Line and API Changes 286096be8229SRob Bradford 286196be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes 286296be8229SRob Bradford 286396be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal. 286496be8229SRob Bradford If no name is specified the VMM chooses one. 286596be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing 286696be8229SRob Bradford memory instead of providing a path. 286796be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only 286896be8229SRob Bradford supports a single Vsock device. The REST API has removed the vector for this 286996be8229SRob Bradford option and replaced it with a single optional field. 287096be8229SRob Bradford* There is enhanced validation of the command line and API provided 287196be8229SRob Bradford configurations to ensure that the provided options are compatible e.g. that 287296be8229SRob Bradford shared memory is in use if any attempt is made to used a `vhost-user` backed 287396be8229SRob Bradford device. 287496be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and 287596be8229SRob Bradford `add-vsock` subcommands. For removal `remove-device` is used. The REST API 287696be8229SRob Bradford has appropriate new HTTP endpoints too. 287796be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size 287896be8229SRob Bradford will be obtained from the file. A `discard_writes` option has also been added 287996be8229SRob Bradford to provide the equivalent of a read-only file. 288096be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align 288196be8229SRob Bradford with those used by `--disk`. 288296be8229SRob Bradford 288396be8229SRob Bradford### Contributors 288496be8229SRob Bradford 288596be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces. 288696be8229SRob Bradford 288796be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 288896be8229SRob Bradford* Bo Chen <chen.bo@intel.com> 288996be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com> 289096be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com> 289196be8229SRob Bradford* Dean Sheather <dean@coder.com> 289296be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com> 289396be8229SRob Bradford* Hui Zhu <teawater@antfin.com> 289496be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 289596be8229SRob Bradford* Martin Xu <martin.xu@intel.com> 289696be8229SRob Bradford* Muminul Islam <muislam@microsoft.com> 289796be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com> 289896be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 289996be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 290096be8229SRob Bradford* Sergio Lopez <slp@redhat.com> 290196be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com> 290296be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com> 290396be8229SRob Bradford 290403cb26ccSSamuel Ortiz# v0.6.0 290503cb26ccSSamuel Ortiz 290603cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 290703cb26ccSSamuel Ortiz 290803cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include: 290903cb26ccSSamuel Ortiz 291003cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug 291103cb26ccSSamuel Ortiz 291203cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest 291303cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor 291403cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`) 291503cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for 291603cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor. 291703cb26ccSSamuel Ortiz 291803cb26ccSSamuel Ortiz### Shared Filesystem Improvements 291903cb26ccSSamuel Ortiz 292003cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements. 292103cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`, 292203cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we 292303cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and 292403cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations. 292503cb26ccSSamuel Ortiz 292603cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading 292703cb26ccSSamuel Ortiz 292803cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an 292903cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now 293003cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends 293103cb26ccSSamuel Ortizinto their own, separate processes. 29325c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want 293303cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts. 293403cb26ccSSamuel Ortiz 293503cb26ccSSamuel Ortiz### Command Line Interface 293603cb26ccSSamuel Ortiz 293703cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the 293837a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only 293937a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract 294037a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor 294137a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`. The `ch-remote` binary 294237a2c13aSAlyssa Rossis created with each build and available e.g. at 294303cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build. 294403cb26ccSSamuel Ortiz 294503cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available 294603cb26ccSSamuel Ortizcommands. 294703cb26ccSSamuel Ortiz 294803cb26ccSSamuel Ortiz### PVH Boot 294903cb26ccSSamuel Ortiz 295003cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now 295103cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html). 295203cb26ccSSamuel Ortiz 295303cb26ccSSamuel Ortiz### Contributors 295403cb26ccSSamuel Ortiz 295503cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks 295603cb26ccSSamuel Ortizto them and to everyone that contributed to this release: 295703cb26ccSSamuel Ortiz 295803cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 295903cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com> 296003cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com> 296103cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com> 296203cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 296303cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com> 296403cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 296503cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com> 296603cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 296703cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 296803cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 296903cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 297003cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com> 297103cb26ccSSamuel Ortiz 297294f2fc33SRob Bradford# v0.5.1 297394f2fc33SRob Bradford 297494f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes: 297594f2fc33SRob Bradford 297694f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez 297794f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf 297894f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz 297994f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford 298094f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford 29818e8a7b6dSSamuel Ortiz 29822f395e60SSamuel Ortiz# v0.5.0 29832f395e60SSamuel Ortiz 29842f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6). 29852f395e60SSamuel Ortiz 29862f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include: 29872f395e60SSamuel Ortiz 29882f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing 29892f395e60SSamuel Ortiz 29902f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and 29912f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor 29922f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases. 29932f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot 29942f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest. 29952f395e60SSamuel Ortiz 29962f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature. 29972f395e60SSamuel Ortiz 29982f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization 29992f395e60SSamuel Ortiz 30002f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use 30012f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default 30022f395e60SSamuel Ortizparavirtualized networking and block devices throughput. 30032f395e60SSamuel Ortiz 30042f395e60SSamuel Ortiz### New Interrupt Management Framework 30052f395e60SSamuel Ortiz 30062f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt 30072f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device) 30082f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed 30092f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and 30102f395e60SSamuel Ortizvirtio ones. 30112f395e60SSamuel Ortiz 30122f395e60SSamuel Ortiz### Development Tools 30132f395e60SSamuel Ortiz 30142f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our 30152f395e60SSamuel Ortizbuild, development and testing tools. 30162f395e60SSamuel OrtizSomehow similar to the excellent 30172f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool), 301837a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh). 30192f395e60SSamuel Ortiz 30202f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test 30212f395e60SSamuel OrtizCloud Hypervisor through a containerized environment. 30222f395e60SSamuel Ortiz 30232f395e60SSamuel Ortiz### Kata Containers Integration 30242f395e60SSamuel Ortiz 30252f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration 30262f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud 30272f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is 30282f395e60SSamuel Ortizintegrated into the project's CI. 30292f395e60SSamuel Ortiz 30302f395e60SSamuel Ortiz### Contributors 30312f395e60SSamuel Ortiz 30322f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release: 30332f395e60SSamuel Ortiz 30342f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com> 30352f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 30362f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 30372f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 30382f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 30392f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 30402f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 30412f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com> 30422f395e60SSamuel Ortiz 3043cec884e8SSamuel Ortiz# v0.4.0 3044cec884e8SSamuel Ortiz 3045cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4). 3046cec884e8SSamuel Ortiz 3047cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include: 3048cec884e8SSamuel Ortiz 3049cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition 3050cec884e8SSamuel Ortiz 3051e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically 3052cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug. 3053cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs 3054cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are 305537a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md) 3056cec884e8SSamuel Ortiz 3057cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor 3058cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory. 3059cec884e8SSamuel Ortiz 3060cec884e8SSamuel Ortiz### Programmatic firmware tables generation 3061cec884e8SSamuel Ortiz 3062cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot 3063cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for 3064cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated 3065cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those 3066cec884e8SSamuel Ortiztables based on the VMM device model and topology. 3067cec884e8SSamuel Ortiz 3068cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends 3069cec884e8SSamuel Ortiz 3070cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a 3071cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based 3072cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the 3073cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the 3074cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture. 3075cec884e8SSamuel Ortiz 3076cec884e8SSamuel Ortiz### Guest pause and resume 3077cec884e8SSamuel Ortiz 30785c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for 3079cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live 3080cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause 3081cec884e8SSamuel Ortizand resume capabilities. 3082cec884e8SSamuel Ortiz 3083cec884e8SSamuel Ortiz### Userspace IOAPIC by default 3084cec884e8SSamuel Ortiz 3085cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to 3086cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on 3087cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by 3088cec884e8SSamuel Ortizdefault. 3089cec884e8SSamuel Ortiz 3090cec884e8SSamuel Ortiz### PCI BAR reprogramming 3091cec884e8SSamuel Ortiz 3092cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests 3093cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR 3094cec884e8SSamuel Ortizreprogramming. 3095cec884e8SSamuel Ortiz 3096cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization 3097cec884e8SSamuel Ortiz 3098cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project, 3099cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor). 3100cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) 3101cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux) 3102cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 3103cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to 3104cec884e8SSamuel Ortiztemporarily fork. 3105cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely 3106cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers. 3107cec884e8SSamuel Ortiz 3108cec884e8SSamuel Ortiz### Contributors 3109cec884e8SSamuel Ortiz 3110cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release: 3111cec884e8SSamuel Ortiz 3112cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 3113cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com> 3114cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 3115cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 3116cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 3117cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 3118cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 3119cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 3120cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com> 3121cec884e8SSamuel Ortiz 31228e8a7b6dSSamuel Ortiz# v0.3.0 31238e8a7b6dSSamuel Ortiz 31248ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3). 31258e8a7b6dSSamuel Ortiz 31268e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include: 31278e8a7b6dSSamuel Ortiz 31288e8a7b6dSSamuel Ortiz### Block device offloading 31298e8a7b6dSSamuel Ortiz 31308e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes, 31318e8a7b6dSSamuel Ortizand we added support for 31328e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends. 31338e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device 31348e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage 31358e8a7b6dSSamuel Ortizbackend. 31368e8a7b6dSSamuel Ortiz 31378e8a7b6dSSamuel Ortiz### Network device backend 31388e8a7b6dSSamuel Ortiz 31398e8a7b6dSSamuel OrtizThe previous release provided support for 31408e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we 31418e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together 31428e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the 31438e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture. 31448e8a7b6dSSamuel Ortiz 31458e8a7b6dSSamuel Ortiz### Virtual sockets 31468e8a7b6dSSamuel Ortiz 31478e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest, 31488e8a7b6dSSamuel Ortizwe added an hybrid implementation of the 31498e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address 31508e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the 31518e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md) 31528e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs. 31538e8a7b6dSSamuel Ortiz 31548e8a7b6dSSamuel Ortiz### HTTP based API 31558e8a7b6dSSamuel Ortiz 31568e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud 31578e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP 31588e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the 31598e8a7b6dSSamuel Ortiznext release cycle. 31608e8a7b6dSSamuel Ortiz 31618e8a7b6dSSamuel Ortiz### Memory mapped virtio transport 31628e8a7b6dSSamuel Ortiz 31638e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the 31648e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002) 31658e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest 31668e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation. 31678e8a7b6dSSamuel Ortiz 31688e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU 31698e8a7b6dSSamuel Ortiz 31708e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing 317137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows 317237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support. 31738e8a7b6dSSamuel Ortiz 31748e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor 31758e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual 31768e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be 31778e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]` 31788e8a7b6dSSamuel Ortizsetting. 31798e8a7b6dSSamuel Ortiz 31808e8a7b6dSSamuel Ortiz### Ubuntu 19.10 31818e8a7b6dSSamuel Ortiz 31828ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware), 31838e8a7b6dSSamuel Ortizwe can now support the latest 31848e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images. 31858e8a7b6dSSamuel Ortiz 31868e8a7b6dSSamuel Ortiz### Large memory guests 31878e8a7b6dSSamuel Ortiz 31888e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now 31898e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB). 31907688e6e2SSamuel Ortiz 3191d784ac29SSamuel Ortiz# v0.2.0 3192d784ac29SSamuel Ortiz 31938ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2). 3194d784ac29SSamuel Ortiz 3195d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include: 3196d784ac29SSamuel Ortiz 3197d784ac29SSamuel Ortiz### Network device offloading 3198d784ac29SSamuel Ortiz 3199d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external 3200d784ac29SSamuel Ortizprocesses, we added support for 3201d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This 3202d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device 3203d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend. 3204d784ac29SSamuel Ortiz 3205d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI 3206d784ac29SSamuel Ortiz 3207d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented 3208d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with 3209d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to 3210d784ac29SSamuel Ortizcleanly reboot and shutdown. 3211d784ac29SSamuel Ortiz 3212d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is 3213d784ac29SSamuel Ortizenabled by default. 3214d784ac29SSamuel Ortiz 3215d784ac29SSamuel Ortiz### Debug I/O port 3216d784ac29SSamuel Ortiz 3217d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest 3218d784ac29SSamuel Ortizboot times, we added support for logging guest events through the 3219*730cf1e9SRuoqing He[0x80](https://web.archive.org/web/20211028033025/https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html) 3220d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time 322137a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more 322237a2c13aSAlyssa Rossdetails. 3223d784ac29SSamuel Ortiz 3224d784ac29SSamuel Ortiz### Improved direct device assignment 3225d784ac29SSamuel Ortiz 3226d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When 3227d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads 3228d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from 3229d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from 3230d784ac29SSamuel Ortizdirectly assigned devices. 3231d784ac29SSamuel Ortiz 3232d784ac29SSamuel Ortiz### Improved shared filesystem 3233d784ac29SSamuel Ortiz 3234d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt) 3235d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system. 3236d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest 3237d784ac29SSamuel Ortizmemory footprint. 3238d784ac29SSamuel Ortiz 3239d784ac29SSamuel Ortiz### Ubuntu bionic based CI 3240d784ac29SSamuel Ortiz 32418ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 3242d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to 3243d784ac29SSamuel Ortizour CI pipeline. 3244d784ac29SSamuel Ortiz 324593b77530SSamuel Ortiz# v0.1.0 324693b77530SSamuel Ortiz 32478ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1). 324893b77530SSamuel Ortiz 324993b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include: 325093b77530SSamuel Ortiz 325193b77530SSamuel Ortiz### Shared filesystem 325293b77530SSamuel Ortiz 325393b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file 325493b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem 325593b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest. 325693b77530SSamuel Ortiz 325737a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how 325837a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`. 325993b77530SSamuel Ortiz 326093b77530SSamuel Ortiz### Initial direct device assignment support 326193b77530SSamuel Ortiz 326293b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device 326393b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host 326493b77530SSamuel Ortizphysical devices into its guest. 326593b77530SSamuel Ortiz 326637a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly 326737a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests. 326893b77530SSamuel Ortiz 326993b77530SSamuel Ortiz### Userspace IOAPIC 327093b77530SSamuel Ortiz 327193b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by 327293b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC). 327393b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space, 327493b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode. 327593b77530SSamuel Ortiz 327693b77530SSamuel Ortiz### Virtual persistent memory 327793b77530SSamuel Ortiz 327893b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device 327993b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device 328093b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint. 328193b77530SSamuel Ortiz 328293b77530SSamuel Ortiz### Linux kernel bzImage 328393b77530SSamuel Ortiz 328493b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from 328593b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions 328693b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host 328793b77530SSamuel Ortizdistribution kernel image. 328893b77530SSamuel Ortiz 328993b77530SSamuel Ortiz### Console over virtio 329093b77530SSamuel Ortiz 329193b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although 329293b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot 329393b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console 329493b77530SSamuel Ortizimplementation. 329593b77530SSamuel Ortiz 329693b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console. 329793b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting 329893b77530SSamuel Ortiz`--serial tty --console off` from the command line. 329993b77530SSamuel Ortiz 330093b77530SSamuel Ortiz### Unit testing 330193b77530SSamuel Ortiz 330293b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI. 330393b77530SSamuel Ortiz 330493b77530SSamuel Ortiz### Integration tests parallelization 330593b77530SSamuel Ortiz 330693b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our 330793b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel. 3308