1*4f96fa15SRob Bradford- [v39.0](#v390) 2*4f96fa15SRob Bradford - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments) 3*4f96fa15SRob Bradford - [Direct Booting with bzImages](#direct-booting-with-bzimages) 4*4f96fa15SRob Bradford - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support) 5*4f96fa15SRob Bradford - [Guest NMI Injection Support](#guest-nmi-injection-support) 6*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes) 7*4f96fa15SRob Bradford - [Contributors](#contributors) 8ef4fbf08SBo Chen- [v38.0](#v380) 9ef4fbf08SBo Chen - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices) 10ef4fbf08SBo Chen - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread) 11ef4fbf08SBo Chen - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault) 12ef4fbf08SBo Chen - [New 'debug-console' Device](#new-debug-console-device) 13ef4fbf08SBo Chen - [Improved VFIO Device Support](#improved-vfio-device-support) 14ef4fbf08SBo Chen - [Extended CPU Affinity Support](#extended-cpu-affinity-support) 15*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-1) 16*4f96fa15SRob Bradford - [Contributors](#contributors-1) 175e702dcdSBo Chen- [v37.0](#v370) 185e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release) 19ef4fbf08SBo Chen - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices) 205e702dcdSBo Chen - [Configurable Named TAP Devices](#configurable-named-tap-devices) 215e702dcdSBo Chen - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console) 225e702dcdSBo Chen - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots) 23*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-2) 24*4f96fa15SRob Bradford - [Contributors](#contributors-2) 25f5899d15SBo Chen- [v36.0](#v360) 26f5899d15SBo Chen - [Command Line Changes](#command-line-changes) 27f5899d15SBo Chen - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli) 28f5899d15SBo Chen - [NUMA Support for PCI segments](#numa-support-for-pci-segments) 29f5899d15SBo Chen - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms) 30f5899d15SBo Chen - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port) 31f5899d15SBo Chen - [AIO Backend for Block Devices](#aio-backend-for-block-devices) 32f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements) 33*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-3) 34*4f96fa15SRob Bradford - [Contributors](#contributors-3) 35339912a5SBo Chen- [v35.0](#v350) 36339912a5SBo Chen - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63) 37339912a5SBo Chen - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block) 38339912a5SBo Chen - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state) 39*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-4) 40*4f96fa15SRob Bradford - [Contributors](#contributors-4) 41487a43cdSRob Bradford- [v34.0](#v340) 42487a43cdSRob Bradford - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support) 43487a43cdSRob Bradford - [Improvements to VM Core Dump](#improvements-to-vm-core-dump) 44487a43cdSRob Bradford - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files) 45487a43cdSRob Bradford - [Minimum Host Kernel Bump](#minimum-host-kernel-bump) 46*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-5) 47*4f96fa15SRob Bradford - [Contributors](#contributors-5) 48487a43cdSRob Bradford- [v33.0](#v330) 49487a43cdSRob Bradford - [D-Bus based API](#d-bus-based-api) 50487a43cdSRob Bradford - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64) 51*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-6) 52*4f96fa15SRob Bradford - [Contributors](#contributors-6) 5342ca292dSRob Bradford- [v32.0](#v320) 5442ca292dSRob Bradford - [Increased PCI Segment Limit](#increased-pci-segment-limit) 5542ca292dSRob Bradford - [API Changes](#api-changes) 56*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-7) 57*4f96fa15SRob Bradford - [Contributors](#contributors-7) 5842ca292dSRob Bradford- [v31.1](#v311) 59f3522e85SMichael Zhao- [v31.0](#v310) 60f3522e85SMichael Zhao - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables) 61f3522e85SMichael Zhao - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62) 62f3522e85SMichael Zhao - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler) 63f3522e85SMichael Zhao - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile) 64f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-1) 65*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-8) 66*4f96fa15SRob Bradford - [Contributors](#contributors-8) 67ece0e6faSBo Chen- [v30.0](#v300) 68ece0e6faSBo Chen - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size) 69ece0e6faSBo Chen - [Basic vfio-user Server Support](#basic-vfio-user-server-support) 70ece0e6faSBo Chen - [Heap Profiling Support](#heap-profiling-support) 71f5899d15SBo Chen - [Documentation Improvements](#documentation-improvements-2) 72*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-9) 73*4f96fa15SRob Bradford - [Contributors](#contributors-9) 74ece0e6faSBo Chen- [v28.2](#v282) 7522cf8c97SRob Bradford- [v29.0](#v290) 7622cf8c97SRob Bradford - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm) 7722cf8c97SRob Bradford - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements) 7822cf8c97SRob Bradford - [Heap Allocation Improvements](#heap-allocation-improvements) 7922cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements) 8022cf8c97SRob Bradford - [`AArch64` Documentation Integration](#aarch64-documentation-integration) 8122cf8c97SRob Bradford - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement) 8222cf8c97SRob Bradford - [TCP Offload Control](#tcp-offload-control) 83*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-10) 8422cf8c97SRob Bradford - [Removals](#removals) 8522cf8c97SRob Bradford - [Deprecations](#deprecations) 86*4f96fa15SRob Bradford - [Contributors](#contributors-10) 8722cf8c97SRob Bradford- [v28.1](#v281) 8866460765SRob Bradford- [v28.0](#v280) 8966460765SRob Bradford - [Community Engagement (Reminder)](#community-engagement-reminder) 905e702dcdSBo Chen - [Long Term Support (LTS) Release](#long-term-support-lts-release-1) 9166460765SRob Bradford - [Virtualised TPM Support](#virtualised-tpm-support) 9266460765SRob Bradford - [Transparent Huge Page Support](#transparent-huge-page-support) 9366460765SRob Bradford - [README Quick Start Improved](#readme-quick-start-improved) 94*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-11) 9522cf8c97SRob Bradford - [Removals](#removals-1) 96*4f96fa15SRob Bradford - [Contributors](#contributors-11) 972ba6a9bfSRob Bradford- [v27.0](#v270) 982ba6a9bfSRob Bradford - [Community Engagement](#community-engagement) 992ba6a9bfSRob Bradford - [Prebuilt Packages](#prebuilt-packages) 1002ba6a9bfSRob Bradford - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest) 1012ba6a9bfSRob Bradford - [Boot Tracing](#boot-tracing) 1022ba6a9bfSRob Bradford - [Simplified Build Feature Flags](#simplified-build-feature-flags) 1032ba6a9bfSRob Bradford - [Asynchronous Kernel Loading](#asynchronous-kernel-loading) 1042ba6a9bfSRob Bradford - [GDB Support for AArch64](#gdb-support-for-aarch64) 105*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-12) 106f3522e85SMichael Zhao - [Deprecations](#deprecations-1) 107*4f96fa15SRob Bradford - [Contributors](#contributors-12) 108f3522e85SMichael Zhao- [v26.0](#v260) 109f3522e85SMichael Zhao - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform) 110f3522e85SMichael Zhao - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support) 111*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-13) 11222cf8c97SRob Bradford - [Deprecations](#deprecations-2) 11366460765SRob Bradford - [Removals](#removals-2) 114*4f96fa15SRob Bradford - [Contributors](#contributors-13) 11522cf8c97SRob Bradford- [v25.0](#v250) 11622cf8c97SRob Bradford - [`ch-remote` Improvements](#ch-remote-improvements-1) 11722cf8c97SRob Bradford - [VM "Coredump" Support](#vm-coredump-support) 118*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-14) 11922cf8c97SRob Bradford - [Removals](#removals-3) 120*4f96fa15SRob Bradford - [Contributors](#contributors-14) 1210150de55SSebastien Boeuf- [v24.0](#v240) 1220150de55SSebastien Boeuf - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu) 1230150de55SSebastien Boeuf - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness) 1240150de55SSebastien Boeuf - [Sparse Mmap support](#sparse-mmap-support) 1250150de55SSebastien Boeuf - [Expose Platform Serial Number](#expose-platform-serial-number) 126*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-15) 1270150de55SSebastien Boeuf - [Notable Improvements](#notable-improvements) 12822cf8c97SRob Bradford - [Deprecations](#deprecations-3) 1290150de55SSebastien Boeuf - [New on the Website](#new-on-the-website) 130*4f96fa15SRob Bradford - [Contributors](#contributors-15) 1310150de55SSebastien Boeuf- [v23.1](#v231) 1320c9c56f5SRob Bradford- [v23.0](#v230) 1330c9c56f5SRob Bradford - [vDPA Support](#vdpa-support) 1340c9c56f5SRob Bradford - [Updated OS Support list](#updated-os-support-list) 1350c9c56f5SRob Bradford - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements) 1360c9c56f5SRob Bradford - [`AMX` Support](#amx-support) 137*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-16) 13822cf8c97SRob Bradford - [Deprecations](#deprecations-4) 139*4f96fa15SRob Bradford - [Contributors](#contributors-16) 1400c9c56f5SRob Bradford- [v22.1](#v221) 1416aa10938SRob Bradford- [v22.0](#v220) 1426aa10938SRob Bradford - [GDB Debug Stub Support](#gdb-debug-stub-support) 1436aa10938SRob Bradford - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments) 1446aa10938SRob Bradford - [Before Boot Configuration Changes](#before-boot-configuration-changes) 1456aa10938SRob Bradford - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting) 1466aa10938SRob Bradford - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx) 1476aa10938SRob Bradford - [PMU Support for AArch64](#pmu-support-for-aarch64) 1480c9c56f5SRob Bradford - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license) 1496aa10938SRob Bradford - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd) 150*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-17) 151*4f96fa15SRob Bradford - [Contributors](#contributors-17) 15295ca7997SRob Bradford- [v21.0](#v210) 15395ca7997SRob Bradford - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade) 15495ca7997SRob Bradford - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515) 155*4f96fa15SRob Bradford - [Notable Bug fixes](#notable-bug-fixes-18) 156*4f96fa15SRob Bradford - [Contributors](#contributors-18) 15795ca7997SRob Bradford- [v20.2](#v202) 15895ca7997SRob Bradford- [v20.1](#v201) 1597fc0776aSSebastien Boeuf- [v20.0](#v200) 1607fc0776aSSebastien Boeuf - [Multiple PCI segments support](#multiple-pci-segments-support) 1617fc0776aSSebastien Boeuf - [CPU pinning](#cpu-pinning) 1627fc0776aSSebastien Boeuf - [Improved VFIO support](#improved-vfio-support) 1637fc0776aSSebastien Boeuf - [Safer code](#safer-code) 1647fc0776aSSebastien Boeuf - [Extended documentation](#extended-documentation) 165*4f96fa15SRob Bradford - [Notable bug fixes](#notable-bug-fixes-19) 166*4f96fa15SRob Bradford - [Contributors](#contributors-19) 167d00eb4aaSRob Bradford- [v19.0](#v190) 168d00eb4aaSRob Bradford - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console) 169d00eb4aaSRob Bradford - [PCI boot time optimisations](#pci-boot-time-optimisations) 170d00eb4aaSRob Bradford - [Improved TDX support](#improved-tdx-support) 171d00eb4aaSRob Bradford - [Live migration enhancements](#live-migration-enhancements) 172d00eb4aaSRob Bradford - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user) 173d00eb4aaSRob Bradford - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu) 174*4f96fa15SRob Bradford - [Notable bug fixes](#notable-bug-fixes-20) 175*4f96fa15SRob Bradford - [Contributors](#contributors-20) 1762c4f8d22SRob Bradford- [v18.0](#v180) 1772c4f8d22SRob Bradford - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support) 1782c4f8d22SRob Bradford - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices) 1792c4f8d22SRob Bradford - [VHDX disk image support](#vhdx-disk-image-support) 1802c4f8d22SRob Bradford - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor) 1812c4f8d22SRob Bradford - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem) 1822c4f8d22SRob Bradford - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor) 1832c4f8d22SRob Bradford - [AArch64 CPU topology support](#aarch64-cpu-topology-support) 1842c4f8d22SRob Bradford - [Power button support on AArch64](#power-button-support-on-aarch64) 185*4f96fa15SRob Bradford - [Notable bug fixes](#notable-bug-fixes-21) 186*4f96fa15SRob Bradford - [Contributors](#contributors-21) 187e6db5999SRob Bradford- [v17.0](#v170) 188e6db5999SRob Bradford - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi) 189e6db5999SRob Bradford - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend) 190e6db5999SRob Bradford - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices) 191e6db5999SRob Bradford - [Improved SGX support](#improved-sgx-support) 192e6db5999SRob Bradford - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices) 193*4f96fa15SRob Bradford - [Notable bug fixes](#notable-bug-fixes-22) 194*4f96fa15SRob Bradford - [Contributors](#contributors-22) 1955ed8e01fSRob Bradford- [v16.0](#v160) 1965ed8e01fSRob Bradford - [Improved live migration support](#improved-live-migration-support) 1975ed8e01fSRob Bradford - [Improved `vhost-user` support](#improved-vhost-user-support) 1985ed8e01fSRob Bradford - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support) 199*4f96fa15SRob Bradford - [Notable bug fixes](#notable-bug-fixes-23) 2005ed8e01fSRob Bradford - [Removed functionality](#removed-functionality) 201*4f96fa15SRob Bradford - [Contributors](#contributors-23) 20230a01277SRob Bradford- [v15.0](#v150) 20330a01277SRob Bradford - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees) 20430a01277SRob Bradford - [Network device rate limiting](#network-device-rate-limiting) 20530a01277SRob Bradford - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload) 206f3522e85SMichael Zhao - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter) 20730a01277SRob Bradford - [Bug fixes](#bug-fixes) 20822cf8c97SRob Bradford - [Deprecations](#deprecations-5) 209*4f96fa15SRob Bradford - [Contributors](#contributors-24) 21030a01277SRob Bradford- [v0.14.1](#v0141) 21140c63dcfSRob Bradford- [v0.14.0](#v0140) 21240c63dcfSRob Bradford - [Structured event monitoring](#structured-event-monitoring) 21340c63dcfSRob Bradford - [MSHV improvements](#mshv-improvements) 21440c63dcfSRob Bradford - [Improved aarch64 platform](#improved-aarch64-platform) 21540c63dcfSRob Bradford - [Updated hotplug documentation](#updated-hotplug-documentation) 21640c63dcfSRob Bradford - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console) 21740c63dcfSRob Bradford - [Block device rate limiting](#block-device-rate-limiting) 21822cf8c97SRob Bradford - [Deprecations](#deprecations-6) 219*4f96fa15SRob Bradford - [Contributors](#contributors-25) 220f58b6f84SRob Bradford- [v0.13.0](#v0130) 221f58b6f84SRob Bradford - [Wider VFIO device support](#wider-vfio-device-support) 22240c63dcfSRob Bradford - [Improved huge page support](#improved-huge-page-support) 223f58b6f84SRob Bradford - [MACvTAP support](#macvtap-support) 224f58b6f84SRob Bradford - [VHD disk image support](#vhd-disk-image-support) 225f58b6f84SRob Bradford - [Improved Virtio device threading](#improved-virtio-device-threading) 226f58b6f84SRob Bradford - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button) 227*4f96fa15SRob Bradford - [Contributors](#contributors-26) 228d42b5084SRob Bradford- [v0.12.0](#v0120) 229d42b5084SRob Bradford - [ARM64 enhancements](#arm64-enhancements) 230d42b5084SRob Bradford - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning) 231d42b5084SRob Bradford - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend) 232d42b5084SRob Bradford - [Enhanced "info" API](#enhanced-info-api) 233*4f96fa15SRob Bradford - [Contributors](#contributors-27) 2347dcd3affSRob Bradford- [v0.11.0](#v0110) 2357dcd3affSRob Bradford - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block) 2367dcd3affSRob Bradford - [Windows Guest Support](#windows-guest-support) 2377dcd3affSRob Bradford - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation) 238d00eb4aaSRob Bradford - [`virtio-mmio` Removal](#virtio-mmio-removal) 2397dcd3affSRob Bradford - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64) 2407dcd3affSRob Bradford - [Improved Linux Boot Time](#improved-linux-boot-time) 2417dcd3affSRob Bradford - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling) 2427dcd3affSRob Bradford - [Default Log Level Changed](#default-log-level-changed) 243f3522e85SMichael Zhao - [New `--balloon` Parameter Added](#new---balloon-parameter-added) 2447dcd3affSRob Bradford - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support) 245*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-24) 246*4f96fa15SRob Bradford - [Contributors](#contributors-28) 247198bd551SRob Bradford- [v0.10.0](#v0100) 248198bd551SRob Bradford - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors) 249198bd551SRob Bradford - [Memory Zones](#memory-zones) 250198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements) 251198bd551SRob Bradford - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control) 252*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-25) 253*4f96fa15SRob Bradford - [Contributors](#contributors-29) 254d714cf81SRob Bradford- [v0.9.0](#v090) 255d714cf81SRob Bradford - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support) 256d714cf81SRob Bradford - [Block and Network Device Statistics](#block-and-network-device-statistics) 257d714cf81SRob Bradford - [HTTP API Responses](#http-api-responses) 258d714cf81SRob Bradford - [CPU Topology](#cpu-topology) 259d714cf81SRob Bradford - [Release Build Optimization](#release-build-optimization) 260d714cf81SRob Bradford - [Hypervisor Abstraction](#hypervisor-abstraction) 261d714cf81SRob Bradford - [Snapshot/Restore Improvements](#snapshotrestore-improvements) 262d714cf81SRob Bradford - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support) 263d714cf81SRob Bradford - [Enhancements to ARM64 Support](#enhancements-to-arm64-support) 264d714cf81SRob Bradford - [Intel SGX Support](#intel-sgx-support) 265198bd551SRob Bradford - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1) 266*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-26) 267*4f96fa15SRob Bradford - [Contributors](#contributors-30) 268d714cf81SRob Bradford- [v0.8.0](#v080) 269d714cf81SRob Bradford - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support) 270d714cf81SRob Bradford - [Experimental ARM64 Support](#experimental-arm64-support) 271d714cf81SRob Bradford - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests) 272d714cf81SRob Bradford - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices) 273d714cf81SRob Bradford - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements) 274*4f96fa15SRob Bradford - [Notable Bug Fixes](#notable-bug-fixes-27) 275d714cf81SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes) 276*4f96fa15SRob Bradford - [Contributors](#contributors-31) 27796be8229SRob Bradford- [v0.7.0](#v070) 27896be8229SRob Bradford - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug) 27996be8229SRob Bradford - [Alternative `libc` Support](#alternative-libc-support) 28096be8229SRob Bradford - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends) 28196be8229SRob Bradford - [Initial RamFS Support](#initial-ramfs-support) 28296be8229SRob Bradford - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem) 28396be8229SRob Bradford - [`Seccomp` Sandboxing](#seccomp-sandboxing) 28496be8229SRob Bradford - [Updated Distribution Support](#updated-distribution-support) 28552b83969SRob Bradford - [Command Line and API Changes](#command-line-and-api-changes-1) 286*4f96fa15SRob Bradford - [Contributors](#contributors-32) 28703cb26ccSSamuel Ortiz- [v0.6.0](#v060) 28803cb26ccSSamuel Ortiz - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug) 28903cb26ccSSamuel Ortiz - [Shared Filesystem Improvements](#shared-filesystem-improvements) 29003cb26ccSSamuel Ortiz - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading) 29103cb26ccSSamuel Ortiz - [Command Line Interface](#command-line-interface) 29203cb26ccSSamuel Ortiz - [PVH Boot](#pvh-boot) 293*4f96fa15SRob Bradford - [Contributors](#contributors-33) 29494f2fc33SRob Bradford- [v0.5.1](#v051) 2952f395e60SSamuel Ortiz- [v0.5.0](#v050) 29694f2fc33SRob Bradford - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing) 29794f2fc33SRob Bradford - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization) 29894f2fc33SRob Bradford - [New Interrupt Management Framework](#new-interrupt-management-framework) 29994f2fc33SRob Bradford - [Development Tools](#development-tools) 30094f2fc33SRob Bradford - [Kata Containers Integration](#kata-containers-integration) 301*4f96fa15SRob Bradford - [Contributors](#contributors-34) 302cec884e8SSamuel Ortiz- [v0.4.0](#v040) 30394f2fc33SRob Bradford - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition) 30494f2fc33SRob Bradford - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation) 30594f2fc33SRob Bradford - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends) 30694f2fc33SRob Bradford - [Guest pause and resume](#guest-pause-and-resume) 30794f2fc33SRob Bradford - [Userspace IOAPIC by default](#userspace-ioapic-by-default) 30894f2fc33SRob Bradford - [PCI BAR reprogramming](#pci-bar-reprogramming) 30994f2fc33SRob Bradford - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization) 310*4f96fa15SRob Bradford - [Contributors](#contributors-35) 3118e8a7b6dSSamuel Ortiz- [v0.3.0](#v030) 31294f2fc33SRob Bradford - [Block device offloading](#block-device-offloading) 31394f2fc33SRob Bradford - [Network device backend](#network-device-backend) 31494f2fc33SRob Bradford - [Virtual sockets](#virtual-sockets) 31594f2fc33SRob Bradford - [HTTP based API](#http-based-api) 31694f2fc33SRob Bradford - [Memory mapped virtio transport](#memory-mapped-virtio-transport) 31794f2fc33SRob Bradford - [Paravirtualized IOMMU](#paravirtualized-iommu) 31894f2fc33SRob Bradford - [Ubuntu 19.10](#ubuntu-1910) 31994f2fc33SRob Bradford - [Large memory guests](#large-memory-guests) 3207688e6e2SSamuel Ortiz- [v0.2.0](#v020) 32194f2fc33SRob Bradford - [Network device offloading](#network-device-offloading) 32294f2fc33SRob Bradford - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi) 32394f2fc33SRob Bradford - [Debug I/O port](#debug-io-port) 32494f2fc33SRob Bradford - [Improved direct device assignment](#improved-direct-device-assignment) 32594f2fc33SRob Bradford - [Improved shared filesystem](#improved-shared-filesystem) 32694f2fc33SRob Bradford - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci) 3277688e6e2SSamuel Ortiz- [v0.1.0](#v010) 32894f2fc33SRob Bradford - [Shared filesystem](#shared-filesystem) 32994f2fc33SRob Bradford - [Initial direct device assignment support](#initial-direct-device-assignment-support) 33094f2fc33SRob Bradford - [Userspace IOAPIC](#userspace-ioapic) 33194f2fc33SRob Bradford - [Virtual persistent memory](#virtual-persistent-memory) 33294f2fc33SRob Bradford - [Linux kernel bzImage](#linux-kernel-bzimage) 33394f2fc33SRob Bradford - [Console over virtio](#console-over-virtio) 33494f2fc33SRob Bradford - [Unit testing](#unit-testing) 33594f2fc33SRob Bradford - [Integration tests parallelization](#integration-tests-parallelization) 33694f2fc33SRob Bradford 337*4f96fa15SRob Bradford# v39.0 338*4f96fa15SRob Bradford 339*4f96fa15SRob BradfordThis release has been tracked in our [roadmap 340*4f96fa15SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 341*4f96fa15SRob Bradfordv39.0. The following user visible changes have been made: 342*4f96fa15SRob Bradford 343*4f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments 344*4f96fa15SRob Bradford 345*4f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that 346*4f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously 347*4f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may 348*4f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With 349*4f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387) 350*4f96fa15SRob Bradford 351*4f96fa15SRob Bradford### Direct Booting with bzImages 352*4f96fa15SRob Bradford 353*4f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200) 354*4f96fa15SRob Bradford 355*4f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support 356*4f96fa15SRob Bradford 357*4f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the 358*4f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235) 359*4f96fa15SRob Bradford 360*4f96fa15SRob Bradford### Guest NMI Injection Support 361*4f96fa15SRob Bradford 362*4f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the 363*4f96fa15SRob Bradfordguest. (#6047) 364*4f96fa15SRob Bradford 365*4f96fa15SRob Bradford### Notable Bug Fixes 366*4f96fa15SRob Bradford 367*4f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353) 368*4f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208) 369*4f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247) 370*4f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268) 371*4f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock` 372*4f96fa15SRob Bradford (#6306) 373*4f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359) 374*4f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372) 375*4f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297, 376*4f96fa15SRob Bradford #6319) 377*4f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337, 378*4f96fa15SRob Bradford #6338) 379*4f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across 380*4f96fa15SRob Bradford snapshot/restore (#6332, #6286) 381*4f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274) 382*4f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293) 383*4f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230) 384*4f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration 385*4f96fa15SRob Bradford (#6326, #6265) 386*4f96fa15SRob Bradford 387*4f96fa15SRob Bradford### Contributors 388*4f96fa15SRob Bradford 389*4f96fa15SRob BradfordMany thanks to everyone who has contributed to our release: 390*4f96fa15SRob Bradford 391*4f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com> 392*4f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com> 393*4f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com> 394*4f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke> 395*4f96fa15SRob Bradford* Chris Webb <chris@arachsys.com> 396*4f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 397*4f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com> 398*4f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com> 399*4f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 400*4f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 401*4f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com> 402*4f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 403*4f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de> 404*4f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com> 405*4f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com> 406*4f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com> 407*4f96fa15SRob Bradford 408ef4fbf08SBo Chen# v38.0 409ef4fbf08SBo Chen 410ef4fbf08SBo ChenThis release has been tracked in our [roadmap 411ef4fbf08SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 412ef4fbf08SBo Chenv38.0. The following user visible changes have been made: 413ef4fbf08SBo Chen 414ef4fbf08SBo Chen### Group Rate Limiter on Block Devices 415ef4fbf08SBo Chen 416ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new 417ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O 418ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md) 419ef4fbf08SBo Chen 420ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread 421ef4fbf08SBo Chen 422ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices 423ef4fbf08SBo Chento specific host cpus. 424ef4fbf08SBo Chen 425ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault 426ef4fbf08SBo Chen 427ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel 428ef4fbf08SBo Chenmemory prefault. 429ef4fbf08SBo Chen 430ef4fbf08SBo Chen### New 'debug-console' Device 431ef4fbf08SBo Chen 432ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug 433ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug 434ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md). 435ef4fbf08SBo Chen 436ef4fbf08SBo Chen### Improved VFIO Device Support 437ef4fbf08SBo Chen 438ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO 439ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same 440ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving 441ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU 442ef4fbf08SBo Chenand an IB device). 443ef4fbf08SBo Chen 444ef4fbf08SBo Chen### Extended CPU Affinity Support 445ef4fbf08SBo Chen 446ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger 447ef4fbf08SBo Chenthan 255. 448ef4fbf08SBo Chen 449ef4fbf08SBo Chen### Notable Bug Fixes 450ef4fbf08SBo Chen 451ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software 452ef4fbf08SBo Chensuch as hwloc in the guest (#6146) 453ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141) 454ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062) 455ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095) 456ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106) 457ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196) 458ef4fbf08SBo Chen 459ef4fbf08SBo Chen### Contributors 460ef4fbf08SBo Chen 461ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release: 462ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is> 463ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com> 464ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com> 465ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com> 466ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com> 467ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com> 468ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 469ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 470ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com> 471ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 472ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com> 473ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 474ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com> 475ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com> 476ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com> 477ef4fbf08SBo Chen 4785e702dcdSBo Chen# v37.0 4795e702dcdSBo Chen 4805e702dcdSBo ChenThis release has been tracked in our [roadmap 4815e702dcdSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 4825e702dcdSBo Chenv37.0. The following user visible changes have been made: 4835e702dcdSBo Chen 4845e702dcdSBo Chen### Long Term Support (LTS) Release 4855e702dcdSBo Chen 4865e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made 4875e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be 4885e702dcdSBo Chensupported between the point releases of the LTS. 4895e702dcdSBo Chen 4905e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices 4915e702dcdSBo Chen 4925e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI 4935e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and 4945e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance. 4955e702dcdSBo Chen 4965e702dcdSBo Chen### Configurable Named TAP Devices 4975e702dcdSBo Chen 4985e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP 4995e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud 5005e702dcdSBo ChenHypervisor (e.g. not existing TAP devices). 5015e702dcdSBo Chen 5025e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console 5035e702dcdSBo Chen 5045e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as 5055e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the 5065e702dcdSBo Chenlegacy serial device without losing performance benefits of using 5075e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as 5085e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86). 5095e702dcdSBo Chen 5105e702dcdSBo Chen### Faster VM Restoration from Snapshots 5115e702dcdSBo Chen 5125e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better 5135e702dcdSBo Chenimplementation of deserializing JSON files. 5145e702dcdSBo Chen 5155e702dcdSBo Chen### Notable Bug Fixes 5165e702dcdSBo Chen 5175e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache 5185e702dcdSBo Chen disabled (#5930) 5195e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956) 5205e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967) 5215e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025) 5225e702dcdSBo Chen 5235e702dcdSBo Chen### Contributors 5245e702dcdSBo Chen 5255e702dcdSBo ChenMany thanks to everyone who has contributed to our release: 5265e702dcdSBo Chen 5275e702dcdSBo Chen* Bo Chen <chen.bo@intel.com> 5285e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com> 5295e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com> 5305e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com> 5315e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com> 5325e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com> 5335e702dcdSBo Chen* Rui Chang <rui.chang@arm.com> 5345e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 5355e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 5365e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com> 5375e702dcdSBo Chen* Yi Wang <foxywang@tencent.com> 5385e702dcdSBo Chen* Yong He <alexyonghe@tencent.com> 5395e702dcdSBo Chen 540f5899d15SBo Chen# v36.0 541f5899d15SBo Chen 542f5899d15SBo ChenThis release has been tracked in our [roadmap 543f5899d15SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 544f5899d15SBo Chenv36.0. The following user visible changes have been made: 545f5899d15SBo Chen 546f5899d15SBo Chen### Command Line Changes 547f5899d15SBo Chen 548f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line, 549f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax 550f5899d15SBo Chenchanges: 551f5899d15SBo Chen 552f5899d15SBo Chen* All `--option value` commands now are `--option=value`. 553f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`. 554f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`. 555f5899d15SBo Chen 556f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change. 557f5899d15SBo Chen 558f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI 559f5899d15SBo Chen 560f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor 561f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI 562f5899d15SBo Chen(`--version -v`). 563f5899d15SBo Chen 564f5899d15SBo Chen### NUMA Support for PCI segments 565f5899d15SBo Chen 566f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so 567f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA 568f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md) 569f5899d15SBo Chen 570f5899d15SBo Chen### CPU Topology Support on AMD Platforms 571f5899d15SBo Chen 572f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors. 573f5899d15SBo Chen 574f5899d15SBo Chen### Unix Socket Backend for Serial Port 575f5899d15SBo Chen 576f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing 577f5899d15SBo Chenusers to access the serial port using a Unix socket. 578f5899d15SBo Chen 579f5899d15SBo Chen### AIO Backend for Block Devices 580f5899d15SBo Chen 581f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block 582f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the 583f5899d15SBo Chenhost Operating System. 584f5899d15SBo Chen 585f5899d15SBo Chen### Documentation Improvements 586f5899d15SBo Chen 587f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data 588f5899d15SBo Chen* Various typo fixes 589f5899d15SBo Chen 590f5899d15SBo Chen### Notable Bug Fixes 591f5899d15SBo Chen 592f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845) 593f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is 594f5899d15SBo Chen enabled (#5834) 595f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893) 596f5899d15SBo Chen 597f5899d15SBo Chen### Contributors 598f5899d15SBo Chen 599f5899d15SBo ChenMany thanks to everyone who has contributed to our release: 600f5899d15SBo Chen 601f5899d15SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 602f5899d15SBo Chen* Bo Chen <chen.bo@intel.com> 603f5899d15SBo Chen* Dario Nieuwenhuis <dirbaio@dirbaio.net> 604f5899d15SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 605f5899d15SBo Chen* Jinank Jain <jinankjain@microsoft.com> 606f5899d15SBo Chen* Muminul Islam <muislam@microsoft.com> 607f5899d15SBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 608f5899d15SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 609f5899d15SBo Chen* Rob Bradford <rbradford@rivosinc.com> 610f5899d15SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 611f5899d15SBo Chen* Wei Liu <liuwe@microsoft.com> 612f5899d15SBo Chen* Yi Wang <foxywang@tencent.com> 613f5899d15SBo Chen* dom.song <dom.song@amperecomputing.com> 614f5899d15SBo Chen 615339912a5SBo Chen# v35.0 616339912a5SBo Chen 617339912a5SBo ChenThis release has been tracked in our [roadmap 618339912a5SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 619339912a5SBo Chenv35.0. The following user visible changes have been made: 620339912a5SBo Chen 621339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+ 622339912a5SBo Chen 623339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor, 624339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation 625339912a5SBo Chennow support both situations. 626339912a5SBo Chen 627339912a5SBo Chen### User Specified Serial Number for `virtio-block` 628339912a5SBo Chen 629339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to 630339912a5SBo Chenspecify a serial number for block devices which will be guest visible. 631339912a5SBo Chen 632339912a5SBo Chen### vCPU TSC Frequency Included in Migration State 633339912a5SBo Chen 634339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC 635339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping. 636339912a5SBo Chen 637339912a5SBo Chen### Notable Bug Fixes 638339912a5SBo Chen 639339912a5SBo Chen* Disallow concurrent CPU resizing (#5668) 640339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681) 641339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719) 642339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720) 643339912a5SBo Chen* Ensure probing reads are block size aligned (#5727) 644339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices 645339912a5SBo Chen (#5712, #5750, #5762, #5763) 646339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772) 647339912a5SBo Chen 648339912a5SBo Chen### Contributors 649339912a5SBo Chen 650339912a5SBo ChenMany thanks to everyone who has contributed to our release: 651339912a5SBo Chen 652339912a5SBo Chen* Alyssa Ross <hi@alyssa.is> 653339912a5SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 654339912a5SBo Chen* Bo Chen <chen.bo@intel.com> 655339912a5SBo Chen* Christian Blichmann <cblichmann@google.com> 656339912a5SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 657339912a5SBo Chen* Jinank Jain <jinankjain@microsoft.com> 658339912a5SBo Chen* Julian Stecklina <julian.stecklina@cyberus-technology.de> 659339912a5SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 660339912a5SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 661339912a5SBo Chen* Rob Bradford <rbradford@rivosinc.com> 662339912a5SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 663339912a5SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com> 664339912a5SBo Chen* Wei Liu <liuwe@microsoft.com> 665339912a5SBo Chen* Yi Wang <foxywang@tencent.com> 666339912a5SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 667339912a5SBo Chen 668487a43cdSRob Bradford# v34.0 669487a43cdSRob Bradford 670487a43cdSRob BradfordThis release has been tracked in our [roadmap 671487a43cdSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 672487a43cdSRob Bradfordv34.0. The following user visible changes have been made: 673487a43cdSRob Bradford 674487a43cdSRob Bradford### Paravirtualised Panic Device Support 675487a43cdSRob Bradford 676487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has 677487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new 678487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526) 679487a43cdSRob Bradford 680487a43cdSRob Bradford### Improvements to VM Core Dump 681487a43cdSRob Bradford 682487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause 683487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604) 684487a43cdSRob Bradford 685487a43cdSRob Bradford### QCOW2 Support for Backing Files 686487a43cdSRob Bradford 687487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using 688487a43cdSRob Bradfordbacking files. (#5573) 689487a43cdSRob Bradford 690487a43cdSRob Bradford### Minimum Host Kernel Bump 691487a43cdSRob Bradford 692487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix 693487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626) 694487a43cdSRob Bradford 695487a43cdSRob Bradford### Notable Bug Fixes 696487a43cdSRob Bradford 697487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel 698487a43cdSRob Bradford carries out this job with KVM) (#5561). 699487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather 700487a43cdSRob Bradford than MSI-X (#5658). 701487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be 702487a43cdSRob Bradford blocked until that asynchronous event has been received (#5645). 703487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing 704487a43cdSRob Bradford when all vCPUs are paused (#5611). 705487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633). 706487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573). 707487a43cdSRob Bradford 708487a43cdSRob Bradford### Contributors 709487a43cdSRob Bradford 710487a43cdSRob BradfordMany thanks to everyone who has contributed to our release: 711487a43cdSRob Bradford 712487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is> 713487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 714487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com> 715487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com> 716487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com> 717487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com> 718487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 719487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 720487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 721487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 722487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 723487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com> 724487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com> 725487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 726487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com> 727487a43cdSRob Bradford 7286e0e6323SBo Chen# v33.0 7296e0e6323SBo Chen 7306e0e6323SBo ChenThis release has been tracked in our [roadmap 7316e0e6323SBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 7326e0e6323SBo Chenv33.0. The following user visible changes have been made: 7336e0e6323SBo Chen 7346e0e6323SBo Chen### D-Bus based API 7356e0e6323SBo Chen 7366e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST 7376e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be 7386e0e6323SBo Chenfound in the [API documentation](docs/api.md). 7396e0e6323SBo Chen 7406e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64 7416e0e6323SBo Chen 7426e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the 7436e0e6323SBo Chenguest on AArch64. 7446e0e6323SBo Chen 7456e0e6323SBo Chen### Notable Bug Fixes 7466e0e6323SBo Chen 7476e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453) 7486e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469) 7496e0e6323SBo Chen* Fix TDX initialization (#5454) 7506e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496) 7516e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty 7526e0e6323SBo Chen (#5506, #5524) 7536e0e6323SBo Chen* Populate APIC ID properly (#5512) 7546e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522) 7556e0e6323SBo Chen 7566e0e6323SBo Chen### Contributors 7576e0e6323SBo Chen 7586e0e6323SBo ChenMany thanks to everyone who has contributed to our release: 7596e0e6323SBo Chen 7606e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is> 7616e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 7626e0e6323SBo Chen* Bo Chen <chen.bo@intel.com> 7636e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com> 7646e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr> 7656e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com> 7666e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 7676e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com> 7686e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 7696e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 7706e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com> 7716e0e6323SBo Chen 77242ca292dSRob Bradford# v32.0 77342ca292dSRob Bradford 77442ca292dSRob BradfordThis release has been tracked in our [roadmap 77542ca292dSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 77642ca292dSRob Bradfordv32.0. The following user visible changes have been made: 77742ca292dSRob Bradford 77842ca292dSRob Bradford### Increased PCI Segment Limit 77942ca292dSRob Bradford 78042ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16). 78142ca292dSRob Bradford 78242ca292dSRob Bradford### API Changes 78342ca292dSRob Bradford 78442ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details. 78542ca292dSRob Bradford (#5348) 78642ca292dSRob Bradford 78742ca292dSRob Bradford### Notable Bug Fixes 78842ca292dSRob Bradford 78942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 79042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 79142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 79242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 79342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 79442ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357) 79542ca292dSRob Bradford* Fixes for TTY reset (#5414) 79642ca292dSRob Bradford* CPU topology fixes on MSHV (#5325) 79742ca292dSRob Bradford* Seccomp fixes for older distributions (#5397) 79842ca292dSRob Bradford 79942ca292dSRob Bradford### Contributors 80042ca292dSRob Bradford 80142ca292dSRob BradfordMany thanks to everyone who has contributed to our release: 80242ca292dSRob Bradford 80342ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is> 80442ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 80542ca292dSRob Bradford* Bo Chen <chen.bo@intel.com> 80642ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com> 80742ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com> 80842ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr> 80942ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com> 81042ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com> 81142ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com> 81242ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com> 81342ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com> 81442ca292dSRob Bradford 81542ca292dSRob Bradford# v31.1 81642ca292dSRob Bradford 81742ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed: 81842ca292dSRob Bradford 81942ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350) 82042ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373) 82142ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360) 82242ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343) 82342ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361) 82442ca292dSRob Bradford 825f3522e85SMichael Zhao# v31.0 826f3522e85SMichael Zhao 827f3522e85SMichael ZhaoThis release has been tracked in our [roadmap 828f3522e85SMichael Zhaoproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 829f3522e85SMichael Zhaov31.0. The following user visible changes have been made: 830f3522e85SMichael Zhao 831f3522e85SMichael Zhao### Update to Latest `acpi_tables` 832f3522e85SMichael Zhao 833f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables). 834f3522e85SMichael ZhaoThere has been significant API changes in the crate. 835f3522e85SMichael Zhao 836f3522e85SMichael Zhao### Update Reference Kernel to 6.2 837f3522e85SMichael Zhao 838f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2. 839f3522e85SMichael Zhao 840f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler 841f3522e85SMichael Zhao 842f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize 843f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable. 844f3522e85SMichael Zhao 845f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one 846f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console 847f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both 848f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler 849f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5. 850f3522e85SMichael Zhao 851f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file` 852f3522e85SMichael Zhao 853f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported. 854f3522e85SMichael Zhao 855f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone` 856f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for 857f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had 858f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory. 859f3522e85SMichael Zhao 860f3522e85SMichael Zhao### Documentation Improvements 861f3522e85SMichael Zhao 862f3522e85SMichael Zhao* Various improvements in API document 863f3522e85SMichael Zhao* Improvements in Doc comments 864f3522e85SMichael Zhao* Updated Slack channel information in README 865f3522e85SMichael Zhao 866f3522e85SMichael Zhao### Notable Bug Fixes 867f3522e85SMichael Zhao 868f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS 869f3522e85SMichael Zhao client. 870f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API 871f3522e85SMichael Zhao endpoint. 872f3522e85SMichael Zhao 873f3522e85SMichael Zhao### Contributors 874f3522e85SMichael Zhao 875f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release: 876f3522e85SMichael Zhao 877f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is> 878f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com> 879f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io> 880f3522e85SMichael Zhao* Dom <peng6662001@163.com> 881f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com> 882f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com> 883f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr> 884f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 885f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com> 886f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com> 887f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com> 888f3522e85SMichael Zhao* Yang <ailin.yang@intel.com> 889f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com> 890f3522e85SMichael Zhao 891ece0e6faSBo Chen# v30.0 892ece0e6faSBo Chen 893ece0e6faSBo ChenThis release has been tracked in our [roadmap 894ece0e6faSBo Chenproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 895ece0e6faSBo Chenv30.0. The following user visible changes have been made: 896ece0e6faSBo Chen 897ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size 898ece0e6faSBo Chen 899ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command 900ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There 901ece0e6faSBo Chenwere several syntax changes: 902ece0e6faSBo Chen 903ece0e6faSBo Chen* All `--option=value` commands now are `--option value`. 904ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`. 905ece0e6faSBo Chen* The `-vvv` command now is `-v -v -v` 906ece0e6faSBo Chen 907ece0e6faSBo Chen### Basic vfio-user Server Support 908ece0e6faSBo Chen 909ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support 910ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its 911ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the 912ece0e6faSBo Chen`rust-vmm` organization. 913ece0e6faSBo Chen 914ece0e6faSBo Chen### Heap Profiling Support 915ece0e6faSBo Chen 916ece0e6faSBo ChenA new building target is added for profiling purposes with examples of 917ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature. 918ece0e6faSBo Chen 919ece0e6faSBo Chen### Documentation Improvements 920ece0e6faSBo Chen 921ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building 922ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim), 923ece0e6faSBo Chenreferences to [TDX Tools](https://github.com/intel/tdx-tools), and 924ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also, 925ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the 926ece0e6faSBo Chenexisting 'profiling' documentation. 927ece0e6faSBo Chen 928ece0e6faSBo Chen### Notable Bug Fixes 929ece0e6faSBo Chen 930ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206) 931ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211) 932ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179) 933ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151) 934ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186) 935ece0e6faSBo Chen 936ece0e6faSBo Chen### Contributors 937ece0e6faSBo Chen 938ece0e6faSBo ChenMany thanks to everyone who has contributed to our release: 939ece0e6faSBo Chen 940ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com> 941ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com> 942ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com> 943ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com> 944ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com> 945ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com> 946ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com> 947ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de> 948ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com> 949ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com> 950ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com> 951ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com> 952ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com> 953ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com> 954ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com> 955ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com> 956ece0e6faSBo Chen 957ece0e6faSBo Chen# v28.2 958ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed: 959ece0e6faSBo Chen 960ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034) 961ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037) 962ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095) 963ece0e6faSBo Chen 96422cf8c97SRob Bradford# v29.0 96522cf8c97SRob Bradford 96622cf8c97SRob BradfordThis release has been tracked in our [roadmap 96722cf8c97SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 96822cf8c97SRob Bradfordv29.0. The following user visible changes have been made: 96922cf8c97SRob Bradford 97022cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM 97122cf8c97SRob Bradford 97222cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV 97322cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use. 97422cf8c97SRob Bradford 97522cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements 97622cf8c97SRob Bradford 97722cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration 97822cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older 97922cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially 98022cf8c97SRob Bradfordsupported but has worked for some versions.) 98122cf8c97SRob Bradford 98222cf8c97SRob Bradford### Heap Allocation Improvements 98322cf8c97SRob Bradford 98422cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with 98522cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size. 98622cf8c97SRob Bradford 98722cf8c97SRob Bradford### `ch-remote` Improvements 98822cf8c97SRob Bradford 98922cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to 99022cf8c97SRob Bradford`ch-remote`. 99122cf8c97SRob Bradford 99222cf8c97SRob Bradford### `AArch64` Documentation Integration 99322cf8c97SRob Bradford 99422cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main 99522cf8c97SRob BradfordREADME. 99622cf8c97SRob Bradford 99722cf8c97SRob Bradford### `virtio-block` Counters Enhancement 99822cf8c97SRob Bradford 99922cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max 100022cf8c97SRob Bradfordlatency counters. 100122cf8c97SRob Bradford 100222cf8c97SRob Bradford### TCP Offload Control 100322cf8c97SRob Bradford 100422cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of 100522cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments 100622cf8c97SRob Bradfordwhere the hardware lacks support for the offloading. 100722cf8c97SRob Bradford 100822cf8c97SRob Bradford### Notable Bug Fixes 100922cf8c97SRob Bradford 101022cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an 101122cf8c97SRob Bradford infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 101222cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 101322cf8c97SRob Bradford (#4924, #4949) 101422cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 101522cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016) 101622cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034) 101722cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037) 101822cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095) 101922cf8c97SRob Bradford 102022cf8c97SRob Bradford### Removals 102122cf8c97SRob Bradford 102222cf8c97SRob BradfordNo functionality has been removed in this release. 102322cf8c97SRob Bradford 102422cf8c97SRob Bradford### Deprecations 102522cf8c97SRob Bradford 102622cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or 102722cf8c97SRob Bradford `MemoryConfig::file` has been deprecated. This was originally used for 102822cf8c97SRob Bradford supporting huge pages or shared memory backing which is now natively supported 102922cf8c97SRob Bradford (#5085) 103022cf8c97SRob Bradford 103122cf8c97SRob Bradford### Contributors 103222cf8c97SRob Bradford 103322cf8c97SRob BradfordMany thanks to everyone who has contributed to our release: 103422cf8c97SRob Bradford 103522cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com> 103622cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com> 103722cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com> 103822cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com> 103922cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 104022cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com> 104122cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com> 104222cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de> 104322cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com> 104422cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 104522cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com> 104622cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com> 104722cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com> 104822cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com> 104922cf8c97SRob Bradford 105022cf8c97SRob Bradford 105122cf8c97SRob Bradford# v28.1 105222cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed: 105322cf8c97SRob Bradford 105422cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that 105522cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6)) 105622cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue 105722cf8c97SRob Bradford (#4924, #4949) 105822cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920) 105922cf8c97SRob Bradford* Improve README and documentation 106022cf8c97SRob Bradford 106166460765SRob Bradford# v28.0 106266460765SRob Bradford 106366460765SRob BradfordThis release has been tracked in our new [roadmap 106466460765SRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 106566460765SRob Bradfordv28.0. 106666460765SRob Bradford 106766460765SRob Bradford### Community Engagement (Reminder) 106866460765SRob Bradford 106966460765SRob BradfordJust a reminder that we have a new mailing list to support broader community 107066460765SRob Bradforddiscussions. Please consider 107166460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use 107266460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud 107366460765SRob BradfordHypervisor development. 107466460765SRob Bradford 107566460765SRob Bradford### Long Term Support (LTS) Release 107666460765SRob Bradford 107766460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS 107866460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18 107966460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point 108066460765SRob Bradfordreleases of the LTS. 108166460765SRob Bradford 108266460765SRob Bradford### Virtualised TPM Support 108366460765SRob Bradford 108466460765SRob BradfordSupport for adding an emulated CRB TPM has been added. This has it's own [TPM 108566460765SRob Bradforddocumentation](docs/tpm.md). 108666460765SRob Bradford 108766460765SRob Bradford### Transparent Huge Page Support 108866460765SRob Bradford 108966460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back 109066460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`) 109166460765SRob Bradfordthen this will be used resulting in improved boot performance. 109266460765SRob Bradford 109366460765SRob Bradford### README Quick Start Improved 109466460765SRob Bradford 109566460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the 109666460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries. 109766460765SRob Bradford 109866460765SRob Bradford### Notable Bug Fixes 109966460765SRob Bradford 110066460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher 110166460765SRob Bradford memory consumption (#4835) 110266460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799) 110366460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767) 110466460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863) 110566460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811) 110666460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on 110766460765SRob Bradford newer Linux kernels (#4744) 110866460765SRob Bradford* Error on reboot from race to close TAP devices (#4871) 110966460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888) 111066460765SRob Bradford 111166460765SRob Bradford### Removals 111266460765SRob Bradford 111366460765SRob BradfordThe following functionality has been removed: 111466460765SRob Bradford 111566460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511) 111666460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926) 111766460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737) 111866460765SRob Bradford 111966460765SRob Bradford### Contributors 112066460765SRob Bradford 112166460765SRob BradfordMany thanks to everyone who has contributed to our release: 112266460765SRob Bradford 112366460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 112466460765SRob Bradford* Bo Chen <chen.bo@intel.com> 112566460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 112666460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 112766460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 112866460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com> 112966460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn> 113066460765SRob Bradford* Michael Zhao <michael.zhao@arm.com> 113166460765SRob Bradford* Muminul Islam <muislam@microsoft.com> 113266460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com> 113366460765SRob Bradford* Rob Bradford <robert.bradford@intel.com> 113466460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 113566460765SRob Bradford* Wei Liu <liuwe@microsoft.com> 113666460765SRob Bradford 11372ba6a9bfSRob Bradford# v27.0 11382ba6a9bfSRob Bradford 11392ba6a9bfSRob BradfordThis release has been tracked in our new [roadmap 11402ba6a9bfSRob Bradfordproject](https://github.com/orgs/cloud-hypervisor/projects/6) as iteration 11412ba6a9bfSRob Bradfordv27.0. 11422ba6a9bfSRob Bradford 11432ba6a9bfSRob Bradford### Community Engagement 11442ba6a9bfSRob Bradford 11452ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions. 11462ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an 11472ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly. 11482ba6a9bfSRob Bradford 11492ba6a9bfSRob Bradford### Prebuilt Packages 11502ba6a9bfSRob Bradford 11512ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this 11522ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md) 11532ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different 11542ba6a9bfSRob Bradfordfirmware options available. 11552ba6a9bfSRob Bradford 11562ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest 11572ba6a9bfSRob Bradford 11582ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed 11592ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is 11602ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for 11612ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend 11622ba6a9bfSRob Bradford(#4658, #4676.) 11632ba6a9bfSRob Bradford 11642ba6a9bfSRob Bradford### Boot Tracing 11652ba6a9bfSRob Bradford 11662ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added 11672ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.) 11682ba6a9bfSRob Bradford 11692ba6a9bfSRob Bradford### Simplified Build Feature Flags 11702ba6a9bfSRob Bradford 11712ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified: 11722ba6a9bfSRob Bradford 11732ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors 11742ba6a9bfSRob Bradford (with `kvm` enabled by default), 11752ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support 11762ba6a9bfSRob Bradford now it is now possible to compile with the `mshv` feature (#4696,) 11772ba6a9bfSRob Bradford* `tracing` adds support for boot tracing, 11782ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb` 11792ba6a9bfSRob Bradford feature) and dumping guest memory. 11802ba6a9bfSRob Bradford 11812ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by 11822ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.) 11832ba6a9bfSRob Bradford 11842ba6a9bfSRob Bradford### Asynchronous Kernel Loading 11852ba6a9bfSRob Bradford 11862ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like 11872ba6a9bfSRob Bradfordx86-64. (#4538) 11882ba6a9bfSRob Bradford 11892ba6a9bfSRob Bradford### GDB Support for AArch64 11902ba6a9bfSRob Bradford 11912ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now 11922ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64. 11932ba6a9bfSRob Bradford 11942ba6a9bfSRob Bradford### Notable Bug Fixes 11952ba6a9bfSRob Bradford 11962ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue 11972ba6a9bfSRob Bradford where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.) 11982ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices 11992ba6a9bfSRob Bradford (#4520, #4533, #4535.) 12002ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697) 12012ba6a9bfSRob Bradford 12022ba6a9bfSRob Bradford### Deprecations 12032ba6a9bfSRob Bradford 12042ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should 12052ba6a9bfSRob Bradfordplan to use alternatives. 12062ba6a9bfSRob Bradford 12072ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated. 12082ba6a9bfSRob Bradford All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware) 12092ba6a9bfSRob Bradford support booting with PVH so support for loading firmware in a legacy mode is no 12102ba6a9bfSRob Bradford longer needed. This functionality will be removed in the next release. 12112ba6a9bfSRob Bradford 12122ba6a9bfSRob Bradford### Contributors 12132ba6a9bfSRob Bradford 12142ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release: 12152ba6a9bfSRob Bradford 12162ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 12172ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com> 12182ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com> 12192ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 12202ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de> 12212ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com> 12222ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com> 12232ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com> 12242ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 12252ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com> 12262ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com> 12272ba6a9bfSRob Bradford 1228ed9e54d6SRob Bradford# v26.0 1229ed9e54d6SRob Bradford 1230ed9e54d6SRob BradfordThis release has been tracked through the [v26.0 1231ed9e54d6SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/30). 1232ed9e54d6SRob Bradford 1233ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform` 1234ed9e54d6SRob Bradford 1235ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying 1236ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest) 1237ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.) 1238ed9e54d6SRob Bradford 1239ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support 1240ed9e54d6SRob Bradford 1241ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same 1242ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime. 1243ed9e54d6SRob Bradford 1244ed9e54d6SRob Bradford### Notable Bug Fixes 1245ed9e54d6SRob Bradford 1246ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454) 12477bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered 1248ed9e54d6SRob Bradford out (#4456) 1249ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363) 1250ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted 1251ed9e54d6SRob Bradford (#4269, #4293) 1252ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362) 1253ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing 1254ed9e54d6SRob Bradford the`virtio-fs` driver in OVMF to be used (#4341, #4314) 1255ed9e54d6SRob Bradford* VHDX file format header fix (#4291) 1256ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463) 1257ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442) 1258ed9e54d6SRob Bradford 1259ed9e54d6SRob Bradford### Deprecations 1260ed9e54d6SRob Bradford 1261ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should 1262ed9e54d6SRob Bradfordplan to use alternatives. 1263ed9e54d6SRob Bradford 1264ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been 1265ed9e54d6SRob Bradford moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document 1266ed9e54d6SRob Bradford has been updated to reflect the change and the old API members continue to 1267ed9e54d6SRob Bradford function and are mapped to the new version. The expectation is that these old 1268ed9e54d6SRob Bradford versions will be removed in the v28.0 release. 1269ed9e54d6SRob Bradford 1270ed9e54d6SRob Bradford### Removals 1271ed9e54d6SRob Bradford 1272ed9e54d6SRob BradfordThe following functionality has been removed: 1273ed9e54d6SRob Bradford 1274ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and 1275ed9e54d6SRob Bradford equivalent. This was residual from the the removal of the `vhost-user-block` 1276ed9e54d6SRob Bradford spawning feature (#4402.) 1277ed9e54d6SRob Bradford 1278ed9e54d6SRob Bradford### Contributors 1279ed9e54d6SRob Bradford 1280ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release: 1281ed9e54d6SRob Bradford 1282ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is> 1283ed9e54d6SRob Bradford* Anatol Belski <ab@php.net> 1284ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com> 1285ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com> 1286ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 1287ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com> 1288ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1289ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1290ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1291ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com> 1292ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com> 1293ed9e54d6SRob Bradford 1294b132cd21SRob Bradford# v25.0 1295b132cd21SRob Bradford 1296b132cd21SRob BradfordThis release has been tracked through the [v25.0 1297b132cd21SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/29). 1298b132cd21SRob Bradford 1299b132cd21SRob Bradford### `ch-remote` Improvements 1300b132cd21SRob Bradford 1301b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON 1302b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM. 1303b132cd21SRob Bradford 1304b132cd21SRob Bradford### VM "Coredump" Support 1305b132cd21SRob Bradford 1306b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory 1307b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012) 1308b132cd21SRob Bradford 1309b132cd21SRob Bradford### Notable Bug Fixes 1310b132cd21SRob Bradford 1311b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248) 1312b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244) 1313b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279) 1314b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286) 1315b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux 1316b132cd21SRob Bradford 5.16 (#4156) 1317b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer 1318b132cd21SRob Bradford Linux guest 1319b132cd21SRob Bradford 1320b132cd21SRob Bradford### Removals 1321b132cd21SRob Bradford 1322b132cd21SRob BradfordThe following functionality has been removed: 1323b132cd21SRob Bradford 1324b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed 1325b132cd21SRob Bradford (#3968) 1326b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889) 1327b132cd21SRob Bradford 1328b132cd21SRob Bradford### Contributors 1329b132cd21SRob Bradford 1330b132cd21SRob BradfordMany thanks to everyone who has contributed to our release: 1331b132cd21SRob Bradford 1332b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com> 1333b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com> 1334b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1335b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1336b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1337b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com> 1338b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 1339b132cd21SRob Bradford 13400150de55SSebastien Boeuf# v24.0 13410150de55SSebastien Boeuf 13420150de55SSebastien BoeufThis release has been tracked through the [v24.0 13430150de55SSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/28). 13440150de55SSebastien Boeuf 13450150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu` 13460150de55SSebastien Boeuf 13470150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default 13480150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with 13490150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access 13500150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM 13510150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing 13520150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU. 13530150de55SSebastien Boeuf 13540150de55SSebastien Boeuf### Ensure Identifiers Uniqueness 13550150de55SSebastien Boeuf 13560150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical 13570150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot 13580150de55SSebastien Boeufor whenever a device was hot plugged into the VM. 13590150de55SSebastien Boeuf 13600150de55SSebastien Boeuf### Sparse Mmap support 13610150de55SSebastien Boeuf 13620150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This 13630150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped. 13640150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the 13650150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly 13660150de55SSebastien Boeufimpacts the performance related to this device. 13670150de55SSebastien Boeuf 13680150de55SSebastien Boeuf### Expose Platform Serial Number 13690150de55SSebastien Boeuf 13700150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to 13710150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the 13720150de55SSebastien Boeufguest through the SMBIOS. 13730150de55SSebastien Boeuf 13740150de55SSebastien Boeuf### Notable Bug Fixes 13750150de55SSebastien Boeuf 13760150de55SSebastien Boeuf* Fix loading RAW firmware (#4072) 13770150de55SSebastien Boeuf* Reject compressed QCOW images (#4055) 13780150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003) 13790150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069) 13800150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983) 13810150de55SSebastien Boeuf 13820150de55SSebastien Boeuf### Notable Improvements 13830150de55SSebastien Boeuf 13840150de55SSebastien Boeuf* Refactor interrupt handling (#4083) 13850150de55SSebastien Boeuf* Load kernel asynchronously (#4022) 13860150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013) 13870150de55SSebastien Boeuf 13880150de55SSebastien Boeuf### Deprecations 13890150de55SSebastien Boeuf 13900150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should 13910150de55SSebastien Boeufplan to use alternatives 13920150de55SSebastien Boeuf 13930150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated 13940150de55SSebastien Boeuf (#3968) 13950150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 13960150de55SSebastien Boeuf 13970150de55SSebastien Boeuf### New on the Website 13980150de55SSebastien Boeuf 13990150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual 14000150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine) 14010150de55SSebastien Boeufhas been added to the Cloud Hypervisor website. 14020150de55SSebastien Boeuf 14030150de55SSebastien Boeuf### Contributors 14040150de55SSebastien Boeuf 14050150de55SSebastien BoeufMany thanks to everyone who has contributed to our release: 14060150de55SSebastien Boeuf 14070150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com> 14080150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com> 14090150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 14100150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io> 14110150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com> 14120150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 14130150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 14140150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com> 14150150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com> 14160150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 14170150de55SSebastien Boeuf 14180150de55SSebastien Boeuf# v23.1 14190150de55SSebastien Boeuf 14200150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed: 14210150de55SSebastien Boeuf 14220150de55SSebastien Boeuf* Add some missing seccomp rules 14230150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal 14240150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026) 14250150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device 14260150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs 14270150de55SSebastien Boeuf 14280c9c56f5SRob Bradford# v23.0 14290c9c56f5SRob Bradford 14300c9c56f5SRob BradfordThis release has been tracked through the [v23.0 14310c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/27). 14320c9c56f5SRob Bradford 14330c9c56f5SRob Bradford### vDPA Support 14340c9c56f5SRob Bradford 14350c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but 14360c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API 14370c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor. 14380c9c56f5SRob Bradford 14390c9c56f5SRob Bradford### Updated OS Support list 14400c9c56f5SRob Bradford 14410c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to 14420c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed. 14430c9c56f5SRob Bradford 14440c9c56f5SRob Bradford### `AArch64` Memory Map Improvements 14450c9c56f5SRob Bradford 14460c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of 14470c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its 14480c9c56f5SRob Bradfordallocated RAM. (#3938) 14490c9c56f5SRob Bradford 14500c9c56f5SRob Bradford### `AMX` Support 14510c9c56f5SRob Bradford 14520c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the 14530c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime 14540c9c56f5SRob Bradfordenabling with `--cpu features=amx`. 14550c9c56f5SRob Bradford 14560c9c56f5SRob Bradford### Notable Bug Fixes 14570c9c56f5SRob Bradford 14580c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887) 14590c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914) 14600c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with 14610c9c56f5SRob Bradford `virtio-mem` (#3883) 14620c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the 14630c9c56f5SRob Bradford vIOMMU (#3870) 14640c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access 14650c9c56f5SRob Bradford (#3848) 14660c9c56f5SRob Bradford 14670c9c56f5SRob Bradford### Deprecations 14680c9c56f5SRob Bradford 14690c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should 14700c9c56f5SRob Bradfordplan to use alternatives 14710c9c56f5SRob Bradford 14720c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated 14730c9c56f5SRob Bradford (#3968) 14740c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889) 14750c9c56f5SRob Bradford 14760c9c56f5SRob Bradford### Contributors 14770c9c56f5SRob Bradford 14780c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release: 14790c9c56f5SRob Bradford 14800c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com> 14810c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 14820c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com> 14830c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 14840c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io> 14850c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com> 14860c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com> 14870c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 14880c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com> 14890c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com> 14900c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 14910c9c56f5SRob Bradford 14920c9c56f5SRob Bradford# v22.1 14930c9c56f5SRob Bradford 14940c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed: 14950c9c56f5SRob Bradford 14960c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827) 14970c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829) 14980c9c56f5SRob Bradford 14996aa10938SRob Bradford# v22.0 15006aa10938SRob Bradford 15010c9c56f5SRob BradfordThis release has been tracked through the [v22.0 15020c9c56f5SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/25). 15036aa10938SRob Bradford 15046aa10938SRob Bradford### GDB Debug Stub Support 15056aa10938SRob Bradford 15066aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled 15076aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in 15086aa10938SRob Bradfordthe [gdb 15096aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md). 15106aa10938SRob Bradford 15116aa10938SRob Bradford### `virtio-iommu` Backed Segments 15126aa10938SRob Bradford 15136aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g. 15146aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that 15156aa10938SRob Bradfordwill place all the specified segments behind the IOMMU. 15166aa10938SRob Bradford 15176aa10938SRob Bradford### Before Boot Configuration Changes 15186aa10938SRob Bradford 15196aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices, 15206aa10938SRob Bradfordresize) before the VM is booted. 15216aa10938SRob Bradford 15226aa10938SRob Bradford### `virtio-balloon` Free Page Reporting 15236aa10938SRob Bradford 15246aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages 15256aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that 15266aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved 15276aa10938SRob Bradfordmemory density. 15286aa10938SRob Bradford 15296aa10938SRob Bradford### Support for Direct Kernel Booting with TDX 15306aa10938SRob Bradford 15316aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to 15326aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX 15336aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim) 15346aa10938SRob Bradfordhas been updated for this usage. 15356aa10938SRob Bradford 15366aa10938SRob Bradford### PMU Support for AArch64 15376aa10938SRob Bradford 15386aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be 15396aa10938SRob Bradfordexposed automatically if available from the host. 15406aa10938SRob Bradford 15410c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License 15426aa10938SRob Bradford 15436aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0 15446aa10938SRob BradfordInternational" license which is aligned with the project charter under the 15456aa10938SRob BradfordLinux Foundation. 15466aa10938SRob Bradford 15476aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd` 15486aa10938SRob Bradford 15496aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd) 15506aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic" 15516aa10938SRob Bradfordversion. 15526aa10938SRob Bradford 15536aa10938SRob Bradford### Notable Bug Fixes 15546aa10938SRob Bradford 15556aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785) 15566aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689) 15576aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677) 15586aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607) 15596aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578) 15606aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609) 15616aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720) 15626aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737) 15636aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733) 15646aa10938SRob Bradford 15656aa10938SRob Bradford### Contributors 15666aa10938SRob Bradford 15676aa10938SRob BradfordMany thanks to everyone who has contributed to our release: 15686aa10938SRob Bradford 15696aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com> 15706aa10938SRob Bradford* Barret Rhoden <brho@google.com> 15716aa10938SRob Bradford* Bo Chen <chen.bo@intel.com> 15726aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 15736aa10938SRob Bradford* Feng Ye <yefeng@smartx.com> 15746aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com> 15756aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 15766aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com> 15776aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com> 15786aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com> 15796aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 15806aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com> 15816aa10938SRob Bradford 158295ca7997SRob Bradford# v21.0 158395ca7997SRob Bradford 158495ca7997SRob BradfordThis release has been tracked through the [v21.0 158595ca7997SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/24). 158695ca7997SRob Bradford 158795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade) 158895ca7997SRob Bradford 15896aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been 15906aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to 15916aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote 15926aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the 15936aa10938SRob Bradfordorder of 50ms vs 3s. (#3566) 159495ca7997SRob Bradford 159595ca7997SRob Bradford### Recommended Kernel is Now 5.15 159695ca7997SRob Bradford 15976aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel 15986aa10938SRob Bradfordis now 5.15. (#3530) 159995ca7997SRob Bradford 160095ca7997SRob Bradford### Notable Bug fixes 160195ca7997SRob Bradford 16027bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562) 160395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585) 160495ca7997SRob Bradford* Support live migration within firmware (#3586) 16057bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548) 160695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587) 160795ca7997SRob Bradford 160895ca7997SRob Bradford### Contributors 160995ca7997SRob Bradford 161095ca7997SRob BradfordMany thanks to everyone who has contributed to our release: 161195ca7997SRob Bradford 161295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 161395ca7997SRob Bradford* Barret Rhoden <brho@google.com> 161495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com> 161595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com> 161695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com> 161795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn> 161895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com> 161995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com> 162095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com> 162195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com> 162295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 162395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com> 162495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com> 162595ca7997SRob Bradford 162695ca7997SRob Bradford# v20.2 162795ca7997SRob Bradford 162895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 162995ca7997SRob Bradford 163095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize) 163195ca7997SRob Bradford when this fails due to older kernel (#3456) 163295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused 163395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised 163495ca7997SRob Bradford (#3496) 163595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497) 163695ca7997SRob Bradford 163795ca7997SRob Bradford# v20.1 163895ca7997SRob Bradford 163995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed: 164095ca7997SRob Bradford 164195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450) 164295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401) 164395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432) 164495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM 164595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore 164695ca7997SRob Bradford 16477fc0776aSSebastien Boeuf# v20.0 16487fc0776aSSebastien Boeuf 16497fc0776aSSebastien BoeufThis release has been tracked through the [v20.0 16507fc0776aSSebastien Boeufproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/23). 16517fc0776aSSebastien Boeuf 16527fc0776aSSebastien Boeuf### Multiple PCI segments support 16537fc0776aSSebastien Boeuf 16547fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and 16557fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments, 16567fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496. 16577fc0776aSSebastien Boeuf 16587fc0776aSSebastien Boeuf### CPU pinning 16597fc0776aSSebastien Boeuf 16607fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is 16617fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and 16627fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node. 16637fc0776aSSebastien Boeuf 16647fc0776aSSebastien Boeuf### Improved VFIO support 16657fc0776aSSebastien Boeuf 16667fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting 16677fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of 16687fc0776aSSebastien Boeufthe passthrough device. 16697fc0776aSSebastien Boeuf 16707fc0776aSSebastien Boeuf### Safer code 16717fc0776aSSebastien Boeuf 16727fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe 16737fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining 16747fc0776aSSebastien Boeufunsafe sections are safe to use. 16757fc0776aSSebastien Boeuf 16767fc0776aSSebastien Boeuf### Extended documentation 16777fc0776aSSebastien Boeuf 16787fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have 16797fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run 16807fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX. 16817fc0776aSSebastien Boeuf 16827fc0776aSSebastien Boeuf### Notable bug fixes 16837fc0776aSSebastien Boeuf 16847fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244) 16857fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338) 16867fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344) 16877fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393) 16887fc0776aSSebastien Boeuf 16897fc0776aSSebastien Boeuf### Contributors 16907fc0776aSSebastien Boeuf 16917fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release: 16927fc0776aSSebastien Boeuf 16937fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is> 16947fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com> 16957fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com> 16967fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com> 16977fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com> 16987fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com> 16997fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com> 17007fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com> 17017fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com> 17027fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com> 17037fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com> 17047fc0776aSSebastien Boeuf 1705d00eb4aaSRob Bradford# v19.0 1706d00eb4aaSRob Bradford 1707d00eb4aaSRob BradfordThis release has been tracked through the [v19.0 1708d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22). 1709d00eb4aaSRob Bradford 1710d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console` 1711d00eb4aaSRob Bradford 1712d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the 1713d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in 1714d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized. 1715d00eb4aaSRob Bradford 1716d00eb4aaSRob Bradford### PCI boot time optimisations 1717d00eb4aaSRob Bradford 1718d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in 1719d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest. 1720d00eb4aaSRob Bradford 1721d00eb4aaSRob Bradford### Improved TDX support 1722d00eb4aaSRob Bradford 1723d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now 1724d00eb4aaSRob Bradfordexposed via the firmware to the guest. 1725d00eb4aaSRob Bradford 1726d00eb4aaSRob Bradford### Live migration enhancements 1727d00eb4aaSRob Bradford 1728d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem` 1729d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live 1730d00eb4aaSRob Bradfordmigration. 1731d00eb4aaSRob Bradford 1732d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user` 1733d00eb4aaSRob Bradford 1734d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with 1735d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug. 1736d00eb4aaSRob Bradford 1737d00eb4aaSRob Bradford### AArch64 for `virtio-iommu` 1738d00eb4aaSRob Bradford 1739d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform. 1740d00eb4aaSRob Bradford 1741d00eb4aaSRob Bradford### Notable bug fixes 1742d00eb4aaSRob Bradford 1743d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or 1744d00eb4aaSRob Bradford snapshot/restore (#3165) 1745d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO 1746d00eb4aaSRob Bradford (#3078 #3113) 1747d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in 1748d00eb4aaSRob Bradford the underlying crate (#3157) 1749d00eb4aaSRob Bradford 1750d00eb4aaSRob Bradford### Contributors 1751d00eb4aaSRob Bradford 1752d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release: 1753d00eb4aaSRob Bradford 1754d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is> 1755d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com> 1756d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com> 1757d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com> 1758d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1759d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com> 1760d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com> 1761d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com> 1762d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com> 1763d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1764d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com> 1765d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com> 1766d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1767d00eb4aaSRob Bradford 17682c4f8d22SRob Bradford# v18.0 17692c4f8d22SRob Bradford 17702c4f8d22SRob BradfordThis release has been tracked through the [v18.0 17712c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21). 17722c4f8d22SRob Bradford 17732c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support 17742c4f8d22SRob Bradford 17752c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user` 17762c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller 17772c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line. 17782c4f8d22SRob Bradford 17792c4f8d22SRob Bradford### Migration support for `vhost-user` devices 17802c4f8d22SRob Bradford 17812c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live 17822c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly 17832c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this. 17842c4f8d22SRob Bradford 17852c4f8d22SRob Bradford### VHDX disk image support 17862c4f8d22SRob Bradford 17872c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor. 17882c4f8d22SRob Bradford 17892c4f8d22SRob Bradford### Device pass through on MSHV hypervisor 17902c4f8d22SRob Bradford 17912c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from 17922c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`) 17932c4f8d22SRob Bradford 17942c4f8d22SRob Bradford### AArch64 for support `virtio-mem` 17952c4f8d22SRob Bradford 17962c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64. 17972c4f8d22SRob Bradford 17982c4f8d22SRob Bradford### Live migration on MSHV hypervisor 17992c4f8d22SRob Bradford 18002c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including 18012c4f8d22SRob Bradfordefficient tracking of dirty pages. 18022c4f8d22SRob Bradford 18032c4f8d22SRob Bradford### AArch64 CPU topology support 18042c4f8d22SRob Bradford 18052c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be 18062c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device 18072c4f8d22SRob Bradfordtree. 18082c4f8d22SRob Bradford 18092c4f8d22SRob Bradford### Power button support on AArch64 18102c4f8d22SRob Bradford 18112c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`) 18122c4f8d22SRob Bradfordis now supported when running on AArch64. 18132c4f8d22SRob Bradford 18142c4f8d22SRob Bradford### Notable bug fixes 18152c4f8d22SRob Bradford 18162c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012) 18172c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005) 18182c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004) 18192c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049) 18202c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069) 18212c4f8d22SRob Bradford 18222c4f8d22SRob Bradford### Contributors 18232c4f8d22SRob Bradford 18242c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release: 18252c4f8d22SRob Bradford 18262c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is> 18272c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 18282c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com> 18292c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com> 18302c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu> 18312c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com> 18322c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 18332c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com> 18342c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de> 18352c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com> 18362c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com> 18372c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 18382c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com> 18392c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com> 1840e6db5999SRob Bradford 1841e6db5999SRob Bradford# v17.0 1842e6db5999SRob Bradford 1843e6db5999SRob BradfordThis release has been tracked through the [v17.0 1844e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20). 1845e6db5999SRob Bradford 1846e6db5999SRob Bradford### ARM64 NUMA support using ACPI 1847e6db5999SRob Bradford 1848e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for 1849e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options. 1850e6db5999SRob Bradford 1851e6db5999SRob Bradford### `Seccomp` support for MSHV backend 1852e6db5999SRob Bradford 1853e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV 1854e6db5999SRob Bradfordhypervisor backend. 1855e6db5999SRob Bradford 1856e6db5999SRob Bradford### Hotplug of `macvtap` devices 1857e6db5999SRob Bradford 1858e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the 1859e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote` 1860e6db5999SRob Bradfordtool supports this functionality when adding a network device. 1861e6db5999SRob Bradford 1862e6db5999SRob Bradford### Improved SGX support 1863e6db5999SRob Bradford 1864e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and 1865e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes. 1866e6db5999SRob Bradford 1867e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices 1868e6db5999SRob Bradford 1869e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the 1870e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection. 1871e6db5999SRob Bradford 1872e6db5999SRob Bradford### Notable bug fixes 1873e6db5999SRob Bradford 1874e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821). 1875e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the 1876e6db5999SRob Bradford `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM 1877e6db5999SRob Bradford(#2833). 1878e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763). 1879e6db5999SRob Bradford 1880e6db5999SRob Bradford### Contributors 1881e6db5999SRob Bradford 1882e6db5999SRob BradfordMany thanks to everyone who has contributed to our release: 1883e6db5999SRob Bradford 1884e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 1885e6db5999SRob Bradford* Arafatms <arafatms@outlook.com> 1886e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com> 1887e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com> 1888e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com> 1889e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 1890e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 1891e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com> 1892e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com> 1893e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com> 1894e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com> 1895e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 1896e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com> 1897e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com> 1898e6db5999SRob Bradford 18995ed8e01fSRob Bradford# v16.0 19005ed8e01fSRob Bradford 19015ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19). 19025ed8e01fSRob Bradford 19035ed8e01fSRob Bradford### Improved live migration support 19045ed8e01fSRob Bradford 19055ed8e01fSRob 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. 19065ed8e01fSRob Bradford 19075ed8e01fSRob Bradford### Improved `vhost-user` support 19085ed8e01fSRob Bradford 19095ed8e01fSRob 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. 19105ed8e01fSRob Bradford 19115ed8e01fSRob Bradford### ARM64 ACPI and UEFI support 19125ed8e01fSRob Bradford 19135ed8e01fSRob 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. 19145ed8e01fSRob Bradford 19155ed8e01fSRob Bradford### Notable bug fixes 19165ed8e01fSRob Bradford 19175ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578). 19185ed8e01fSRob 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). 19195ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore. 19205ed8e01fSRob Bradford 19215ed8e01fSRob Bradford### Removed functionality 19225ed8e01fSRob Bradford 19235ed8e01fSRob BradfordThe following formerly deprecated features have been removed: 19245ed8e01fSRob Bradford 19255ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 19265ed8e01fSRob Bradford binaries has been deprecated. When using direct boot users should configure 19275ed8e01fSRob Bradford their kernel with `CONFIG_PVH=y`. 19285ed8e01fSRob Bradford 19295ed8e01fSRob Bradford### Contributors 19305ed8e01fSRob Bradford 19315ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 19325ed8e01fSRob Bradford 19335ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 19345ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com> 19355ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn> 19365ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com> 19375ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com> 19385ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 19395ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com> 19405ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 19415ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com> 19425ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn> 19435ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com> 19445ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 19455ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com> 19465ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn> 19475ed8e01fSRob Bradford 194830a01277SRob Bradford# v15.0 194930a01277SRob Bradford 195030a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18). 195130a01277SRob Bradford 195230a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include: 195330a01277SRob Bradford 195430a01277SRob Bradford### Version numbering and stability guarantees 195530a01277SRob Bradford 195630a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that 195730a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability. 195830a01277SRob BradfordWith this new release we are beginning our new stability guarantees: 195930a01277SRob Bradford 196030a01277SRob Bradford* The API (including command line options) will not be removed or changed in a 196130a01277SRob Bradford breaking way without a minimum of 2 releases notice. Where possible warnings 196230a01277SRob Bradford will be given about the use of deprecated functionality and the deprecations 196330a01277SRob Bradford will be documented in the release notes. 196430a01277SRob Bradford* Point releases will be made between individual releases where there are 196530a01277SRob Bradford substantial bug fixes or security issues that need to be fixed. 196630a01277SRob Bradford 196730a01277SRob BradfordCurrently the following items are **not** guaranteed across updates: 196830a01277SRob Bradford 196930a01277SRob Bradford* Snapshot/restore is not supported across different versions 197030a01277SRob Bradford* Live migration is not supported across different versions 197130a01277SRob Bradford* The following features are considered experimental and may change 197230a01277SRob Bradford substantially between releases: TDX, SGX. 197330a01277SRob Bradford 197430a01277SRob Bradford### Network device rate limiting 197530a01277SRob Bradford 197630a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network 197730a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the 197830a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 197930a01277SRob Bradford 198030a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload 198130a01277SRob Bradford 198230a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net` 198330a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the 198430a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings 198530a01277SRob Bradfordeven if they are not advertised as configurable (#2528). 198630a01277SRob Bradford 198730a01277SRob Bradford### `--api-socket` supports file descriptor parameter 198830a01277SRob Bradford 198930a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file 199030a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to 199130a01277SRob Bradfordprogrammatically control Cloud Hypervisor. 199230a01277SRob Bradford 199330a01277SRob Bradford### Bug fixes 199430a01277SRob Bradford 199530a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that 199630a01277SRob Bradford results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277). 199730a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to 199830a01277SRob Bradford reprogram them (#1797,#1798) 199930a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer 200030a01277SRob Bradford exhaustion on the host) (#2517) 200130a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that 200230a01277SRob Bradford prevents snapshot & restore working (#2535) 200330a01277SRob Bradford 200430a01277SRob Bradford### Deprecations 200530a01277SRob Bradford 200630a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 200730a01277SRob Bradford 200830a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 200930a01277SRob Bradford binaries has been deprecated. When using direct boot users should configure 201030a01277SRob Bradford their kernel with `CONFIG_PVH=y`. Will be removed in v16.0. 201130a01277SRob Bradford 201230a01277SRob Bradford### Contributors 201330a01277SRob Bradford 201430a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces. 201530a01277SRob Bradford 201630a01277SRob Bradford* Alyssa Ross <hi@alyssa.is> 201730a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 201830a01277SRob Bradford* Bo Chen <chen.bo@intel.com> 201930a01277SRob Bradford* Gaelan Steele <gbs@canishe.com> 202030a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 202130a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com> 202230a01277SRob Bradford* Muminul Islam <muislam@microsoft.com> 202330a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com> 202430a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 202530a01277SRob Bradford* Wei Liu <liuwe@microsoft.com> 202630a01277SRob Bradford* William Douglas <william.douglas@intel.com> 202730a01277SRob Bradford 202830a01277SRob Bradford# v0.14.1 202930a01277SRob Bradford 203030a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed 203130a01277SRob Bradfordin this release: 203230a01277SRob Bradford 203330a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and 203430a01277SRob Bradford the lack of HyperV CPUID bit enabled (#2437, #2449, #2436) 203530a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455) 203630a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating 203730a01277SRob Bradford DescriptorChainTooShort errors in certain circumstances (#2450, #2424) 203830a01277SRob Bradford 203940c63dcfSRob Bradford# v0.14.0 204040c63dcfSRob Bradford 204140c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17). 204240c63dcfSRob Bradford 204340c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include: 204440c63dcfSRob Bradford 204540c63dcfSRob Bradford### Structured event monitoring 204640c63dcfSRob Bradford 204740c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured 204840c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of 204940c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further 205040c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud 205140c63dcfSRob BradfordHypervisor API surface. 205240c63dcfSRob Bradford 205340c63dcfSRob Bradford### MSHV improvements 205440c63dcfSRob Bradford 205540c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV 205640c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to 205740c63dcfSRob Bradfordthe MSHV support. 205840c63dcfSRob Bradford 205940c63dcfSRob Bradford### Improved aarch64 platform 206040c63dcfSRob Bradford 206140c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running 206240c63dcfSRob BradfordVM including an enhanced serial UART. 206340c63dcfSRob Bradford 206440c63dcfSRob Bradford### Updated hotplug documentation 206540c63dcfSRob Bradford 206640c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use 206740c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as 206840c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices. 206940c63dcfSRob Bradford 207040c63dcfSRob Bradford### PTY control for serial and `virtio-console` 207140c63dcfSRob Bradford 207240c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY 207340c63dcfSRob Bradfordallowing programmatic control of the console from another process through the 207440c63dcfSRob BradfordPTY subsystem. 207540c63dcfSRob Bradford 207640c63dcfSRob Bradford### Block device rate limiting 207740c63dcfSRob Bradford 207840c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM 207940c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the 208030a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md) 208140c63dcfSRob Bradford 208240c63dcfSRob Bradford 208340c63dcfSRob Bradford### Deprecations 208440c63dcfSRob Bradford 208540c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives 208640c63dcfSRob Bradford 208740c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage` 208840c63dcfSRob Bradford binaries has been deprecated. When using direct boot users should configure 208940c63dcfSRob Bradford their kernel with `CONFIG_PVH=y`. 209040c63dcfSRob Bradford 209140c63dcfSRob Bradford 209240c63dcfSRob Bradford### Contributors 209340c63dcfSRob Bradford 209440c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including 209540c63dcfSRob Bradfordsome new faces. 209640c63dcfSRob Bradford 209740c63dcfSRob BradfordBo Chen <chen.bo@intel.com> 209840c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com> 209940c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com> 210040c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com> 210140c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com> 210240c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com> 210340c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com> 210440c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com> 210540c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com> 210640c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com> 210740c63dcfSRob BradfordWei Liu <liuwe@microsoft.com> 210840c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com> 210940c63dcfSRob BradfordZide Chen <zide.chen@intel.com> 211040c63dcfSRob Bradford 2111f58b6f84SRob Bradford# v0.13.0 2112f58b6f84SRob Bradford 2113f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16). 2114f58b6f84SRob Bradford 2115f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include: 2116f58b6f84SRob Bradford 2117f58b6f84SRob Bradford### Wider VFIO device support 2118f58b6f84SRob Bradford 2119f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI 2120f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts. 2121f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary 2122f58b6f84SRob Bradforddrivers. 2123f58b6f84SRob Bradford 212440c63dcfSRob Bradford### Improved huge page support 2125f58b6f84SRob Bradford 2126f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to 2127f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest 2128f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the 2129f58b6f84SRob Bradforddesired size in their pool. 2130f58b6f84SRob Bradford 2131f58b6f84SRob Bradford### MACvTAP support 2132f58b6f84SRob Bradford 2133f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to 2134f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user. 2135f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP 2136f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md). 2137f58b6f84SRob Bradford 2138f58b6f84SRob Bradford### VHD disk image support 2139f58b6f84SRob Bradford 2140f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw 2141f58b6f84SRob Bradforddisk image with Cloud Hypervisor. 2142f58b6f84SRob Bradford 2143f58b6f84SRob Bradford### Improved Virtio device threading 2144f58b6f84SRob Bradford 2145f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more 2146f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a 2147f58b6f84SRob Bradfordpredictable name derived from the device id. 2148f58b6f84SRob Bradford 2149f58b6f84SRob Bradford### Clean shutdown support via synthetic power button 2150f58b6f84SRob Bradford 2151f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering 2152f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for 2153f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly 2154f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be 2155f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`. 2156f58b6f84SRob Bradford 2157f58b6f84SRob Bradford### Contributors 2158f58b6f84SRob Bradford 2159f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including 2160f58b6f84SRob Bradfordsome new faces. 2161f58b6f84SRob Bradford 2162f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com> 2163f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com> 2164f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com> 2165f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2166f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2167f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2168f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com> 2169f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com> 2170f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com> 2171f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com> 2172f58b6f84SRob Bradford 2173d42b5084SRob Bradford# v0.12.0 2174d42b5084SRob Bradford 2175d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15). 2176d42b5084SRob Bradford 2177d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include: 2178d42b5084SRob Bradford 2179d42b5084SRob Bradford### ARM64 enhancements 2180d42b5084SRob Bradford 2181d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the 2182d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system. 2183d42b5084SRob Bradford 2184d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning 2185d42b5084SRob Bradford 2186d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now 2187d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to 2188d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been 2189d42b5084SRob Bradfordremoved. 2190d42b5084SRob Bradford 2191d42b5084SRob Bradford### Migration of `vhost-user-fs` backend 2192d42b5084SRob Bradford 2193d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is 2194d42b5084SRob Bradfordinstead hosted in [it's own 2195d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs) 2196d42b5084SRob Bradford 2197d42b5084SRob Bradford### Enhanced "info" API 2198d42b5084SRob Bradford 2199d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the 2200d42b5084SRob Bradforddevices used by the VM including any VFIO devices used. 2201d42b5084SRob Bradford 2202d42b5084SRob Bradford### Contributors 2203d42b5084SRob Bradford 2204d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release: 2205d42b5084SRob Bradford 2206d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 2207d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com> 2208d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2209d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com> 2210d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2211d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2212d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com> 2213d42b5084SRob Bradford 22147dcd3affSRob Bradford# v0.11.0 22157dcd3affSRob Bradford 22167dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14). 22177dcd3affSRob Bradford 22187dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include: 22197dcd3affSRob Bradford 22207dcd3affSRob Bradford### `io_uring` support by default for `virtio-block` 22217dcd3affSRob Bradford 22227dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will 22237dcd3affSRob Bradfordbe used for a significantly higher performance block device. 22247dcd3affSRob Bradford 22257dcd3affSRob Bradford### Windows Guest Support 22267dcd3affSRob Bradford 22277dcd3affSRob BradfordThis is the first release where we officially support Windows running as a 22287dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a 22297dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows 22307dcd3affSRob Bradforddocumentation](docs/windows.md). 22317dcd3affSRob Bradford 22327dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation 22337dcd3affSRob Bradford 22347dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now 22357dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make 22367dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release. 22377dcd3affSRob Bradford 2238d00eb4aaSRob Bradford### `virtio-mmio` Removal 22397dcd3affSRob Bradford 22407dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been 22417dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly 22427dcd3affSRob Bradfordreduce the testing burden of the project. 22437dcd3affSRob Bradford 22447dcd3affSRob Bradford### Snapshot/Restore support for ARM64 22457dcd3affSRob Bradford 22467dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been 22477dcd3affSRob Bradfordimplemented. 22487dcd3affSRob Bradford 22497dcd3affSRob Bradford### Improved Linux Boot Time 22507dcd3affSRob Bradford 22517dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the 22527dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and 22537dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728. 22547dcd3affSRob Bradford 22557dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling 22567dcd3affSRob Bradford 22577dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will 22587dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The 22597dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its 22607dcd3affSRob Bradfordresources. 22617dcd3affSRob Bradford 22627dcd3affSRob Bradford### Default Log Level Changed 22637dcd3affSRob Bradford 22647dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it 22657dcd3affSRob Bradfordeasier to see potential issues. New [logging 22667dcd3affSRob Bradforddocumentation](docs/logging) was also added. 22677dcd3affSRob Bradford 22687dcd3affSRob Bradford### New `--balloon` Parameter Added 22697dcd3affSRob Bradford 22707dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its 22717dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific 22727dcd3affSRob Bradfordcontrols without overloading `--memory`. 22737dcd3affSRob Bradford 22747dcd3affSRob Bradford### Experimental `virtio-watchdog` Support 22757dcd3affSRob Bradford 22767dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to 22777dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the 22787dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support. 22797dcd3affSRob Bradford 22807dcd3affSRob Bradford### Notable Bug Fixes 22817dcd3affSRob Bradford 22827dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest 22837dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170) 22847dcd3affSRob Bradford* CPU identification string is now exposed to the guest 22857dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as 22867dcd3affSRob Bradford read only so avoids excessive VM exits (#1795) 22877dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802) 22887dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size 22897dcd3affSRob Bradford can be used (#1803) 22907dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works 22917dcd3affSRob Bradford correctly 22927dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work 22937dcd3affSRob Bradford correctly 22947dcd3affSRob Bradford 22957dcd3affSRob Bradford### Contributors 22967dcd3affSRob Bradford 22977dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces. 22987dcd3affSRob Bradford 22997dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com> 23007dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com> 23017dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org> 23027dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com> 23037dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com> 23047dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com> 23057dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com> 23067dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com> 23077dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com> 23087dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com> 23097dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com> 23107dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com> 23117dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com> 23127dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 23137dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com> 23147dcd3affSRob Bradford 23157dcd3affSRob Bradford 2316198bd551SRob Bradford# v0.10.0 2317198bd551SRob Bradford 2318198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13). 2319198bd551SRob Bradford 2320198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include: 2321198bd551SRob Bradford 2322198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors 2323198bd551SRob Bradford 2324198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers. 2325198bd551SRob Bradford 2326198bd551SRob Bradford### Memory Zones 2327198bd551SRob Bradford 2328198bd551SRob BradfordSupport has been added for fine grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md). 2329198bd551SRob Bradford 2330198bd551SRob Bradford### `Seccomp` Sandbox Improvements 2331198bd551SRob Bradford 2332198bd551SRob 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`. 2333198bd551SRob Bradford 2334198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control 2335198bd551SRob Bradford 2336198bd551SRob 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. 2337198bd551SRob Bradford 2338198bd551SRob Bradford### Notable Bug Fixes 2339198bd551SRob Bradford 2340198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596) 2341198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564) 2342198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593) 2343198bd551SRob Bradford- `--version` shows the version for released binaries (#1669) 2344198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551) 2345198bd551SRob Bradford 2346198bd551SRob Bradford### Contributors 2347198bd551SRob Bradford 2348198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces. 2349198bd551SRob Bradford 2350198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is> 2351198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com> 2352198bd551SRob Bradford* Anatol Belski <ab@php.net> 2353198bd551SRob Bradford* Bo Chen <chen.bo@intel.com> 2354198bd551SRob Bradford* Hui Zhu <teawater@antfin.com> 2355198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2356198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com> 2357198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2358198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2359198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2360198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com> 2361198bd551SRob Bradford 2362d714cf81SRob Bradford# v0.9.0 2363d714cf81SRob Bradford 2364d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12). 2365d714cf81SRob Bradford 2366d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include: 2367d714cf81SRob Bradford 2368d714cf81SRob Bradford### `io_uring` Based Block Device Support 2369d714cf81SRob Bradford 2370d714cf81SRob 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. 2371d714cf81SRob Bradford 2372d714cf81SRob Bradford### Block and Network Device Statistics 2373d714cf81SRob Bradford 2374d714cf81SRob 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. 2375d714cf81SRob Bradford 2376d714cf81SRob Bradford### HTTP API Responses 2377d714cf81SRob Bradford 2378d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF. 2379d714cf81SRob Bradford 2380d714cf81SRob Bradford### CPU Topology 2381d714cf81SRob Bradford 2382d714cf81SRob 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. 2383d714cf81SRob Bradford 2384d714cf81SRob Bradford### Release Build Optimization 2385d714cf81SRob Bradford 2386d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size. 2387d714cf81SRob Bradford 2388d714cf81SRob Bradford### Hypervisor Abstraction 2389d714cf81SRob Bradford 2390d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`. 2391d714cf81SRob Bradford 2392d714cf81SRob Bradford### Snapshot/Restore Improvements 2393d714cf81SRob Bradford 2394d714cf81SRob 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. 2395d714cf81SRob Bradford 2396d714cf81SRob Bradford### Virtio Memory Ballooning Support 2397d714cf81SRob Bradford 2398d714cf81SRob 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. 2399d714cf81SRob Bradford 2400d714cf81SRob Bradford### Enhancements to ARM64 Support 2401d714cf81SRob Bradford 2402d714cf81SRob 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. 2403d714cf81SRob Bradford 2404d714cf81SRob Bradford### Intel SGX Support 2405d714cf81SRob Bradford 2406d714cf81SRob 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). 2407d714cf81SRob Bradford 2408d714cf81SRob Bradford### `Seccomp` Sandbox Improvements 2409d714cf81SRob Bradford 2410d714cf81SRob 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. 2411d714cf81SRob Bradford 2412d714cf81SRob Bradford### Notable Bug Fixes 2413d714cf81SRob Bradford 2414d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes. 2415d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338) 2416d714cf81SRob 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). 2417d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275). 2418d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217) 2419d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521) 2420d714cf81SRob Bradford 2421d714cf81SRob Bradford### Contributors 2422d714cf81SRob Bradford 2423d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces. 2424d714cf81SRob Bradford 2425d714cf81SRob Bradford* Anatol Belski <ab@php.net> 2426d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com> 2427d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 2428d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com> 2429d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com> 2430d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com> 2431d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com> 2432d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2433d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 2434d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com> 2435d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com> 2436d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com> 2437d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com> 2438d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com> 2439d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 2440d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 2441d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com> 2442d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com> 2443d714cf81SRob Bradford 2444d714cf81SRob Bradford 244552b83969SRob Bradford# v0.8.0 244652b83969SRob Bradford 244752b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10). 244852b83969SRob Bradford 244952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include: 245052b83969SRob Bradford 245152b83969SRob Bradford### Experimental Snapshot and Restore Support 245252b83969SRob Bradford 245352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature. 245452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later 245552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the 245652b83969SRob Bradfordoriginal VM at the point it was paused. 245752b83969SRob Bradford 245852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to 245952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest 246052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on 246152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed 246252b83969SRob Bradford(#1176). 246352b83969SRob Bradford 246452b83969SRob Bradford### Experimental ARM64 Support 246552b83969SRob Bradford 246652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64. 246752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full 246852b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md). 246952b83969SRob Bradford 247052b83969SRob Bradford### Support for Using 5-level Paging in Guests 247152b83969SRob Bradford 247252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57). 247352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware 247452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not 247552b83969SRob Bradfordwork due to current limitations in the PVH boot process. 247652b83969SRob Bradford 247752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices 247852b83969SRob Bradford 247952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress 248052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This 248152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts 248252b83969SRob Bradfordthe guest must service. 248352b83969SRob Bradford 248452b83969SRob Bradford### `vhost_user_fs` Improvements 248552b83969SRob Bradford 248652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`. 248752b83969SRob Bradford 248852b83969SRob Bradford 248952b83969SRob Bradford### Notable Bug Fixes 249052b83969SRob Bradford 249152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110). 249252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to 249352b83969SRob Bradford run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273). 249452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to 249552b83969SRob Bradford the specification and synchronizes to the underlying filesystem as required 249652b83969SRob Bradford based on guest feature negotiation. This avoids potential data loss (#399, 249752b83969SRob Bradford #1216). 249852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be 249952b83969SRob Bradford overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the 250052b83969SRob Bradford `MPTABLE` will no longer be generated (#1132). 250152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816). 250252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083). 250352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds 250452b83969SRob Bradford (#751). 250552b83969SRob Bradford 250652b83969SRob Bradford### Command Line and API Changes 250752b83969SRob Bradford 250852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes: 250952b83969SRob Bradford 251052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket` 251152b83969SRob Bradford rather than `sock` in some cases. 251252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM 251352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always 251452b83969SRob Bradford offered for negotiation. 251552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC 251652b83969SRob Bradford address for the `tap` device on the host. 251752b83969SRob Bradford 251852b83969SRob Bradford### Contributors 251952b83969SRob Bradford 252052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces. 252152b83969SRob Bradford 252252b83969SRob Bradford* Anatol Belski <ab@php.net> 252352b83969SRob Bradford* Arron Wang <arron.wang@intel.com> 252452b83969SRob Bradford* Bo Chen <chen.bo@intel.com> 252552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com> 252652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com> 252752b83969SRob Bradford* Hui Zhu <teawater@antfin.com> 252852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com> 252952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com> 253052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com> 253152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 253252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 253352b83969SRob Bradford* Sergio Lopez <slp@redhat.com> 253452b83969SRob Bradford 253596be8229SRob Bradford# v0.7.0 253696be8229SRob Bradford 253796be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 253896be8229SRob Bradford 253996be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include: 254096be8229SRob Bradford 254196be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug 254296be8229SRob Bradford 254396be8229SRob BradfordFurther to our effort to support modifying a running guest we now support 254496be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network, 254596be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI 25465c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility 254796be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has 254896be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for 254996be8229SRob Bradforddevices to ease their removal. 255096be8229SRob Bradford 255196be8229SRob Bradford### Alternative `libc` Support 255296be8229SRob Bradford 255396be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release 255496be8229SRob Bradfordcontains a static binary compiled using that toolchain. 255596be8229SRob Bradford 255696be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends 255796be8229SRob Bradford 255896be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by 255996be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to 256096be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true` 256196be8229SRob Bradfordis passed when the devices are created. 256296be8229SRob Bradford 256396be8229SRob Bradford### Initial RamFS Support 256496be8229SRob Bradford 256596be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to 256696be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem. 256796be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to 256896be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very 256996be8229SRob Bradfordminimal image. 257096be8229SRob Bradford 257196be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem` 257296be8229SRob Bradford 257396be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using 257496be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the 257596be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently 257696be8229SRob Bradfordrequires kernel patches to be able to support it. 257796be8229SRob Bradford 257896be8229SRob Bradford### `Seccomp` Sandboxing 257996be8229SRob Bradford 258096be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the 258196be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is 258296be8229SRob Bradfordcontrolled by the `--seccomp` command line option. 258396be8229SRob Bradford 258496be8229SRob Bradford### Updated Distribution Support 258596be8229SRob Bradford 258696be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported 258796be8229SRob Bradforddistributions and is part of our regular testing programme. 258896be8229SRob Bradford 258996be8229SRob Bradford### Command Line and API Changes 259096be8229SRob Bradford 259196be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes 259296be8229SRob Bradford 259396be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal. 259496be8229SRob Bradford If no name is specified the VMM chooses one. 259596be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing 259696be8229SRob Bradford memory instead of providing a path. 259796be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only 259896be8229SRob Bradford supports a single Vsock device. The REST API has removed the vector for this 259996be8229SRob Bradford option and replaced it with a single optional field. 260096be8229SRob Bradford* There is enhanced validation of the command line and API provided 260196be8229SRob Bradford configurations to ensure that the provided options are compatible e.g. that 260296be8229SRob Bradford shared memory is in use if any attempt is made to used a `vhost-user` backed 260396be8229SRob Bradford device. 260496be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and 260596be8229SRob Bradford `add-vsock` subcommands. For removal `remove-device` is used. The REST API 260696be8229SRob Bradford has appropriate new HTTP endpoints too. 260796be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size 260896be8229SRob Bradford will be obtained from the file. A `discard_writes` option has also been added 260996be8229SRob Bradford to provide the equivalent of a read-only file. 261096be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align 261196be8229SRob Bradford with those used by `--disk`. 261296be8229SRob Bradford 261396be8229SRob Bradford### Contributors 261496be8229SRob Bradford 261596be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces. 261696be8229SRob Bradford 261796be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 261896be8229SRob Bradford* Bo Chen <chen.bo@intel.com> 261996be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com> 262096be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com> 262196be8229SRob Bradford* Dean Sheather <dean@coder.com> 262296be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com> 262396be8229SRob Bradford* Hui Zhu <teawater@antfin.com> 262496be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 262596be8229SRob Bradford* Martin Xu <martin.xu@intel.com> 262696be8229SRob Bradford* Muminul Islam <muislam@microsoft.com> 262796be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com> 262896be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com> 262996be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com> 263096be8229SRob Bradford* Sergio Lopez <slp@redhat.com> 263196be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com> 263296be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com> 263396be8229SRob Bradford 263403cb26ccSSamuel Ortiz# v0.6.0 263503cb26ccSSamuel Ortiz 263603cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7). 263703cb26ccSSamuel Ortiz 263803cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include: 263903cb26ccSSamuel Ortiz 264003cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug 264103cb26ccSSamuel Ortiz 264203cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest 264303cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor 264403cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`) 264503cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for 264603cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor. 264703cb26ccSSamuel Ortiz 264803cb26ccSSamuel Ortiz### Shared Filesystem Improvements 264903cb26ccSSamuel Ortiz 265003cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements. 265103cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`, 265203cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we 265303cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and 265403cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations. 265503cb26ccSSamuel Ortiz 265603cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading 265703cb26ccSSamuel Ortiz 265803cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an 265903cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now 266003cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends 266103cb26ccSSamuel Ortizinto their own, separate processes. 26625c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want 266303cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts. 266403cb26ccSSamuel Ortiz 266503cb26ccSSamuel Ortiz### Command Line Interface 266603cb26ccSSamuel Ortiz 266703cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the 266837a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only 266937a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract 267037a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor 267137a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`. The `ch-remote` binary 267237a2c13aSAlyssa Rossis created with each build and available e.g. at 267303cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build. 267403cb26ccSSamuel Ortiz 267503cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available 267603cb26ccSSamuel Ortizcommands. 267703cb26ccSSamuel Ortiz 267803cb26ccSSamuel Ortiz### PVH Boot 267903cb26ccSSamuel Ortiz 268003cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now 268103cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html). 268203cb26ccSSamuel Ortiz 268303cb26ccSSamuel Ortiz### Contributors 268403cb26ccSSamuel Ortiz 268503cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks 268603cb26ccSSamuel Ortizto them and to everyone that contributed to this release: 268703cb26ccSSamuel Ortiz 268803cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com> 268903cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com> 269003cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com> 269103cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com> 269203cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 269303cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com> 269403cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 269503cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com> 269603cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 269703cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 269803cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 269903cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 270003cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com> 270103cb26ccSSamuel Ortiz 270294f2fc33SRob Bradford# v0.5.1 270394f2fc33SRob Bradford 270494f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes: 270594f2fc33SRob Bradford 270694f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez 270794f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf 270894f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz 270994f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford 271094f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford 27118e8a7b6dSSamuel Ortiz 27122f395e60SSamuel Ortiz# v0.5.0 27132f395e60SSamuel Ortiz 27142f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6). 27152f395e60SSamuel Ortiz 27162f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include: 27172f395e60SSamuel Ortiz 27182f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing 27192f395e60SSamuel Ortiz 27202f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and 27212f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor 27222f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases. 27232f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot 27242f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest. 27252f395e60SSamuel Ortiz 27262f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature. 27272f395e60SSamuel Ortiz 27282f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization 27292f395e60SSamuel Ortiz 27302f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use 27312f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default 27322f395e60SSamuel Ortizparavirtualized networking and block devices throughput. 27332f395e60SSamuel Ortiz 27342f395e60SSamuel Ortiz### New Interrupt Management Framework 27352f395e60SSamuel Ortiz 27362f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt 27372f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device) 27382f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed 27392f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and 27402f395e60SSamuel Ortizvirtio ones. 27412f395e60SSamuel Ortiz 27422f395e60SSamuel Ortiz### Development Tools 27432f395e60SSamuel Ortiz 27442f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our 27452f395e60SSamuel Ortizbuild, development and testing tools. 27462f395e60SSamuel OrtizSomehow similar to the excellent 27472f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool), 274837a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh). 27492f395e60SSamuel Ortiz 27502f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test 27512f395e60SSamuel OrtizCloud Hypervisor through a containerized environment. 27522f395e60SSamuel Ortiz 27532f395e60SSamuel Ortiz### Kata Containers Integration 27542f395e60SSamuel Ortiz 27552f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration 27562f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud 27572f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is 27582f395e60SSamuel Ortizintegrated into the project's CI. 27592f395e60SSamuel Ortiz 27602f395e60SSamuel Ortiz### Contributors 27612f395e60SSamuel Ortiz 27622f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release: 27632f395e60SSamuel Ortiz 27642f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com> 27652f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 27662f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 27672f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 27682f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 27692f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 27702f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 27712f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com> 27722f395e60SSamuel Ortiz 2773cec884e8SSamuel Ortiz# v0.4.0 2774cec884e8SSamuel Ortiz 2775cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4). 2776cec884e8SSamuel Ortiz 2777cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include: 2778cec884e8SSamuel Ortiz 2779cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition 2780cec884e8SSamuel Ortiz 2781e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically 2782cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug. 2783cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs 2784cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are 278537a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md) 2786cec884e8SSamuel Ortiz 2787cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor 2788cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory. 2789cec884e8SSamuel Ortiz 2790cec884e8SSamuel Ortiz### Programmatic firmware tables generation 2791cec884e8SSamuel Ortiz 2792cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot 2793cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for 2794cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated 2795cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those 2796cec884e8SSamuel Ortiztables based on the VMM device model and topology. 2797cec884e8SSamuel Ortiz 2798cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends 2799cec884e8SSamuel Ortiz 2800cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a 2801cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based 2802cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the 2803cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the 2804cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture. 2805cec884e8SSamuel Ortiz 2806cec884e8SSamuel Ortiz### Guest pause and resume 2807cec884e8SSamuel Ortiz 28085c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for 2809cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live 2810cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause 2811cec884e8SSamuel Ortizand resume capabilities. 2812cec884e8SSamuel Ortiz 2813cec884e8SSamuel Ortiz### Userspace IOAPIC by default 2814cec884e8SSamuel Ortiz 2815cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to 2816cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on 2817cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by 2818cec884e8SSamuel Ortizdefault. 2819cec884e8SSamuel Ortiz 2820cec884e8SSamuel Ortiz### PCI BAR reprogramming 2821cec884e8SSamuel Ortiz 2822cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests 2823cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR 2824cec884e8SSamuel Ortizreprogramming. 2825cec884e8SSamuel Ortiz 2826cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization 2827cec884e8SSamuel Ortiz 2828cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project, 2829cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor). 2830cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) 2831cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux) 2832cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2833cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to 2834cec884e8SSamuel Ortiztemporarily fork. 2835cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely 2836cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers. 2837cec884e8SSamuel Ortiz 2838cec884e8SSamuel Ortiz### Contributors 2839cec884e8SSamuel Ortiz 2840cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release: 2841cec884e8SSamuel Ortiz 2842cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com> 2843cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com> 2844cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com> 2845cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn> 2846cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com> 2847cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com> 2848cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com> 2849cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com> 2850cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com> 2851cec884e8SSamuel Ortiz 28528e8a7b6dSSamuel Ortiz# v0.3.0 28538e8a7b6dSSamuel Ortiz 28548ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3). 28558e8a7b6dSSamuel Ortiz 28568e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include: 28578e8a7b6dSSamuel Ortiz 28588e8a7b6dSSamuel Ortiz### Block device offloading 28598e8a7b6dSSamuel Ortiz 28608e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes, 28618e8a7b6dSSamuel Ortizand we added support for 28628e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends. 28638e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device 28648e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage 28658e8a7b6dSSamuel Ortizbackend. 28668e8a7b6dSSamuel Ortiz 28678e8a7b6dSSamuel Ortiz### Network device backend 28688e8a7b6dSSamuel Ortiz 28698e8a7b6dSSamuel OrtizThe previous release provided support for 28708e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we 28718e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together 28728e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the 28738e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture. 28748e8a7b6dSSamuel Ortiz 28758e8a7b6dSSamuel Ortiz### Virtual sockets 28768e8a7b6dSSamuel Ortiz 28778e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest, 28788e8a7b6dSSamuel Ortizwe added an hybrid implementation of the 28798e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address 28808e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the 28818e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md) 28828e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs. 28838e8a7b6dSSamuel Ortiz 28848e8a7b6dSSamuel Ortiz### HTTP based API 28858e8a7b6dSSamuel Ortiz 28868e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud 28878e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP 28888e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the 28898e8a7b6dSSamuel Ortiznext release cycle. 28908e8a7b6dSSamuel Ortiz 28918e8a7b6dSSamuel Ortiz### Memory mapped virtio transport 28928e8a7b6dSSamuel Ortiz 28938e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the 28948e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002) 28958e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest 28968e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation. 28978e8a7b6dSSamuel Ortiz 28988e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU 28998e8a7b6dSSamuel Ortiz 29008e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing 290137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows 290237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support. 29038e8a7b6dSSamuel Ortiz 29048e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor 29058e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual 29068e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be 29078e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]` 29088e8a7b6dSSamuel Ortizsetting. 29098e8a7b6dSSamuel Ortiz 29108e8a7b6dSSamuel Ortiz### Ubuntu 19.10 29118e8a7b6dSSamuel Ortiz 29128ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware), 29138e8a7b6dSSamuel Ortizwe can now support the latest 29148e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images. 29158e8a7b6dSSamuel Ortiz 29168e8a7b6dSSamuel Ortiz### Large memory guests 29178e8a7b6dSSamuel Ortiz 29188e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now 29198e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB). 29207688e6e2SSamuel Ortiz 2921d784ac29SSamuel Ortiz# v0.2.0 2922d784ac29SSamuel Ortiz 29238ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2). 2924d784ac29SSamuel Ortiz 2925d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include: 2926d784ac29SSamuel Ortiz 2927d784ac29SSamuel Ortiz### Network device offloading 2928d784ac29SSamuel Ortiz 2929d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external 2930d784ac29SSamuel Ortizprocesses, we added support for 2931d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This 2932d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device 2933d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend. 2934d784ac29SSamuel Ortiz 2935d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI 2936d784ac29SSamuel Ortiz 2937d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented 2938d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with 2939d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to 2940d784ac29SSamuel Ortizcleanly reboot and shutdown. 2941d784ac29SSamuel Ortiz 2942d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is 2943d784ac29SSamuel Ortizenabled by default. 2944d784ac29SSamuel Ortiz 2945d784ac29SSamuel Ortiz### Debug I/O port 2946d784ac29SSamuel Ortiz 2947d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest 2948d784ac29SSamuel Ortizboot times, we added support for logging guest events through the 2949d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html) 2950d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time 295137a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more 295237a2c13aSAlyssa Rossdetails. 2953d784ac29SSamuel Ortiz 2954d784ac29SSamuel Ortiz### Improved direct device assignment 2955d784ac29SSamuel Ortiz 2956d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When 2957d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads 2958d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from 2959d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from 2960d784ac29SSamuel Ortizdirectly assigned devices. 2961d784ac29SSamuel Ortiz 2962d784ac29SSamuel Ortiz### Improved shared filesystem 2963d784ac29SSamuel Ortiz 2964d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt) 2965d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system. 2966d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest 2967d784ac29SSamuel Ortizmemory footprint. 2968d784ac29SSamuel Ortiz 2969d784ac29SSamuel Ortiz### Ubuntu bionic based CI 2970d784ac29SSamuel Ortiz 29718ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware) 2972d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to 2973d784ac29SSamuel Ortizour CI pipeline. 2974d784ac29SSamuel Ortiz 297593b77530SSamuel Ortiz# v0.1.0 297693b77530SSamuel Ortiz 29778ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1). 297893b77530SSamuel Ortiz 297993b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include: 298093b77530SSamuel Ortiz 298193b77530SSamuel Ortiz### Shared filesystem 298293b77530SSamuel Ortiz 298393b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file 298493b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem 298593b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest. 298693b77530SSamuel Ortiz 298737a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how 298837a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`. 298993b77530SSamuel Ortiz 299093b77530SSamuel Ortiz### Initial direct device assignment support 299193b77530SSamuel Ortiz 299293b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device 299393b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host 299493b77530SSamuel Ortizphysical devices into its guest. 299593b77530SSamuel Ortiz 299637a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly 299737a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests. 299893b77530SSamuel Ortiz 299993b77530SSamuel Ortiz### Userspace IOAPIC 300093b77530SSamuel Ortiz 300193b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by 300293b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC). 300393b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space, 300493b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode. 300593b77530SSamuel Ortiz 300693b77530SSamuel Ortiz### Virtual persistent memory 300793b77530SSamuel Ortiz 300893b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device 300993b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device 301093b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint. 301193b77530SSamuel Ortiz 301293b77530SSamuel Ortiz### Linux kernel bzImage 301393b77530SSamuel Ortiz 301493b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from 301593b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions 301693b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host 301793b77530SSamuel Ortizdistribution kernel image. 301893b77530SSamuel Ortiz 301993b77530SSamuel Ortiz### Console over virtio 302093b77530SSamuel Ortiz 302193b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although 302293b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot 302393b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console 302493b77530SSamuel Ortizimplementation. 302593b77530SSamuel Ortiz 302693b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console. 302793b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting 302893b77530SSamuel Ortiz`--serial tty --console off` from the command line. 302993b77530SSamuel Ortiz 303093b77530SSamuel Ortiz### Unit testing 303193b77530SSamuel Ortiz 303293b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI. 303393b77530SSamuel Ortiz 303493b77530SSamuel Ortiz### Integration tests parallelization 303593b77530SSamuel Ortiz 303693b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our 303793b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel. 3038