xref: /cloud-hypervisor/release-notes.md (revision 1c22c4a57b74f366ac8f7efcffe891f634594c5e)
13d88996eSBo Chen- [v45.0](#v450)
23d88996eSBo Chen    - [Experimental `riscv64` Architecture Support](#experimental-riscv64-architecture-support)
33d88996eSBo Chen    - [Alphabetically Sorted CLI Options](#alphabetically-sorted-cli-options)
43d88996eSBo Chen    - [Improved Downtime from VM Live Migration](#improved-downtime-from-vm-live-migration)
53d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes)
63d88996eSBo Chen    - [Contributors](#contributors)
73fa1e77aSBo Chen- [v44.0](#v440)
83fa1e77aSBo Chen    - [Configurable `virtio-iommu` Address Width](#configurable-virtio-iommu-address-width)
949a389ffSRob Bradford    - [Notable Performance Improvements](#notable-performance-improvements)
103fa1e77aSBo Chen    - [New Fuzzers](#new-fuzzers)
113d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-1)
123d88996eSBo Chen    - [Contributors](#contributors-1)
133fa1e77aSBo Chen- [v43.0](#v430)
143fa1e77aSBo Chen    - [Live Migration over TCP Connections](#live-migration-over-tcp-connections)
153fa1e77aSBo Chen    - [Notable Performance Improvements](#notable-performance-improvements-1)
163d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-2)
173d88996eSBo Chen    - [Contributors](#contributors-2)
1858850d26SRob Bradford- [v42.0](#v420)
1958850d26SRob Bradford    - [SVE/SVE2 Support on AArch64](#svesve2-support-on-aarch64)
203d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-3)
2158850d26SRob Bradford    - [Sponsorships](#sponsorships)
223d88996eSBo Chen    - [Contributors](#contributors-3)
23ea3e2ff6SRob Bradford- [v41.0](#v410)
24ea3e2ff6SRob Bradford    - [Experimental "Pvmemcontrol" Support](#experimental-pvmemcontrol-support)
25ea3e2ff6SRob Bradford    - [Sandboxing With Landlock Support](#sandboxing-with-landlock-support)
263fa1e77aSBo Chen    - [Notable Performance Improvements](#notable-performance-improvements-2)
273fa1e77aSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-4)
283fa1e77aSBo Chen    - [Contributors](#contributors-4)
293d88996eSBo Chen- [v40.0](#v400)
303d88996eSBo Chen    - [Support for Restoring File Descriptor Backed Network Devices](#support-for-restoring-file-descriptor-backed-network-devices)
313d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-5)
323d88996eSBo Chen    - [Contributors](#contributors-5)
334f96fa15SRob Bradford- [v39.0](#v390)
344f96fa15SRob Bradford    - [Variable Sizing of PCI Apertures for Segments](#variable-sizing-of-pci-apertures-for-segments)
354f96fa15SRob Bradford    - [Direct Booting with bzImages](#direct-booting-with-bzimages)
364f96fa15SRob Bradford    - [Support for NVIDIA GPUDirect P2P Support](#support-for-nvidia-gpudirect-p2p-support)
374f96fa15SRob Bradford    - [Guest NMI Injection Support](#guest-nmi-injection-support)
383d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-6)
393d88996eSBo Chen    - [Contributors](#contributors-6)
40ef4fbf08SBo Chen- [v38.0](#v380)
41ef4fbf08SBo Chen    - [Group Rate Limiter on Block Devices](#group-rate-limiter-on-block-devices)
42ef4fbf08SBo Chen    - [CPU Pinning Support for Block Device Worker Thread](#cpu-pinning-support-for-block-device-worker-thread)
43ef4fbf08SBo Chen    - [Optimized Boot Time with Parallel Memory Prefault](#optimized-boot-time-with-parallel-memory-prefault)
44ef4fbf08SBo Chen    - [New 'debug-console' Device](#new-debug-console-device)
45ef4fbf08SBo Chen    - [Improved VFIO Device Support](#improved-vfio-device-support)
46ef4fbf08SBo Chen    - [Extended CPU Affinity Support](#extended-cpu-affinity-support)
473d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-7)
483d88996eSBo Chen    - [Contributors](#contributors-7)
495e702dcdSBo Chen- [v37.0](#v370)
505e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release)
51ef4fbf08SBo Chen    - [Multiple PCI segments Support for 32-bit VFIO devices](#multiple-pci-segments-support-for-32-bit-vfio-devices)
525e702dcdSBo Chen    - [Configurable Named TAP Devices](#configurable-named-tap-devices)
535e702dcdSBo Chen    - [TTY Output from Both Serial Device and Virtio Console](#tty-output-from-both-serial-device-and-virtio-console)
545e702dcdSBo Chen    - [Faster VM Restoration from Snapshots](#faster-vm-restoration-from-snapshots)
553d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-8)
563d88996eSBo Chen    - [Contributors](#contributors-8)
57f5899d15SBo Chen- [v36.0](#v360)
58f5899d15SBo Chen    - [Command Line Changes](#command-line-changes)
59f5899d15SBo Chen    - [Enabled Features Reported via API Endpoint and CLI](#enabled-features-reported-via-api-endpoint-and-cli)
60f5899d15SBo Chen    - [NUMA Support for PCI segments](#numa-support-for-pci-segments)
61f5899d15SBo Chen    - [CPU Topology Support on AMD Platforms](#cpu-topology-support-on-amd-platforms)
62f5899d15SBo Chen    - [Unix Socket Backend for Serial Port](#unix-socket-backend-for-serial-port)
63f5899d15SBo Chen    - [AIO Backend for Block Devices](#aio-backend-for-block-devices)
64f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements)
653d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-9)
663d88996eSBo Chen    - [Contributors](#contributors-9)
67339912a5SBo Chen- [v35.0](#v350)
68339912a5SBo Chen    - [`virtio-vsock` Support for Linux Guest Kernel v6.3+](#virtio-vsock-support-for-linux-guest-kernel-v63)
69339912a5SBo Chen    - [User Specified Serial Number for `virtio-block`](#user-specified-serial-number-for-virtio-block)
70339912a5SBo Chen    - [vCPU TSC Frequency Included in Migration State](#vcpu-tsc-frequency-included-in-migration-state)
713d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-10)
723d88996eSBo Chen    - [Contributors](#contributors-10)
73487a43cdSRob Bradford- [v34.0](#v340)
74487a43cdSRob Bradford    - [Paravirtualised Panic Device Support](#paravirtualised-panic-device-support)
75487a43cdSRob Bradford    - [Improvements to VM Core Dump](#improvements-to-vm-core-dump)
76487a43cdSRob Bradford    - [QCOW2 Support for Backing Files](#qcow2-support-for-backing-files)
77487a43cdSRob Bradford    - [Minimum Host Kernel Bump](#minimum-host-kernel-bump)
783d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-11)
793d88996eSBo Chen    - [Contributors](#contributors-11)
80487a43cdSRob Bradford- [v33.0](#v330)
81487a43cdSRob Bradford    - [D-Bus based API](#d-bus-based-api)
82487a43cdSRob Bradford    - [Expose Host CPU Cache Details for AArch64](#expose-host-cpu-cache-details-for-aarch64)
833d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-12)
843d88996eSBo Chen    - [Contributors](#contributors-12)
8542ca292dSRob Bradford- [v32.0](#v320)
8642ca292dSRob Bradford    - [Increased PCI Segment Limit](#increased-pci-segment-limit)
8742ca292dSRob Bradford    - [API Changes](#api-changes)
883d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-13)
893d88996eSBo Chen    - [Contributors](#contributors-13)
9042ca292dSRob Bradford- [v31.1](#v311)
91f3522e85SMichael Zhao- [v31.0](#v310)
92f3522e85SMichael Zhao    - [Update to Latest `acpi_tables`](#update-to-latest-acpi_tables)
93f3522e85SMichael Zhao    - [Update Reference Kernel to 6.2](#update-reference-kernel-to-62)
94f3522e85SMichael Zhao    - [Improvements on Console `SIGWINCH` Handler](#improvements-on-console-sigwinch-handler)
95f3522e85SMichael Zhao    - [Remove Directory Support from `MemoryZoneConfig::file`](#remove-directory-support-from-memoryzoneconfigfile)
96f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-1)
973d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-14)
983d88996eSBo Chen    - [Contributors](#contributors-14)
99ece0e6faSBo Chen- [v30.0](#v300)
100ece0e6faSBo Chen    - [Command Line Changes for Reduced Binary Size](#command-line-changes-for-reduced-binary-size)
101ece0e6faSBo Chen    - [Basic vfio-user Server Support](#basic-vfio-user-server-support)
102ece0e6faSBo Chen    - [Heap Profiling Support](#heap-profiling-support)
103f5899d15SBo Chen    - [Documentation Improvements](#documentation-improvements-2)
1043d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-15)
1053d88996eSBo Chen    - [Contributors](#contributors-15)
106ece0e6faSBo Chen- [v28.2](#v282)
10722cf8c97SRob Bradford- [v29.0](#v290)
10822cf8c97SRob Bradford    - [Release Binary Supports Both MSHV and KVM](#release-binary-supports-both-mshv-and-kvm)
10922cf8c97SRob Bradford    - [Snapshot/Restore and Live Migration Improvements](#snapshotrestore-and-live-migration-improvements)
11022cf8c97SRob Bradford    - [Heap Allocation Improvements](#heap-allocation-improvements)
11122cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements)
11222cf8c97SRob Bradford    - [`AArch64` Documentation Integration](#aarch64-documentation-integration)
11322cf8c97SRob Bradford    - [`virtio-block` Counters Enhancement](#virtio-block-counters-enhancement)
11422cf8c97SRob Bradford    - [TCP Offload Control](#tcp-offload-control)
1153d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-16)
11622cf8c97SRob Bradford    - [Removals](#removals)
11722cf8c97SRob Bradford    - [Deprecations](#deprecations)
1183d88996eSBo Chen    - [Contributors](#contributors-16)
11922cf8c97SRob Bradford- [v28.1](#v281)
12066460765SRob Bradford- [v28.0](#v280)
12166460765SRob Bradford    - [Community Engagement (Reminder)](#community-engagement-reminder)
1225e702dcdSBo Chen    - [Long Term Support (LTS) Release](#long-term-support-lts-release-1)
12366460765SRob Bradford    - [Virtualised TPM Support](#virtualised-tpm-support)
12466460765SRob Bradford    - [Transparent Huge Page Support](#transparent-huge-page-support)
12566460765SRob Bradford    - [README Quick Start Improved](#readme-quick-start-improved)
1263d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-17)
12722cf8c97SRob Bradford    - [Removals](#removals-1)
1283d88996eSBo Chen    - [Contributors](#contributors-17)
1292ba6a9bfSRob Bradford- [v27.0](#v270)
1302ba6a9bfSRob Bradford    - [Community Engagement](#community-engagement)
1312ba6a9bfSRob Bradford    - [Prebuilt Packages](#prebuilt-packages)
1322ba6a9bfSRob Bradford    - [Network Device MTU Exposed to Guest](#network-device-mtu-exposed-to-guest)
1332ba6a9bfSRob Bradford    - [Boot Tracing](#boot-tracing)
1342ba6a9bfSRob Bradford    - [Simplified Build Feature Flags](#simplified-build-feature-flags)
1352ba6a9bfSRob Bradford    - [Asynchronous Kernel Loading](#asynchronous-kernel-loading)
1362ba6a9bfSRob Bradford    - [GDB Support for AArch64](#gdb-support-for-aarch64)
1373d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-18)
138f3522e85SMichael Zhao    - [Deprecations](#deprecations-1)
1393d88996eSBo Chen    - [Contributors](#contributors-18)
140f3522e85SMichael Zhao- [v26.0](#v260)
141f3522e85SMichael Zhao    - [SMBIOS Improvements via `--platform`](#smbios-improvements-via---platform)
142f3522e85SMichael Zhao    - [Unified Binary MSHV and KVM Support](#unified-binary-mshv-and-kvm-support)
1433d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-19)
14422cf8c97SRob Bradford    - [Deprecations](#deprecations-2)
14566460765SRob Bradford    - [Removals](#removals-2)
1463d88996eSBo Chen    - [Contributors](#contributors-19)
14722cf8c97SRob Bradford- [v25.0](#v250)
14822cf8c97SRob Bradford    - [`ch-remote` Improvements](#ch-remote-improvements-1)
14922cf8c97SRob Bradford    - [VM "Coredump" Support](#vm-coredump-support)
1503d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-20)
15122cf8c97SRob Bradford    - [Removals](#removals-3)
1523d88996eSBo Chen    - [Contributors](#contributors-20)
1530150de55SSebastien Boeuf- [v24.0](#v240)
1540150de55SSebastien Boeuf    - [Bypass Mode for `virtio-iommu`](#bypass-mode-for-virtio-iommu)
1550150de55SSebastien Boeuf    - [Ensure Identifiers Uniqueness](#ensure-identifiers-uniqueness)
1560150de55SSebastien Boeuf    - [Sparse Mmap support](#sparse-mmap-support)
1570150de55SSebastien Boeuf    - [Expose Platform Serial Number](#expose-platform-serial-number)
1583d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-21)
1590150de55SSebastien Boeuf    - [Notable Improvements](#notable-improvements)
16022cf8c97SRob Bradford    - [Deprecations](#deprecations-3)
1610150de55SSebastien Boeuf    - [New on the Website](#new-on-the-website)
1623d88996eSBo Chen    - [Contributors](#contributors-21)
1630150de55SSebastien Boeuf- [v23.1](#v231)
1640c9c56f5SRob Bradford- [v23.0](#v230)
1650c9c56f5SRob Bradford    - [vDPA Support](#vdpa-support)
1660c9c56f5SRob Bradford    - [Updated OS Support list](#updated-os-support-list)
1670c9c56f5SRob Bradford    - [`AArch64` Memory Map Improvements](#aarch64-memory-map-improvements)
1680c9c56f5SRob Bradford    - [`AMX` Support](#amx-support)
1693d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-22)
17022cf8c97SRob Bradford    - [Deprecations](#deprecations-4)
1713d88996eSBo Chen    - [Contributors](#contributors-22)
1720c9c56f5SRob Bradford- [v22.1](#v221)
1736aa10938SRob Bradford- [v22.0](#v220)
1746aa10938SRob Bradford    - [GDB Debug Stub Support](#gdb-debug-stub-support)
1756aa10938SRob Bradford    - [`virtio-iommu` Backed Segments](#virtio-iommu-backed-segments)
1766aa10938SRob Bradford    - [Before Boot Configuration Changes](#before-boot-configuration-changes)
1776aa10938SRob Bradford    - [`virtio-balloon` Free Page Reporting](#virtio-balloon-free-page-reporting)
1786aa10938SRob Bradford    - [Support for Direct Kernel Booting with TDX](#support-for-direct-kernel-booting-with-tdx)
1796aa10938SRob Bradford    - [PMU Support for AArch64](#pmu-support-for-aarch64)
1800c9c56f5SRob Bradford    - [Documentation Under CC-BY-4.0 License](#documentation-under-cc-by-40-license)
1816aa10938SRob Bradford    - [Deprecation of "Classic" `virtiofsd`](#deprecation-of-classic-virtiofsd)
1823d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-23)
1833d88996eSBo Chen    - [Contributors](#contributors-23)
18495ca7997SRob Bradford- [v21.0](#v210)
18595ca7997SRob Bradford    - [Efficient Local Live Migration (for Live Upgrade)](#efficient-local-live-migration-for-live-upgrade)
18695ca7997SRob Bradford    - [Recommended Kernel is Now 5.15](#recommended-kernel-is-now-515)
1873d88996eSBo Chen    - [Notable Bug fixes](#notable-bug-fixes-24)
1883d88996eSBo Chen    - [Contributors](#contributors-24)
18995ca7997SRob Bradford- [v20.2](#v202)
19095ca7997SRob Bradford- [v20.1](#v201)
1917fc0776aSSebastien Boeuf- [v20.0](#v200)
1927fc0776aSSebastien Boeuf    - [Multiple PCI segments support](#multiple-pci-segments-support)
1937fc0776aSSebastien Boeuf    - [CPU pinning](#cpu-pinning)
1947fc0776aSSebastien Boeuf    - [Improved VFIO support](#improved-vfio-support)
1957fc0776aSSebastien Boeuf    - [Safer code](#safer-code)
1967fc0776aSSebastien Boeuf    - [Extended documentation](#extended-documentation)
1973d88996eSBo Chen    - [Notable bug fixes](#notable-bug-fixes-25)
1983d88996eSBo Chen    - [Contributors](#contributors-25)
199d00eb4aaSRob Bradford- [v19.0](#v190)
200d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
201d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
202d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
203d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
204d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
205d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
2063d88996eSBo Chen    - [Notable bug fixes](#notable-bug-fixes-26)
2073d88996eSBo Chen    - [Contributors](#contributors-26)
2082c4f8d22SRob Bradford- [v18.0](#v180)
2092c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
2102c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
2112c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
2122c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
2132c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
2142c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
2152c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
2162c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
2173d88996eSBo Chen    - [Notable bug fixes](#notable-bug-fixes-27)
2183d88996eSBo Chen    - [Contributors](#contributors-27)
219e6db5999SRob Bradford- [v17.0](#v170)
220e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
221e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
222e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
223e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
224e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
2253d88996eSBo Chen    - [Notable bug fixes](#notable-bug-fixes-28)
2263d88996eSBo Chen    - [Contributors](#contributors-28)
2275ed8e01fSRob Bradford- [v16.0](#v160)
2285ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
2295ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
2305ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
2313d88996eSBo Chen    - [Notable bug fixes](#notable-bug-fixes-29)
2325ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
2333d88996eSBo Chen    - [Contributors](#contributors-29)
23430a01277SRob Bradford- [v15.0](#v150)
23530a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
23630a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
23730a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
238f3522e85SMichael Zhao    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
23930a01277SRob Bradford    - [Bug fixes](#bug-fixes)
24022cf8c97SRob Bradford    - [Deprecations](#deprecations-5)
2413d88996eSBo Chen    - [Contributors](#contributors-30)
24230a01277SRob Bradford- [v0.14.1](#v0141)
24340c63dcfSRob Bradford- [v0.14.0](#v0140)
24440c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
24540c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
24640c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
24740c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
24840c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
24940c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
25022cf8c97SRob Bradford    - [Deprecations](#deprecations-6)
2513d88996eSBo Chen    - [Contributors](#contributors-31)
252f58b6f84SRob Bradford- [v0.13.0](#v0130)
253f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
25440c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
255f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
256f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
257f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
258f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
2593d88996eSBo Chen    - [Contributors](#contributors-32)
260d42b5084SRob Bradford- [v0.12.0](#v0120)
261d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
262d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
263d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
264d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
2653d88996eSBo Chen    - [Contributors](#contributors-33)
2667dcd3affSRob Bradford- [v0.11.0](#v0110)
2677dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
2687dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
2697dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
270d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
2717dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
2727dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
2737dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
2747dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
275f3522e85SMichael Zhao    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
2767dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
2773d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-30)
2783d88996eSBo Chen    - [Contributors](#contributors-34)
279198bd551SRob Bradford- [v0.10.0](#v0100)
280198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
281198bd551SRob Bradford    - [Memory Zones](#memory-zones)
282198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
283198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
2843d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-31)
2853d88996eSBo Chen    - [Contributors](#contributors-35)
286d714cf81SRob Bradford- [v0.9.0](#v090)
287d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
288d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
289d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
290d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
291d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
292d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
293d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
294d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
295d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
296d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
297198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
2983d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-32)
2993d88996eSBo Chen    - [Contributors](#contributors-36)
300d714cf81SRob Bradford- [v0.8.0](#v080)
301d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
302d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
303d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
304d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
305d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
3063d88996eSBo Chen    - [Notable Bug Fixes](#notable-bug-fixes-33)
307d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
3083d88996eSBo Chen    - [Contributors](#contributors-37)
30996be8229SRob Bradford- [v0.7.0](#v070)
31096be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
31196be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
31296be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
31396be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
31496be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
31596be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
31696be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
31752b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
3183d88996eSBo Chen    - [Contributors](#contributors-38)
31903cb26ccSSamuel Ortiz- [v0.6.0](#v060)
32003cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
32103cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
32203cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
32303cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
32403cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
3253d88996eSBo Chen    - [Contributors](#contributors-39)
32694f2fc33SRob Bradford- [v0.5.1](#v051)
3272f395e60SSamuel Ortiz- [v0.5.0](#v050)
32894f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
32994f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
33094f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
33194f2fc33SRob Bradford    - [Development Tools](#development-tools)
33294f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
3333d88996eSBo Chen    - [Contributors](#contributors-40)
334cec884e8SSamuel Ortiz- [v0.4.0](#v040)
33594f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
33694f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
33794f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
33894f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
33994f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
34094f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
34194f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
3423d88996eSBo Chen    - [Contributors](#contributors-41)
3438e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
34494f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
34594f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
34694f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
34794f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
34894f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
34994f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
35094f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
35194f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
3527688e6e2SSamuel Ortiz- [v0.2.0](#v020)
35394f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
35494f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
35594f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
35694f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
35794f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
35894f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
3597688e6e2SSamuel Ortiz- [v0.1.0](#v010)
36094f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
36194f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
36294f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
36394f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
36494f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
36594f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
36694f2fc33SRob Bradford    - [Unit testing](#unit-testing)
36794f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
36894f2fc33SRob Bradford
3693d88996eSBo Chen# v45.0
3703d88996eSBo Chen
3713d88996eSBo ChenThis release has been tracked in [v45.0
3723d88996eSBo Chengroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v44.0%22)
3733d88996eSBo Chenof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
3743d88996eSBo Chen
3753d88996eSBo Chen### Experimental `riscv64` Architecture Support
3763d88996eSBo Chen
3773d88996eSBo ChenCloud Hypervisor now has experimental `riscv64` architecture
3783d88996eSBo Chensupport. Details can be found from the [riscv
3793d88996eSBo Chendocumentation](docs/riscv.md).
3803d88996eSBo Chen
3813d88996eSBo Chen### Alphabetically Sorted CLI Options
3823d88996eSBo Chen
3833d88996eSBo ChenTo improve the readability of CLI options, the output of the `--help`
3843d88996eSBo Chennow is alphabetically sorted. (#6988)
3853d88996eSBo Chen
3863d88996eSBo Chen### Improved Downtime of VM Live Migration
3873d88996eSBo Chen
3883d88996eSBo ChenThe downtime of VM live migration is reduced via delaying some of the
3893d88996eSBo Chentearing down process of the source VM after the destination VM is up and
3903d88996eSBo Chenrunning. (#6987)
3913d88996eSBo Chen
3923d88996eSBo Chen### Notable Bug Fixes
3933d88996eSBo Chen
3943d88996eSBo Chen* Fix seccomp filters related to http-api thread (#6967)
3953d88996eSBo Chen* Handle cross-page access in the emulator for mshv (#6968)
3963d88996eSBo Chen
3973d88996eSBo Chen### Contributors
3983d88996eSBo Chen
3993d88996eSBo ChenMany thanks to everyone who has contributed to our release:
4003d88996eSBo Chen
4013d88996eSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
4023d88996eSBo Chen* Andrew Consroe <aconz2@gmail.com>
4033d88996eSBo Chen* Bo Chen <bchen@crusoe.ai>
4043d88996eSBo Chen* Jinank Jain <jinankjain@microsoft.com>
4053d88996eSBo Chen* Jinrong Liang <cloudliang@tencent.com>
4063d88996eSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
4073d88996eSBo Chen* Ruoqing He <heruoqing@iscas.ac.cn>
4083d88996eSBo Chen* Stefan Kober <stefan.kober@cyberus-technology.de>
4093d88996eSBo Chen* Wei Liu <liuwe@microsoft.com>
4103d88996eSBo Chen
4113fa1e77aSBo Chen# v44.0
4123fa1e77aSBo Chen
4136fa7c84dSRuoqing HeThis release has been tracked in [v44.0
4146fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v44.0%22)
4156fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
4163fa1e77aSBo Chen
4173fa1e77aSBo Chen### Configurable `virtio-iommu` Address Width
4183fa1e77aSBo Chen
4193fa1e77aSBo ChenThe `iommu_address_width` option has been added to `--platform` to allow users
4203fa1e77aSBo Chento limit the `virtio-iommu` address space in the guest. (#6900)
4213fa1e77aSBo Chen
4223fa1e77aSBo Chen### Notable Performance Improvements
4233fa1e77aSBo Chen
4243fa1e77aSBo ChenThe `VIRTIO_BLK_F_SEG_MAX` feature has been enabled for `virtio-block` devices,
4253fa1e77aSBo Chenwhich brings significant performance improvements on throughput. (#6885)
4263fa1e77aSBo Chen
4273fa1e77aSBo ChenThe `io_uring` entries are no longer forced to use async helper workers,
4283fa1e77aSBo Chendelegating the decision to the kernel. This change resolved the issue of having
4293fa1e77aSBo Chenexcessive amount of worker threads when `io_uring` is being used, which is
4303fa1e77aSBo Chenexpected to improve performance, such as reducing memory usage and reduce CPU
4313fa1e77aSBo Chencontention.
4323fa1e77aSBo Chen
4333fa1e77aSBo Chen### New Fuzzers
4343fa1e77aSBo Chen
4353fa1e77aSBo ChenOur continuous fuzzing infrastructure is augmented with two new fuzzers to cover
4363fa1e77aSBo Chenx86 instruction emulator and `virtio-vsock`.
4373fa1e77aSBo Chen
4383fa1e77aSBo Chen### Notable Bug Fixes
4393fa1e77aSBo Chen
4403fa1e77aSBo Chen* Fix short read and short write that impact QCOW and VHDX support. (#6884)
4413fa1e77aSBo Chen* Various bug fixes on VHDX support. (#6890, #6899)
4423fa1e77aSBo Chen
4433fa1e77aSBo Chen### Contributors
4443fa1e77aSBo Chen
4453fa1e77aSBo ChenMany thanks to everyone who has contributed to our release:
4463fa1e77aSBo Chen
4473fa1e77aSBo Chen* Arvind Vasudev <avasudev@crusoeenergy.com>
4483fa1e77aSBo Chen* Bo Chen <bo.arvin.chen@gmail.com>
4493fa1e77aSBo Chen* Nikolay Edigaryev <edigaryev@gmail.com>
4503fa1e77aSBo Chen* Rob Bradford <rbradford@rivosinc.com>
4513fa1e77aSBo Chen* Ruoqing He <heruoqing@iscas.ac.cn>
4523fa1e77aSBo Chen* Wei Liu <liuwe@microsoft.com>
4533fa1e77aSBo Chen
45449a389ffSRob Bradford# v43.0
45549a389ffSRob Bradford
4566fa7c84dSRuoqing HeThis release has been tracked in [v43.0
4576fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v43.0%22)
4586fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
45949a389ffSRob Bradford
46049a389ffSRob Bradford### Live Migration over TCP Connections
46149a389ffSRob Bradford
46249a389ffSRob BradfordSupport has been added to enable direct live migration from two hosts via TCP
46349a389ffSRob Bradfordconnections. This supplements the existing support for migrating over a UNIX
46449a389ffSRob Bradfordsocket which can then be tunnelled as desired. The documentation has been
46549a389ffSRob Bradfordupdated. (#6850)
46649a389ffSRob Bradford
46749a389ffSRob Bradford### Notable Performance Improvements
46849a389ffSRob Bradford
46949a389ffSRob BradfordThe `VIRTIO_RING_F_INDIRECT_DESC` feature has been enabled for `virtio-block`
47049a389ffSRob Bradforddevices. This significantly increases the throughput of the devices with a
47149a389ffSRob Bradfordsmall negative impact on latency. (#6826)
47249a389ffSRob Bradford
47349a389ffSRob Bradford### Notable Bug Fixes
47449a389ffSRob Bradford
47549a389ffSRob Bradford* Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64
47649a389ffSRob Bradford  architectures. Whether they function depends on the host PCI host bridge
47749a389ffSRob Bradford  support - previously they would be rejected even if the driver did not use
47849a389ffSRob Bradford  these BARs. (#6871)
47949a389ffSRob Bradford* Command line groups were adjusted to ensure that at least one payload
48049a389ffSRob Bradford  parameter was provided if any other VM parameters provided. (#6832)
48149a389ffSRob Bradford
48249a389ffSRob Bradford### Contributors
48349a389ffSRob Bradford
48449a389ffSRob BradfordMany thanks to everyone who has contributed to our release:
48549a389ffSRob Bradford
48649a389ffSRob Bradford* Alyssa Ross <hi@alyssa.is>
48749a389ffSRob Bradford* Andrew Consroe <aconz2@gmail.com>
48849a389ffSRob Bradford* Bo Chen <bo.arvin.chen@gmail.com>
48949a389ffSRob Bradford* Jinrong Liang <cloudliang@tencent.com>
49049a389ffSRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
49149a389ffSRob Bradford* Muminul Islam <muislam@microsoft.com>
49249a389ffSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
49349a389ffSRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
49449a389ffSRob Bradford* Wojtek Czekalski <wczekalski@me.com>
49549a389ffSRob Bradford
49658850d26SRob Bradford# v42.0
49758850d26SRob Bradford
4986fa7c84dSRuoqing HeThis release has been tracked in [v42.0
4996fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v42.0%22)
5006fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
50158850d26SRob Bradford
50258850d26SRob Bradford### SVE/SVE2 Support on AArch64
50358850d26SRob Bradford
50458850d26SRob BradfordThe SVE and SVE2 feature bits are now propagated through to the guest on
50558850d26SRob BradfordAArch64. (#6678, #6691)
50658850d26SRob Bradford
50758850d26SRob Bradford### Notable Bug Fixes
50858850d26SRob Bradford
50958850d26SRob Bradford* Reduce latency notification when rate limited (#6672)
51058850d26SRob Bradford* Fix `virtio-console` resizing (#6704)
51158850d26SRob Bradford* Fix resizing when console uses TTY (#6754)
51258850d26SRob Bradford* Avoid deadlock in PCI BAR reprogramming that can occur when adding a new
51358850d26SRob Bradford  `virtio` device to a VM that has been restored (#6775)
51458850d26SRob Bradford* Fix console resizing after VM restore (#6748)
51558850d26SRob Bradford* Fix memory resize error due to incorrect bounds checks (#6736)
51658850d26SRob Bradford
51758850d26SRob Bradford### Sponsorships
51858850d26SRob Bradford
51958850d26SRob BradfordDuring this release cycle a new VFIO CI worker has been provided by Crusoe
52058850d26SRob BradfordEnergy and a new ARM64 CI worker has been provided by Ubicloud.
52158850d26SRob Bradford
52258850d26SRob Bradford### Contributors
52358850d26SRob Bradford
52458850d26SRob BradfordMany thanks to everyone who has contributed to our release:
52558850d26SRob Bradford
52658850d26SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
52758850d26SRob Bradford* Alyssa Ross <hi@alyssa.is>
52858850d26SRob Bradford* Anirudh Rayabharam <anrayabh@microsoft.com>
52958850d26SRob Bradford* BharatNarasimman <bharatn@microsoft.com>
53058850d26SRob Bradford* Bo Chen <chen.bo@intel.com>
53158850d26SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
53258850d26SRob Bradford* Jonas Scholz <Jonas.Scholz@bbscholz.de>
53358850d26SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
53458850d26SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
53558850d26SRob Bradford* Purna Pavan Chandra <paekkaladevi@microsoft.com>
53658850d26SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
53758850d26SRob Bradford* Ruoqing He <heruoqing@iscas.ac.cn>
53858850d26SRob Bradford* Songqian Li <sionli@tencent.com>
53958850d26SRob Bradford* Tom Dohrmann <erbse.13@gmx.de>
54058850d26SRob Bradford* Wei Liu <liuwe@microsoft.com>
54158850d26SRob Bradford* Wenyu Huang <huangwenyuu@outlook.com>
54258850d26SRob Bradford* Yuhong Zhong <yz@cs.columbia.edu>
54358850d26SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
54458850d26SRob Bradford
545ea3e2ff6SRob Bradford# v41.0
546ea3e2ff6SRob Bradford
5476fa7c84dSRuoqing HeThis release has been tracked in [v41.0
5486fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v41.0%22)
5496fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
550ea3e2ff6SRob Bradford
551ea3e2ff6SRob Bradford### Experimental "Pvmemcontrol" Support
552ea3e2ff6SRob Bradford
553ea3e2ff6SRob BradfordVMM support has been added for this experimental functionality (requires
554ea3e2ff6SRob Bradfordcurrently out of tree Linux kernel patches) to allow guests to control its
555ea3e2ff6SRob Bradfordphysical memory properties to allow optimisations and security features.
556ea3e2ff6SRob Bradford(#6318, #6467)
557ea3e2ff6SRob Bradford
558ea3e2ff6SRob Bradford### Sandboxing With Landlock Support
559ea3e2ff6SRob Bradford
560ea3e2ff6SRob BradfordSupport for restricting the VMM process using the Linux kernel "Landlock" API
561ea3e2ff6SRob Bradfordhas been added  - this can be used to restrict the files (and the read/write
562ea3e2ff6SRob Bradfordpermissions) that the VMM process can access. This adds another layer of
563ea3e2ff6SRob Bradfordsecurity alongside the existing sycall filters (`seccomp`) - this can be
564ea3e2ff6SRob Bradfordenabled with `--landlock` and [fully documentated](docs/landlock.md). (#5170)
565ea3e2ff6SRob Bradford
566ea3e2ff6SRob Bradford### Notable Performance Improvements
567ea3e2ff6SRob Bradford
568ea3e2ff6SRob Bradford* Reduced heap allocations in `virtio-net` via the use of a cache of `Iovec`
569ea3e2ff6SRob Bradford  structures (#6636)
570ea3e2ff6SRob Bradford* Notification suppression ("`EVENT_IDX`") support has been added to
571ea3e2ff6SRob Bradford  `virtio-block` giving a 60% improvement in single queue block throughput and
572ea3e2ff6SRob Bradford  IOPs performance (#6580)
573ea3e2ff6SRob Bradford* Correct size used for `status` field in `virtio-block` state (#6586)
574ea3e2ff6SRob Bradford
575ea3e2ff6SRob Bradford### Notable Bug Fixes
576ea3e2ff6SRob Bradford
577ea3e2ff6SRob Bradford* Avoid panic on out-of-bounds PCI MSI-X access (#6657)
578ea3e2ff6SRob Bradford* Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
579ea3e2ff6SRob Bradford  access (#6647)
580ea3e2ff6SRob Bradford* Rust v1.80.0 added use of `fcntl` syscall on debug assertions so this is now
581ea3e2ff6SRob Bradford  included in the virtio-device seccomp filters for tests that use this (#6648)
582ea3e2ff6SRob Bradford* Short reads are now handled correctly in the `virtio-vsock` device (#6621)
583ea3e2ff6SRob Bradford* Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
584ea3e2ff6SRob Bradford
585ea3e2ff6SRob Bradford### Contributors
586ea3e2ff6SRob Bradford
587ea3e2ff6SRob BradfordMany thanks to everyone who has contributed to our release:
588ea3e2ff6SRob Bradford
589ea3e2ff6SRob Bradford* Alyssa Ross <hi@alyssa.is>
590ea3e2ff6SRob Bradford* Bo Chen <chen.bo@intel.com>
591ea3e2ff6SRob Bradford* Changyuan Lyu <changyuanl@google.com>
592ea3e2ff6SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
593ea3e2ff6SRob Bradford* Julian Stecklina <julian.stecklina@cyberus-technology.de>
594ea3e2ff6SRob Bradford* Muminul Islam <muislam@microsoft.com>
595ea3e2ff6SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
596ea3e2ff6SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
597ea3e2ff6SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
598ea3e2ff6SRob Bradford* Songqian Li <sionli@tencent.com>
599ea3e2ff6SRob Bradford* Wei Liu <liuwe@microsoft.com>
600ea3e2ff6SRob Bradford* Yuanchu Xie <yuanchu@google.com>
601ea3e2ff6SRob Bradford* ihciah <ihciah@gmail.com>
602ea3e2ff6SRob Bradford* wuxinyue <wuxinyue.wxy@antgroup.com>
603ea3e2ff6SRob Bradford
604e9b26397SRob Bradford# v40.0
605e9b26397SRob Bradford
6066fa7c84dSRuoqing HeThis release has been tracked in [v40.0
6076fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v40.0%22)
6086fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
609e9b26397SRob Bradford
610e9b26397SRob Bradford### Support for Restoring File Descriptor Backed Network Devices
611e9b26397SRob Bradford
612e9b26397SRob BradfordIt is now possible to pass file descriptors over the HTTP API (and using
613e9b26397SRob Bradford`ch-remote`) when restoring to update the file descriptors for network devices.
614e9b26397SRob BradfordThis enables snapshot & restore functionality for guests using `macvtap` or
615e9b26397SRob Bradfordother file descriptor backed network devices. (#6286)
616e9b26397SRob Bradford
617e9b26397SRob Bradford### Notable Bug Fixes
618e9b26397SRob Bradford
619e9b26397SRob Bradford* Default values have been removed from required fields in the OpenAPI metadata
620e9b26397SRob Bradford  (#6495)
621e9b26397SRob Bradford* The help syntax of `ch-remote remove-device` has been improved (#6456)
622e9b26397SRob Bradford* A double close of file descriptors has been fixed when using `--serial`
623e9b26397SRob Bradford  (#6486)
624e9b26397SRob Bradford* To prevent loops a limit on the nesting level for QCOW2 backing files has
625e9b26397SRob Bradford  been introduced (#6482)
626e9b26397SRob Bradford* Boot time performance has been improved with multiple cores by avoiding
627e9b26397SRob Bradford  `cpuid` instructions and by seeding the in kernel file descriptor table
628e9b26397SRob Bradford  (#6498, #6478)
629e9b26397SRob Bradford* L1 cache details are more likely to be propagated into the guest (#6523)
630e9b26397SRob Bradford* The default topology for guests now uses multiple cores rather than sockets
631e9b26397SRob Bradford  (#6504)
632e9b26397SRob Bradford
633e9b26397SRob Bradford### Contributors
634e9b26397SRob Bradford
635e9b26397SRob BradfordMany thanks to everyone who has contributed to our release:
636e9b26397SRob Bradford
637e9b26397SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
638e9b26397SRob Bradford* Bo Chen <chen.bo@intel.com>
639e9b26397SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
640e9b26397SRob Bradford* Josh Soref <2119212+jsoref@users.noreply.github.com>
641e9b26397SRob Bradford* Muminul Islam <muislam@microsoft.com>
642e9b26397SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
643e9b26397SRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
644e9b26397SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
645e9b26397SRob Bradford* Purna Pavan Chandra <paekkaladevi@linux.microsoft.com>
646e9b26397SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
647e9b26397SRob Bradford* SamrutGadde <samrut.gadde@gmail.com>
648e9b26397SRob Bradford* Sean Banko <sbanko@crusoe.ai>
649e9b26397SRob Bradford* Songqian Li <sionli@tencent.com>
650e9b26397SRob Bradford* Wei Liu <liuwe@microsoft.com>
651e9b26397SRob Bradford* Yi Wang <foxywang@tencent.com>
652e9b26397SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
653e9b26397SRob Bradford*
654e9b26397SRob Bradford
6554f96fa15SRob Bradford# v39.0
6564f96fa15SRob Bradford
6576fa7c84dSRuoqing HeThis release has been tracked in [v39.0
6586fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v39.0%22)
6596fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
6604f96fa15SRob Bradford
6614f96fa15SRob Bradford### Variable Sizing of PCI Apertures for Segments
6624f96fa15SRob Bradford
6634f96fa15SRob BradfordIt is now possible to use `--pci-segment` to adjust the aperture size that
6644f96fa15SRob Bradforddevices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
6654f96fa15SRob Bradfordthe address space was equally distributed across all the segments which may
6664f96fa15SRob Bradfordleave insufficient space for devices that require a large 32-bit space. With
6674f96fa15SRob Bradfordthis change the weighting per segment can be adjusted. (#6387)
6684f96fa15SRob Bradford
6694f96fa15SRob Bradford### Direct Booting with bzImages
6704f96fa15SRob Bradford
6714f96fa15SRob BradfordSupport for directly booting Linux from bzImages has been added.(#6200)
6724f96fa15SRob Bradford
6734f96fa15SRob Bradford### Support for NVIDIA GPUDirect P2P Support
6744f96fa15SRob Bradford
6754f96fa15SRob BradfordThe `x_nv_gpudirect_clique` option was added to `--device` to allow the
6764f96fa15SRob Bradfordconfiguration of device P2P support with NVIDIA GPUs. (#6235)
6774f96fa15SRob Bradford
6784f96fa15SRob Bradford### Guest NMI Injection Support
6794f96fa15SRob Bradford
6804f96fa15SRob BradfordA new API endpoint and `ch-remote` option added for injecting an NMI into the
6814f96fa15SRob Bradfordguest. (#6047)
6824f96fa15SRob Bradford
6834f96fa15SRob Bradford### Notable Bug Fixes
6844f96fa15SRob Bradford
6854f96fa15SRob Bradford* Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
6864f96fa15SRob Bradford* Correctly cleanup `sigwinch_listener` process (#6208)
6874f96fa15SRob Bradford* Graceful shutdown of HTTP API thread (#6248, #6247)
6884f96fa15SRob Bradford* Fix `queue_affinity` option in OpenAPI metadata (#6268)
6894f96fa15SRob Bradford* Fix documentation to indicate only stream mode is supported by `virtio-vsock`
6904f96fa15SRob Bradford  (#6306)
6914f96fa15SRob Bradford* Fix `virtio-fs` tag validation (#6358, #6359)
6924f96fa15SRob Bradford* Add missing `pvpanic` device to OpenAPI metadata (#6372)
6934f96fa15SRob Bradford* Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
6944f96fa15SRob Bradford  #6319)
6954f96fa15SRob Bradford* Fix for backing file for `virtio-mem` regions with snapshot/restore (#6337,
6964f96fa15SRob Bradford  #6338)
6974f96fa15SRob Bradford* Explicitly mark FDs used for network devices as invalid across
6984f96fa15SRob Bradford  snapshot/restore (#6332, #6286)
6994f96fa15SRob Bradford* Improve `event-monitor` events around reboot (#6277, #6274)
7004f96fa15SRob Bradford* Fix potential deadlock around paused devices during live migration (#6293)
7014f96fa15SRob Bradford* Fix panic when running `ch-remote` with no subcommand (#6230)
7024f96fa15SRob Bradford* Fix hotplug of `virtio` devices after snapshot/restore and live migration
7034f96fa15SRob Bradford  (#6326, #6265)
7044f96fa15SRob Bradford
7054f96fa15SRob Bradford### Contributors
7064f96fa15SRob Bradford
7074f96fa15SRob BradfordMany thanks to everyone who has contributed to our release:
7084f96fa15SRob Bradford
7094f96fa15SRob Bradford* Alexandru Matei <alexandru.matei@uipath.com>
7104f96fa15SRob Bradford* Andrew Carp <acarp@crusoeenergy.com>
7114f96fa15SRob Bradford* Bo Chen <chen.bo@intel.com>
7124f96fa15SRob Bradford* Bouke van der Bijl <i@bou.ke>
7134f96fa15SRob Bradford* Chris Webb <chris@arachsys.com>
7144f96fa15SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
7154f96fa15SRob Bradford* Lucas Jacques <contact@lucasjacques.com>
7164f96fa15SRob Bradford* Muminul Islam <muislam@microsoft.com>
7174f96fa15SRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
7184f96fa15SRob Bradford* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
7194f96fa15SRob Bradford* Rob Bradford <rbradford@rivosinc.com>
7204f96fa15SRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
7214f96fa15SRob Bradford* Stefan Nuernberger <stefan.nuernberger@cyberus-technology.de>
7224f96fa15SRob Bradford* Thomas Barrett <tbarrett@crusoeenergy.com>
7234f96fa15SRob Bradford* Wei Liu <liuwe@microsoft.com>
7244f96fa15SRob Bradford* Yi Wang <foxywang@tencent.com>
7254f96fa15SRob Bradford
726ef4fbf08SBo Chen# v38.0
727ef4fbf08SBo Chen
7286fa7c84dSRuoqing HeThis release has been tracked in [v38.0
7296fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v38.0%22)
7306fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
731ef4fbf08SBo Chen
732ef4fbf08SBo Chen### Group Rate Limiter on Block Devices
733ef4fbf08SBo Chen
734ef4fbf08SBo ChenUsers now can throttle a group of block devices with the new
735ef4fbf08SBo Chen`--rate-limiter-group` option. Details can be found from the [I/O
736ef4fbf08SBo ChenThrottling documentation](docs/io_throttling.md)
737ef4fbf08SBo Chen
738ef4fbf08SBo Chen### CPU Pinning Support for Block Device Worker Thread
739ef4fbf08SBo Chen
740ef4fbf08SBo ChenUsers now have the option to pin virt-queue threads for block devices
741ef4fbf08SBo Chento specific host cpus.
742ef4fbf08SBo Chen
743ef4fbf08SBo Chen### Optimized Boot Time with Parallel Memory Prefault
744ef4fbf08SBo Chen
745ef4fbf08SBo ChenThe boot time with `prefault` option enabled is optimized via parallel
746ef4fbf08SBo Chenmemory prefault.
747ef4fbf08SBo Chen
748ef4fbf08SBo Chen### New 'debug-console' Device
749ef4fbf08SBo Chen
750ef4fbf08SBo ChenA 'debug-console' device is added to provide a user-configurable debug
751ef4fbf08SBo Chenport for logging guest information. Details can be found from the [Debug
752ef4fbf08SBo ChenIO Ports documentation](docs/debug-port.md).
753ef4fbf08SBo Chen
754ef4fbf08SBo Chen### Improved VFIO Device Support
755ef4fbf08SBo Chen
756ef4fbf08SBo ChenAll non-emulated MMIO regions of VFIO devices are now mapped to the VFIO
757ef4fbf08SBo Chencontainer, allowing PCIe P2P between all VFIO devices on the same
758ef4fbf08SBo ChenVM. This is required for a wide variety of multi-GPU workloads involving
759ef4fbf08SBo ChenGPUDirect P2P (DMA between two GPUs), GPUDirect RDMA (DMA between a GPU
760ef4fbf08SBo Chenand an IB device).
761ef4fbf08SBo Chen
762ef4fbf08SBo Chen### Extended CPU Affinity Support
763ef4fbf08SBo Chen
764ef4fbf08SBo ChenUsers now can set the vcpu affinity to a host CPU with index larger
765ef4fbf08SBo Chenthan 255.
766ef4fbf08SBo Chen
767ef4fbf08SBo Chen### Notable Bug Fixes
768ef4fbf08SBo Chen
769ef4fbf08SBo Chen* Enable HTT flag to avoid crashing cpu topology enumeration software
770ef4fbf08SBo Chensuch as hwloc in the guest (#6146)
771ef4fbf08SBo Chen* Fix several security advisories from dependencies (#6134, #6141)
772ef4fbf08SBo Chen* Handle non-power-of-two CPU topology properly (#6062)
773ef4fbf08SBo Chen* Various bug fixes around `virtio-vsock`(#6080, #6091, #6095)
774ef4fbf08SBo Chen* Enable nested virtualization on AMD if supported (#6106)
775ef4fbf08SBo Chen* Align VFIO devices PCI BARs naturally (#6196)
776ef4fbf08SBo Chen
777ef4fbf08SBo Chen### Contributors
778ef4fbf08SBo Chen
779ef4fbf08SBo ChenMany thanks to everyone who has contributed to our release:
780ef4fbf08SBo Chen* Alyssa Ross <hi@alyssa.is>
781ef4fbf08SBo Chen* Bo Chen <chen.bo@intel.com>
782ef4fbf08SBo Chen* Daniel Farina <daniel@ubicloud.com>
783ef4fbf08SBo Chen* Jinank Jain <jinankjain@microsoft.com>
784ef4fbf08SBo Chen* Muminul Islam <muislam@microsoft.com>
785ef4fbf08SBo Chen* Peteris Rudzusiks <rye@stripe.com>
786ef4fbf08SBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
787ef4fbf08SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
788ef4fbf08SBo Chen* Rob Bradford <rbradford@rivosinc.com>
789ef4fbf08SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
790ef4fbf08SBo Chen* Sean Banko <sbanko@crusoeenergy.com>
791ef4fbf08SBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
792ef4fbf08SBo Chen* Wei Liu <liuwe@microsoft.com>
793ef4fbf08SBo Chen* Yi Wang <foxywang@tencent.com>
794ef4fbf08SBo Chen* acarp <acarp@crusoeenergy.com>
795ef4fbf08SBo Chen
7965e702dcdSBo Chen# v37.0
7975e702dcdSBo Chen
7986fa7c84dSRuoqing HeThis release has been tracked in [v37.0
7996fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v37.0%22)
8006fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
8015e702dcdSBo Chen
8025e702dcdSBo Chen### Long Term Support (LTS) Release
8035e702dcdSBo Chen
8045e702dcdSBo ChenThis release is a LTS release. Point releases for bug fixes will be made
8055e702dcdSBo Chenfor the next 18 months; live migration and live upgrade will be
8065e702dcdSBo Chensupported between the point releases of the LTS.
8075e702dcdSBo Chen
8085e702dcdSBo Chen### Multiple PCI segments Support for 32-bit VFIO devices
8095e702dcdSBo Chen
8105e702dcdSBo ChenNow VFIO devices with 32-bit memory BARs can be attached to non-zero PCI
8115e702dcdSBo Chensegments on the guest, allowing users to have more 32-bit devices and
8125e702dcdSBo Chenassign such devices to appropriate NUMA nodes for better performance.
8135e702dcdSBo Chen
8145e702dcdSBo Chen### Configurable Named TAP Devices
8155e702dcdSBo Chen
8165e702dcdSBo ChenNamed TAP devices now accepts IP configuration from users, such as IP
8175e702dcdSBo Chenand MAC address, as long as the named TAP device is created by Cloud
8185e702dcdSBo ChenHypervisor (e.g. not existing TAP devices).
8195e702dcdSBo Chen
8205e702dcdSBo Chen### TTY Output from Both Serial Device and Virtio Console
8215e702dcdSBo Chen
8225e702dcdSBo ChenNow legacy serial device and virtio console can be set as TTY mode as
8235e702dcdSBo Chenthe same time. This allows users to capture early boot logs with the
8245e702dcdSBo Chenlegacy serial device without losing performance benefits of using
8255e702dcdSBo Chenvirtio-console, when appropriate kernel configuration is used (such as
8265e702dcdSBo Chenusing kernel command-line `console=hvc0 earlyprintk=ttyS0` on x86).
8275e702dcdSBo Chen
8285e702dcdSBo Chen### Faster VM Restoration from Snapshots
8295e702dcdSBo Chen
8305e702dcdSBo ChenThe speed of VM restoration from snapshots is improved with a better
8315e702dcdSBo Chenimplementation of deserializing JSON files.
8325e702dcdSBo Chen
8335e702dcdSBo Chen### Notable Bug Fixes
8345e702dcdSBo Chen
8355e702dcdSBo Chen* Fix aio backend behavior for block devices when writeback cache
8365e702dcdSBo Chen  disabled (#5930)
8375e702dcdSBo Chen* Fix PvPanic device PCI BAR alignment (#5956)
8385e702dcdSBo Chen* Bug fix to OpenAPI specification file (#5967)
8395e702dcdSBo Chen* Error out early for live migration when TDX is enabled (#6025)
8405e702dcdSBo Chen
8415e702dcdSBo Chen### Contributors
8425e702dcdSBo Chen
8435e702dcdSBo ChenMany thanks to everyone who has contributed to our release:
8445e702dcdSBo Chen
8455e702dcdSBo Chen* Bo Chen <chen.bo@intel.com>
8465e702dcdSBo Chen* Jinank Jain <jinankjain@microsoft.com>
8475e702dcdSBo Chen* Markus Sütter <markus.suetter@secunet.com>
8485e702dcdSBo Chen* Michael Zhao <michael.zhao@arm.com>
8495e702dcdSBo Chen* Muminul Islam <muislam@microsoft.com>
8505e702dcdSBo Chen* Rob Bradford <rbradford@rivosinc.com>
8515e702dcdSBo Chen* Rui Chang <rui.chang@arm.com>
8525e702dcdSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
8535e702dcdSBo Chen* Thomas Barrett <tbarrett@crusoeenergy.com>
8545e702dcdSBo Chen* Wei Liu <liuwe@microsoft.com>
8555e702dcdSBo Chen* Yi Wang <foxywang@tencent.com>
8565e702dcdSBo Chen* Yong He <alexyonghe@tencent.com>
8575e702dcdSBo Chen
858f5899d15SBo Chen# v36.0
859f5899d15SBo Chen
8606fa7c84dSRuoqing HeThis release has been tracked in [v36.0
8616fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v36.0%22)
8626fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
863f5899d15SBo Chen
864f5899d15SBo Chen### Command Line Changes
865f5899d15SBo Chen
866f5899d15SBo ChenWe switched back to use the `clap` crate to create our command line,
867f5899d15SBo Chensince the `argh` crate is barely maintained. There were several syntax
868f5899d15SBo Chenchanges:
869f5899d15SBo Chen
870f5899d15SBo Chen* All `--option value` commands now are `--option=value`.
871f5899d15SBo Chen* The `--disk DISK1 --disk DISK2` command now is `--disk DISK1 DISK2`.
872f5899d15SBo Chen* The `-v -v -v`command now is `-vvv`.
873f5899d15SBo Chen
874f5899d15SBo ChenNote: the released binary size increased around 0.3M due to this change.
875f5899d15SBo Chen
876f5899d15SBo Chen### Enabled Features Reported via API Endpoint and CLI
877f5899d15SBo Chen
878f5899d15SBo ChenNow the enabled (Cargo) features of the running Cloud Hypervisor
879f5899d15SBo Cheninstance can be queried via API endpoint (`/vmm.ping`) and CLI
880f5899d15SBo Chen(`--version -v`).
881f5899d15SBo Chen
882f5899d15SBo Chen### NUMA Support for PCI segments
883f5899d15SBo Chen
884f5899d15SBo ChenThe `--numa` command is augmented with a new option `pci_segment=`, so
885f5899d15SBo Chenthat users can define the relationship between PCI segments and NUMA
886f5899d15SBo Chennodes. Examples can be found from the [memory documentation](docs/memory.md)
887f5899d15SBo Chen
888f5899d15SBo Chen### CPU Topology Support on AMD Platforms
889f5899d15SBo Chen
890f5899d15SBo ChenNow the CPU topology on x86_64 platforms supports multiple vendors.
891f5899d15SBo Chen
892f5899d15SBo Chen### Unix Socket Backend for Serial Port
893f5899d15SBo Chen
894f5899d15SBo ChenThe `--serial` command is augmented with a new option `socket=`, allowing
895f5899d15SBo Chenusers to access the serial port using a Unix socket.
896f5899d15SBo Chen
897f5899d15SBo Chen### AIO Backend for Block Devices
898f5899d15SBo Chen
899f5899d15SBo ChenAn AIO backend is added for `virtio-block` devices to improve block
900f5899d15SBo Chendevice performance when the `io_uring` feature is not supported by the
901f5899d15SBo Chenhost Operating System.
902f5899d15SBo Chen
903f5899d15SBo Chen### Documentation Improvements
904f5899d15SBo Chen
905f5899d15SBo Chen* New [documentation](docs/coverage.md) for collecting coverage data
906f5899d15SBo Chen* Various typo fixes
907f5899d15SBo Chen
908f5899d15SBo Chen### Notable Bug Fixes
909f5899d15SBo Chen
910f5899d15SBo Chen* Fix a deadlock when TDX is enabled (#5845)
911f5899d15SBo Chen* Only advertise AMX feature bits to guest when the AMX cpu feature is
912f5899d15SBo Chen  enabled (#5834)
913f5899d15SBo Chen* Correct default value for vCPU topology on AArch64 (#5893)
914f5899d15SBo Chen
915f5899d15SBo Chen### Contributors
916f5899d15SBo Chen
917f5899d15SBo ChenMany thanks to everyone who has contributed to our release:
918f5899d15SBo Chen
919f5899d15SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
920f5899d15SBo Chen*  Bo Chen <chen.bo@intel.com>
921f5899d15SBo Chen*  Dario Nieuwenhuis <dirbaio@dirbaio.net>
922f5899d15SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
923f5899d15SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
924f5899d15SBo Chen*  Muminul Islam <muislam@microsoft.com>
925f5899d15SBo Chen*  Praveen K Paladugu <prapal@linux.microsoft.com>
926f5899d15SBo Chen*  Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
927f5899d15SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
928f5899d15SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
929f5899d15SBo Chen*  Wei Liu <liuwe@microsoft.com>
930f5899d15SBo Chen*  Yi Wang <foxywang@tencent.com>
931f5899d15SBo Chen*  dom.song <dom.song@amperecomputing.com>
932f5899d15SBo Chen
933339912a5SBo Chen# v35.0
934339912a5SBo Chen
9356fa7c84dSRuoqing HeThis release has been tracked in [v35.0
9366fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v35.0%22)
9376fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
938339912a5SBo Chen
939339912a5SBo Chen### `virtio-vsock` Support for Linux Guest Kernel v6.3+
940339912a5SBo Chen
941339912a5SBo ChenSince kernel v6.3, a vsock packet can be included in a single descriptor,
942339912a5SBo Cheninstead of being split over two descriptors. Our `virtio-vsock` implementation
943339912a5SBo Chennow support both situations.
944339912a5SBo Chen
945339912a5SBo Chen### User Specified Serial Number for `virtio-block`
946339912a5SBo Chen
947339912a5SBo ChenA new option `serial` is added to the `--block` command that allows users to
948339912a5SBo Chenspecify a serial number for block devices which will be guest visible.
949339912a5SBo Chen
950339912a5SBo Chen### vCPU TSC Frequency Included in Migration State
951339912a5SBo Chen
952339912a5SBo ChenThis ensures migration works correctly between hosts that have different TSC
953339912a5SBo Chenfrequencies if the guest is running with TSC as the source of timekeeping.
954339912a5SBo Chen
955339912a5SBo Chen### Notable Bug Fixes
956339912a5SBo Chen
957339912a5SBo Chen* Disallow concurrent CPU resizing (#5668)
958339912a5SBo Chen* Handle APIC EOI message for MSHV (#5681)
959339912a5SBo Chen* Use wrapping add for memory offset from instruction emulator (#5719)
960339912a5SBo Chen* Add global spell check via the 'typos' GitHub action (#5720)
961339912a5SBo Chen* Ensure probing reads are block size aligned (#5727)
962339912a5SBo Chen* Multiple bug fixes around the latency counter for block devices
963339912a5SBo Chen  (#5712, #5750, #5762, #5763)
964339912a5SBo Chen* Replace unsound `static mut` with `once_cell` (#5772)
965339912a5SBo Chen
966339912a5SBo Chen### Contributors
967339912a5SBo Chen
968339912a5SBo ChenMany thanks to everyone who has contributed to our release:
969339912a5SBo Chen
970339912a5SBo Chen*  Alyssa Ross <hi@alyssa.is>
971339912a5SBo Chen*  Anatol Belski <anbelski@linux.microsoft.com>
972339912a5SBo Chen*  Bo Chen <chen.bo@intel.com>
973339912a5SBo Chen*  Christian Blichmann <cblichmann@google.com>
974339912a5SBo Chen*  Jianyong Wu <jianyong.wu@arm.com>
975339912a5SBo Chen*  Jinank Jain <jinankjain@microsoft.com>
976339912a5SBo Chen*  Julian Stecklina <julian.stecklina@cyberus-technology.de>
977339912a5SBo Chen*  Omer Faruk Bayram <omer.faruk@sartura.hr>
978339912a5SBo Chen*  Philipp Schuster <philipp.schuster@cyberus-technology.de>
979339912a5SBo Chen*  Rob Bradford <rbradford@rivosinc.com>
980339912a5SBo Chen*  Ruslan Mstoi <ruslan.mstoi@intel.com>
981339912a5SBo Chen*  Thomas Barrett <tbarrett@crusoeenergy.com>
982339912a5SBo Chen*  Wei Liu <liuwe@microsoft.com>
983339912a5SBo Chen*  Yi Wang <foxywang@tencent.com>
984339912a5SBo Chen*  zhongbingnan <zhongbingnan@bytedance.com>
985339912a5SBo Chen
986487a43cdSRob Bradford# v34.0
987487a43cdSRob Bradford
9886fa7c84dSRuoqing HeThis release has been tracked in [v34.0
9896fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v34.0%22)
9906fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
991487a43cdSRob Bradford
992487a43cdSRob Bradford### Paravirtualised Panic Device Support
993487a43cdSRob Bradford
994487a43cdSRob BradfordA new device has been added that can communicate when the guest kernel has
995487a43cdSRob Bradfordpanicked and share those details with the VMM. This is controlled with a new
996487a43cdSRob Bradford`--pvpanic` command line option and JSON API change equivalent. (#5526)
997487a43cdSRob Bradford
998487a43cdSRob Bradford### Improvements to VM Core Dump
999487a43cdSRob Bradford
1000487a43cdSRob BradfordRequesting to dump the guest memory as core dump will now transparently pause
1001487a43cdSRob Bradfordthe VM if required; returning to the original state after. (#5604)
1002487a43cdSRob Bradford
1003487a43cdSRob Bradford### QCOW2 Support for Backing Files
1004487a43cdSRob Bradford
1005487a43cdSRob BradfordThe support for QCOW2 files has been enhanced to include support for using
1006487a43cdSRob Bradfordbacking files. (#5573)
1007487a43cdSRob Bradford
1008487a43cdSRob Bradford### Minimum Host Kernel Bump
1009487a43cdSRob Bradford
1010487a43cdSRob BradfordThe minimum supported host kernel is now 5.13 in order to incorporate a bug fix
1011487a43cdSRob Bradfordfor `KVM_FEATURE_ASYNC_PF_INT` functionality. (#5626)
1012487a43cdSRob Bradford
1013487a43cdSRob Bradford### Notable Bug Fixes
1014487a43cdSRob Bradford
1015487a43cdSRob Bradford* The x86 emulator is only compiled in if MSHV is compiled in (the kernel
1016487a43cdSRob Bradford  carries out this job with KVM) (#5561).
1017487a43cdSRob Bradford* A regression has been fixed in VFIO support for devices that use MSI rather
1018487a43cdSRob Bradford  than MSI-X (#5658).
1019487a43cdSRob Bradford* When triggering a VM shutdown or reset via I/O the vCPU thread will be
1020487a43cdSRob Bradford  blocked until that asynchronous event has been received (#5645).
1021487a43cdSRob Bradford* Pausing a VM is now a synchronous action with the request only completing
1022487a43cdSRob Bradford  when all vCPUs are paused (#5611).
1023487a43cdSRob Bradford* Event monitor support now correctly supports concurrent access (#5633).
1024487a43cdSRob Bradford* Bug fixes for the QCOW2 file support (#5573).
1025487a43cdSRob Bradford
1026487a43cdSRob Bradford### Contributors
1027487a43cdSRob Bradford
1028487a43cdSRob BradfordMany thanks to everyone who has contributed to our release:
1029487a43cdSRob Bradford
1030487a43cdSRob Bradford* Alyssa Ross <hi@alyssa.is>
1031487a43cdSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
1032487a43cdSRob Bradford* Bo Chen <chen.bo@intel.com>
1033487a43cdSRob Bradford* Changyuan Lyu <changyuanl@google.com>
1034487a43cdSRob Bradford* Christian Blichmann <cblichmann@google.com>
1035487a43cdSRob Bradford* Manish Goregaokar <manishsmail@gmail.com>
1036487a43cdSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
1037487a43cdSRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1038487a43cdSRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
1039487a43cdSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
1040487a43cdSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
1041487a43cdSRob Bradford* Yi Wang <foxywang@tencent.com>
1042487a43cdSRob Bradford* Yong He <alexyonghe@tencent.com>
1043487a43cdSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
1044487a43cdSRob Bradford* dom.song <dom.song@amperecomputing.com>
1045487a43cdSRob Bradford
10466e0e6323SBo Chen# v33.0
10476e0e6323SBo Chen
10486fa7c84dSRuoqing HeThis release has been tracked in [v33.0
10496fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v33.0%22)
10506fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
10516e0e6323SBo Chen
10526e0e6323SBo Chen### D-Bus based API
10536e0e6323SBo Chen
10546e0e6323SBo ChenA D-Bus based API has been added as an alternative to the existing REST
10556e0e6323SBo ChenAPI. This feature is gated by the `dbus_api` feature. Details can be
10566e0e6323SBo Chenfound in the [API documentation](docs/api.md).
10576e0e6323SBo Chen
10586e0e6323SBo Chen### Expose Host CPU Cache Details for AArch64
10596e0e6323SBo Chen
10606e0e6323SBo ChenNow the CPU cache information on the host is properly exposed to the
10616e0e6323SBo Chenguest on AArch64.
10626e0e6323SBo Chen
10636e0e6323SBo Chen### Notable Bug Fixes
10646e0e6323SBo Chen
10656e0e6323SBo Chen* Report errors explicitly to users when VM failed to boot (#5453)
10666e0e6323SBo Chen* Fix VFIO on platforms with non-4k page size (#5450, #5469)
10676e0e6323SBo Chen* Fix TDX initialization (#5454)
10686e0e6323SBo Chen* Ensure all guest memory regions are page-size aligned (#5496)
10696e0e6323SBo Chen* Fix seccomp filter lists related to virtio-console, serial and pty
10706e0e6323SBo Chen  (#5506, #5524)
10716e0e6323SBo Chen* Populate APIC ID properly (#5512)
10726e0e6323SBo Chen* Ignore and warn TAP FDs in more situations (#5522)
10736e0e6323SBo Chen
10746e0e6323SBo Chen### Contributors
10756e0e6323SBo Chen
10766e0e6323SBo ChenMany thanks to everyone who has contributed to our release:
10776e0e6323SBo Chen
10786e0e6323SBo Chen* Alyssa Ross <hi@alyssa.is>
10796e0e6323SBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
10806e0e6323SBo Chen* Bo Chen <chen.bo@intel.com>
10816e0e6323SBo Chen* Jianyong Wu <jianyong.wu@arm.com>
10826e0e6323SBo Chen* Omer Faruk Bayram <omer.faruk@sartura.hr>
10836e0e6323SBo Chen* Rafael Mendonca <rafaelmendsr@gmail.com>
10846e0e6323SBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
10856e0e6323SBo Chen* Rob Bradford <rbradford@rivosinc.com>
10866e0e6323SBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
10876e0e6323SBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
10886e0e6323SBo Chen* zhongbingnan <zhongbingnan@bytedance.com>
10896e0e6323SBo Chen
109042ca292dSRob Bradford# v32.0
109142ca292dSRob Bradford
10926fa7c84dSRuoqing HeThis release has been tracked in [v32.0
10936fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v32.0%22)
10946fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
109542ca292dSRob Bradford
109642ca292dSRob Bradford### Increased PCI Segment Limit
109742ca292dSRob Bradford
109842ca292dSRob BradfordThe maximum number of PCI segments that can be used is now 96 (up from 16).
109942ca292dSRob Bradford
110042ca292dSRob Bradford### API Changes
110142ca292dSRob Bradford
110242ca292dSRob Bradford* The VmmPingResponse now includes the PID as well as the build details.
110342ca292dSRob Bradford  (#5348)
110442ca292dSRob Bradford
110542ca292dSRob Bradford### Notable Bug Fixes
110642ca292dSRob Bradford
110742ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
110842ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
110942ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
111042ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
111142ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
111242ca292dSRob Bradford* The number of vCPUs is capped at the hypervisor maximum (#5357)
111342ca292dSRob Bradford* Fixes for TTY reset (#5414)
111442ca292dSRob Bradford* CPU topology fixes on MSHV (#5325)
111542ca292dSRob Bradford* Seccomp fixes for older distributions (#5397)
111642ca292dSRob Bradford
111742ca292dSRob Bradford### Contributors
111842ca292dSRob Bradford
111942ca292dSRob BradfordMany thanks to everyone who has contributed to our release:
112042ca292dSRob Bradford
112142ca292dSRob Bradford* Alyssa Ross <hi@alyssa.is>
112242ca292dSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
112342ca292dSRob Bradford* Bo Chen <chen.bo@intel.com>
112442ca292dSRob Bradford* Hao Xu <howeyxu@tencent.com>
112542ca292dSRob Bradford* Muminul Islam <muislam@microsoft.com>
112642ca292dSRob Bradford* Omer Faruk Bayram <omer.faruk@sartura.hr>
112742ca292dSRob Bradford* Rafael Mendonca <rafaelmendsr@gmail.com>
112842ca292dSRob Bradford* Rob Bradford <rbradford@rivosinc.com>
112942ca292dSRob Bradford* Ruslan Mstoi <ruslan.mstoi@intel.com>
113042ca292dSRob Bradford* Smit Gardhariya <gardhariya.smit@gmail.com>
113142ca292dSRob Bradford* Wei Liu <liuwe@microsoft.com>
113242ca292dSRob Bradford
113342ca292dSRob Bradford# v31.1
113442ca292dSRob Bradford
113542ca292dSRob BradfordThis is a bug fix release. The following issues have been addressed:
113642ca292dSRob Bradford
113742ca292dSRob Bradford* Ignore and warn TAP FDs sent via the HTTP request body (#5350)
113842ca292dSRob Bradford* Properly preserve and close valid FDs for TAP devices (#5373)
113942ca292dSRob Bradford* Only use `KVM_ARM_VCPU_PMU_V3` if available (#5360)
114042ca292dSRob Bradford* Only touch the tty flags if it's being used (#5343)
114142ca292dSRob Bradford* Fix seccomp filter lists for vhost-user devices (#5361)
114242ca292dSRob Bradford
1143f3522e85SMichael Zhao# v31.0
1144f3522e85SMichael Zhao
11456fa7c84dSRuoqing HeThis release has been tracked in [v31.0
11466fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v31.0%22)
11476fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1148f3522e85SMichael Zhao
1149f3522e85SMichael Zhao### Update to Latest `acpi_tables`
1150f3522e85SMichael Zhao
1151f3522e85SMichael ZhaoAdapted to the latest [acpi_tables](https://github.com/rust-vmm/acpi_tables).
1152f3522e85SMichael ZhaoThere has been significant API changes in the crate.
1153f3522e85SMichael Zhao
1154f3522e85SMichael Zhao### Update Reference Kernel to 6.2
1155f3522e85SMichael Zhao
1156f3522e85SMichael ZhaoUpdated the recommended guest kernel version from 6.1.6 to 6.2.
1157f3522e85SMichael Zhao
1158f3522e85SMichael Zhao### Improvements on Console `SIGWINCH` Handler
1159f3522e85SMichael Zhao
1160f3522e85SMichael ZhaoA separate thread had been created to capture the `SIGWINCH` signal and resize
1161f3522e85SMichael Zhaothe guest console. Now the thread is skipped if the console is not resizable.
1162f3522e85SMichael Zhao
1163f3522e85SMichael ZhaoTwo completely different code paths existed for handling console resizing, one
1164f3522e85SMichael Zhaofor `tty` and the other for `pty`. That makes the understanding of the console
1165f3522e85SMichael Zhaohandling code unnecessarily complicated. Now the code paths are unified. Both
1166f3522e85SMichael Zhao`tty` and `pty` are supported in single `SIGWINCH` handler. And the new handler
1167f3522e85SMichael Zhaocan works with kernel versions earlier than v5.5.
1168f3522e85SMichael Zhao
1169f3522e85SMichael Zhao### Remove Directory Support from `MemoryZoneConfig::file`
1170f3522e85SMichael Zhao
1171f3522e85SMichael ZhaoSetting a directory to `MemoryZoneConfig::file` is no longer supported.
1172f3522e85SMichael Zhao
1173f3522e85SMichael ZhaoBefore this change, user can set a directory to `file` of the `--memory-zone`
1174f3522e85SMichael Zhaooption. In that case, a temporary file will be created as the backing file for
1175f3522e85SMichael Zhaothe `mmap(2)` operation. This functionality has been unnecessary since we had
1176f3522e85SMichael Zhaothe native support for hugepages and allocating anonymous shared memory.
1177f3522e85SMichael Zhao
1178f3522e85SMichael Zhao### Documentation Improvements
1179f3522e85SMichael Zhao
1180f3522e85SMichael Zhao* Various improvements in API document
1181f3522e85SMichael Zhao* Improvements in Doc comments
1182f3522e85SMichael Zhao* Updated Slack channel information in README
1183f3522e85SMichael Zhao
1184f3522e85SMichael Zhao### Notable Bug Fixes
1185f3522e85SMichael Zhao
1186f3522e85SMichael Zhao* Fixed the offset setting while removing the entire mapping of `vhost-user` FS
1187f3522e85SMichael Zhao  client.
1188f3522e85SMichael Zhao* Fixed the `ShutdownVmm` and `Shutdown` commands to call the correct API
1189f3522e85SMichael Zhao  endpoint.
1190f3522e85SMichael Zhao
1191f3522e85SMichael Zhao### Contributors
1192f3522e85SMichael Zhao
1193f3522e85SMichael ZhaoMany thanks to everyone who has contributed to our release:
1194f3522e85SMichael Zhao
1195f3522e85SMichael Zhao* Alyssa Ross <hi@alyssa.is>
1196f3522e85SMichael Zhao* Bo Chen <chen.bo@intel.com>
1197f3522e85SMichael Zhao* Daniel Farina <daniel@fdr.io>
1198f3522e85SMichael Zhao* Dom <peng6662001@163.com>
1199f3522e85SMichael Zhao* Hao Xu <howeyxu@tencent.com>
1200f3522e85SMichael Zhao* Muminul Islam <muislam@microsoft.com>
1201f3522e85SMichael Zhao* Omer Faruk Bayram <omer.faruk@sartura.hr>
1202f3522e85SMichael Zhao* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1203f3522e85SMichael Zhao* Rob Bradford <rbradford@rivosinc.com>
1204f3522e85SMichael Zhao* Ruslan Mstoi <ruslan.mstoi@intel.com>
1205f3522e85SMichael Zhao* Smit Gardhariya <gardhariya.smit@gmail.com>
1206f3522e85SMichael Zhao* Yang <ailin.yang@intel.com>
1207f3522e85SMichael Zhao* Yong He <alexyonghe@tencent.com>
1208f3522e85SMichael Zhao
1209ece0e6faSBo Chen# v30.0
1210ece0e6faSBo Chen
12116fa7c84dSRuoqing HeThis release has been tracked in [v30.0
12126fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v30.0%22)
12136fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
1214ece0e6faSBo Chen
1215ece0e6faSBo Chen### Command Line Changes for Reduced Binary Size
1216ece0e6faSBo Chen
1217ece0e6faSBo ChenThe `clap` crate was replaced by the `argh` crate to create our command
1218ece0e6faSBo Chenline, which reduced our release binary size from 3.6MB to 3.3MB. There
1219ece0e6faSBo Chenwere several syntax changes:
1220ece0e6faSBo Chen
1221ece0e6faSBo Chen* All `--option=value` commands now are `--option value`.
1222ece0e6faSBo Chen* The `--disk DISK1 DISK2` command now is `--disk DISK1 --disk DISK2`.
1223ece0e6faSBo Chen* The  `-vvv` command now is `-v -v -v`
1224ece0e6faSBo Chen
1225ece0e6faSBo Chen### Basic vfio-user Server Support
1226ece0e6faSBo Chen
1227ece0e6faSBo ChenOur `vfio-user` crate is extended to provide basic server side support
1228ece0e6faSBo Chenwith an example of gpio vfio-user device. This crate now is moved to [its
1229ece0e6faSBo Chenown repository](https://github.com/rust-vmm/vfio-user) under the
1230ece0e6faSBo Chen`rust-vmm` organization.
1231ece0e6faSBo Chen
1232ece0e6faSBo Chen### Heap Profiling Support
1233ece0e6faSBo Chen
1234ece0e6faSBo ChenA new building target is added for profiling purposes with examples of
1235ece0e6faSBo Chenheap profiling using `dhat` gated by the `dhat-heap` feature.
1236ece0e6faSBo Chen
1237ece0e6faSBo Chen### Documentation Improvements
1238ece0e6faSBo Chen
1239ece0e6faSBo ChenThe documentation on Intel TDX is expanded with details of the building
1240ece0e6faSBo Chenand using [TD-Shim](https://github.com/confidential-containers/td-shim),
1241abcbf434SRuoqing Hereferences to [TDX Linux](https://github.com/intel/tdx-linux), and
1242ece0e6faSBo Chenversion information of guest/host kernel/TDVF/TDShim being tested. Also,
1243ece0e6faSBo Chena new 'heap profiling' documentation is added with improvements on the
1244ece0e6faSBo Chenexisting 'profiling' documentation.
1245ece0e6faSBo Chen
1246ece0e6faSBo Chen### Notable Bug Fixes
1247ece0e6faSBo Chen
1248ece0e6faSBo Chen* Close FDs for TAP devices that are provided to VM (#5199, #5206)
1249ece0e6faSBo Chen* Set vcpu thread status properly and signal `exit_evt` upon thread exit (#5211)
1250ece0e6faSBo Chen* Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
1251ece0e6faSBo Chen* Inform the TPM guest driver upon failed TPM requests on the host (#5151)
1252ece0e6faSBo Chen* Bug fix to OpenAPI specification file (#5186)
1253ece0e6faSBo Chen
1254ece0e6faSBo Chen### Contributors
1255ece0e6faSBo Chen
1256ece0e6faSBo ChenMany thanks to everyone who has contributed to our release:
1257ece0e6faSBo Chen
1258ece0e6faSBo Chen* Anatol Belski <anbelski@linux.microsoft.com>
1259ece0e6faSBo Chen* Anirudh Rayabharam <anrayabh@linux.microsoft.com>
1260ece0e6faSBo Chen* Bo Chen <chen.bo@intel.com>
1261ece0e6faSBo Chen* Jinank Jain <jinankjain@microsoft.com>
1262ece0e6faSBo Chen* Kaihang Zhang <kaihang.zhang@smartx.com>
1263ece0e6faSBo Chen* Michael Zhao <michael.zhao@arm.com>
1264ece0e6faSBo Chen* Muminul Islam <muislam@microsoft.com>
1265ece0e6faSBo Chen* Philipp Schuster <philipp.schuster@cyberus-technology.de>
1266ece0e6faSBo Chen* Praveen K Paladugu <prapal@linux.microsoft.com>
1267ece0e6faSBo Chen* Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
1268ece0e6faSBo Chen* Rob Bradford <robert.bradford@intel.com>
1269ece0e6faSBo Chen* Ruslan Mstoi <ruslan.mstoi@intel.com>
1270ece0e6faSBo Chen* Sebastien Boeuf <sebastien.boeuf@intel.com>
1271ece0e6faSBo Chen* Wei Liu <liuwe@microsoft.com>
1272ece0e6faSBo Chen* Yong He <alexyonghe@tencent.com>
1273ece0e6faSBo Chen* Yu Li <liyu.yukiteru@bytedance.com>
1274ece0e6faSBo Chen
1275ece0e6faSBo Chen# v28.2
1276ece0e6faSBo ChenThis is a bug fix release. The following issues have been addressed:
1277ece0e6faSBo Chen
1278ece0e6faSBo Chen* Fix QCOW2 refcount table size (#5034)
1279ece0e6faSBo Chen* Fix unpause support on MSHV in dual binary (#5037)
1280ece0e6faSBo Chen* Threads inside `virtio` devices are now shutdown on reboot (#5095)
1281ece0e6faSBo Chen
128222cf8c97SRob Bradford# v29.0
128322cf8c97SRob Bradford
12846fa7c84dSRuoqing HeThis release has been tracked in [v29.0
12856fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v29.0%22)
12866fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
128722cf8c97SRob Bradford
128822cf8c97SRob Bradford### Release Binary Supports Both MSHV and KVM
128922cf8c97SRob Bradford
129022cf8c97SRob BradfordOn `x86-64` the binary included in releases supports both the KVM and MSHV
129122cf8c97SRob Bradfordhypervisor with runtime detection to identify the correct hypervisor to use.
129222cf8c97SRob Bradford
129322cf8c97SRob Bradford### Snapshot/Restore and Live Migration Improvements
129422cf8c97SRob Bradford
129522cf8c97SRob BradfordImprovements have been made to the data structures used for both live migration
129622cf8c97SRob Bradfordand snapshot/restore. Unfortunately this has broken compatibility with older
129722cf8c97SRob Bradfordversions (support for migrating between major versions is not yet officially
129822cf8c97SRob Bradfordsupported but has worked for some versions.)
129922cf8c97SRob Bradford
130022cf8c97SRob Bradford### Heap Allocation Improvements
130122cf8c97SRob Bradford
130222cf8c97SRob BradfordImprovements have been made to the volume of heap allocations when running with
130322cf8c97SRob Bradford`virtio-block` devices along with a reduction in the peak heap size.
130422cf8c97SRob Bradford
130522cf8c97SRob Bradford### `ch-remote` Improvements
130622cf8c97SRob Bradford
130722cf8c97SRob BradfordSupport for "pinging" the VMM and shutting the VMM down have been added to
130822cf8c97SRob Bradford`ch-remote`.
130922cf8c97SRob Bradford
131022cf8c97SRob Bradford### `AArch64` Documentation Integration
131122cf8c97SRob Bradford
131222cf8c97SRob BradfordThe documentation for `AArch64` support has been integrated into the main
131322cf8c97SRob BradfordREADME.
131422cf8c97SRob Bradford
131522cf8c97SRob Bradford### `virtio-block` Counters Enhancement
131622cf8c97SRob Bradford
131722cf8c97SRob BradfordThe counters for the `virtio-block` device has extended to include min/mean/max
131822cf8c97SRob Bradfordlatency counters.
131922cf8c97SRob Bradford
132022cf8c97SRob Bradford### TCP Offload Control
132122cf8c97SRob Bradford
132222cf8c97SRob BradfordThe `virtio-net` device has gained support for controlling the enabling of
132322cf8c97SRob Bradfordchecksum and offloading. This allows the device to be used in environments
132422cf8c97SRob Bradfordwhere the hardware lacks support for the offloading.
132522cf8c97SRob Bradford
132622cf8c97SRob Bradford### Notable Bug Fixes
132722cf8c97SRob Bradford
132822cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that addresses an
132922cf8c97SRob Bradford  infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
133022cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
133122cf8c97SRob Bradford  (#4924, #4949)
133222cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
133322cf8c97SRob Bradford* Memory mapped into the guest is now marked as non-dumpable which prevents large core files (#5016)
133422cf8c97SRob Bradford* Fix QCOW2 refcount table size (#5034)
133522cf8c97SRob Bradford* Fix unpause support on MSHV in dual binary (#5037)
133622cf8c97SRob Bradford* Threads inside `virtio` devices are now shutdown on reboot (#5095)
133722cf8c97SRob Bradford
133822cf8c97SRob Bradford### Removals
133922cf8c97SRob Bradford
134022cf8c97SRob BradfordNo functionality has been removed in this release.
134122cf8c97SRob Bradford
134222cf8c97SRob Bradford### Deprecations
134322cf8c97SRob Bradford
134422cf8c97SRob Bradford* Support for specifying a directory with `MemoryZoneConfig::file` or
134522cf8c97SRob Bradford  `MemoryConfig::file` has been deprecated. This was originally used for
134622cf8c97SRob Bradford  supporting huge pages or shared memory backing which is now natively supported
134722cf8c97SRob Bradford  (#5085)
134822cf8c97SRob Bradford
134922cf8c97SRob Bradford### Contributors
135022cf8c97SRob Bradford
135122cf8c97SRob BradfordMany thanks to everyone who has contributed to our release:
135222cf8c97SRob Bradford
135322cf8c97SRob Bradford* Bo Chen <chen.bo@intel.com>
135422cf8c97SRob Bradford* Claudio Fontana <claudio.fontana@gmail.com>
135522cf8c97SRob Bradford* Hao Xu <howeyxu@tencent.com>
135622cf8c97SRob Bradford* Henry Wang <Henry.Wang@arm.com>
135722cf8c97SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
135822cf8c97SRob Bradford* Michael Zhao <michael.zhao@arm.com>
135922cf8c97SRob Bradford* Muminul Islam <muislam@microsoft.com>
136022cf8c97SRob Bradford* Philipp Schuster <philipp.schuster@cyberus-technology.de>
136122cf8c97SRob Bradford* Rob Bradford <robert.bradford@intel.com>
136222cf8c97SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
136322cf8c97SRob Bradford* Shuaiyi Zhang <zhangsy28@lenovo.com>
136422cf8c97SRob Bradford* Wei Liu <liuwe@microsoft.com>
136522cf8c97SRob Bradford* Yong He <alexyonghe@tencent.com>
136622cf8c97SRob Bradford* Yuji Hagiwara <yuuzi41@gmail.com>
136722cf8c97SRob Bradford
136822cf8c97SRob Bradford
136922cf8c97SRob Bradford# v28.1
137022cf8c97SRob BradfordThis is a bug fix release. The following issues have been addressed:
137122cf8c97SRob Bradford
137222cf8c97SRob Bradford* Update dependencies including a version of `linux-loader` that
137322cf8c97SRob Bradfordaddresses an infinite loop issue ([details](https://github.com/rust-vmm/linux-loader/security/advisories/GHSA-52h2-m2cf-9jh6))
137422cf8c97SRob Bradford* Fix bugs related to `virtio-net` including an integer overflow issue
137522cf8c97SRob Bradford  (#4924, #4949)
137622cf8c97SRob Bradford* Use host `cpuid` information for L2 cache for older KVM on x86 (#4920)
137722cf8c97SRob Bradford* Improve README and documentation
137822cf8c97SRob Bradford
137966460765SRob Bradford# v28.0
138066460765SRob Bradford
13816fa7c84dSRuoqing HeThis release has been tracked in [v28.0
13826fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v28.0%22)
13836fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
138466460765SRob Bradford
138566460765SRob Bradford### Community Engagement (Reminder)
138666460765SRob Bradford
138766460765SRob BradfordJust a reminder that we have a new mailing list to support broader community
138866460765SRob Bradforddiscussions.  Please consider
138966460765SRob Bradford[subscribing](https://lists.cloudhypervisor.org/g/dev/). We plan to use
139066460765SRob Bradfordthis to announce a regular meeting for those interested in talking about Cloud
139166460765SRob BradfordHypervisor development.
139266460765SRob Bradford
139366460765SRob Bradford### Long Term Support (LTS) Release
139466460765SRob Bradford
139566460765SRob BradfordThis is the first version of Cloud Hypervisor to be released under the LTS
139666460765SRob Bradfordrelease process. Point releases for bug fixes will be made for the next 18
139766460765SRob Bradfordmonths; live migration and live upgrade will be supported between the point
139866460765SRob Bradfordreleases of the LTS.
139966460765SRob Bradford
140066460765SRob Bradford### Virtualised TPM Support
140166460765SRob Bradford
140242e9632cSJosh SorefSupport for adding an emulated CRB TPM has been added. This has its own [TPM
140366460765SRob Bradforddocumentation](docs/tpm.md).
140466460765SRob Bradford
140566460765SRob Bradford### Transparent Huge Page Support
140666460765SRob Bradford
140766460765SRob BradfordBy default, but controllable through `--memory thp=off` if it possible to back
140866460765SRob Bradfordthe guest memory with Transparent Huge Pages (no file backing/`shared=off`)
140966460765SRob Bradfordthen this will be used resulting in improved boot performance.
141066460765SRob Bradford
141166460765SRob Bradford### README Quick Start Improved
141266460765SRob Bradford
141366460765SRob BradfordThe README has been refreshed with the quick start guide updated to reflect the
141466460765SRob Bradforddifferent firmware options and to recommend the use of pre-built binaries.
141566460765SRob Bradford
141666460765SRob Bradford### Notable Bug Fixes
141766460765SRob Bradford
141866460765SRob Bradford* Inappropriate Copy-on-Write of pinned pages (e.g. VFIO) leading to higher
141966460765SRob Bradford  memory consumption (#4835)
142066460765SRob Bradford* Multiple `virtio` device bug fixes found through fuzzing (#4859, #4799)
142166460765SRob Bradford* Large QCOW files (> 4TiB) are now supported (#4767)
142266460765SRob Bradford* Support for > 31 vCPUS on aarch64 (#4863)
142366460765SRob Bradford* Multiple fixes to OpenAPI specification file (#4720, #4811)
142466460765SRob Bradford* Programming of the MSI-X table has been optimised leading to faster boot on
142566460765SRob Bradford  newer Linux kernels (#4744)
142666460765SRob Bradford* Error on reboot from race to close TAP devices (#4871)
142766460765SRob Bradford* Non-spec compliant virtio-block read-only support (#4888)
142866460765SRob Bradford
142966460765SRob Bradford### Removals
143066460765SRob Bradford
143166460765SRob BradfordThe following functionality has been removed:
143266460765SRob Bradford
143366460765SRob Bradford* Support for non-PVH firmware booting has been removed (#4511)
143466460765SRob Bradford* I/O ports used for older versions of firmware have been removed (#3926)
143566460765SRob Bradford* Deprecated API options for kernel/cmdline/initramfs have been removed (#4737)
143666460765SRob Bradford
143766460765SRob Bradford### Contributors
143866460765SRob Bradford
143966460765SRob BradfordMany thanks to everyone who has contributed to our release:
144066460765SRob Bradford
144166460765SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
144266460765SRob Bradford* Bo Chen <chen.bo@intel.com>
144366460765SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
144466460765SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
144566460765SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
144666460765SRob Bradford* Jinrong Liang <cloudliang@tencent.com>
144766460765SRob Bradford* lv.mengzhao <lv.mengzhao@zte.com.cn>
144866460765SRob Bradford* Michael Zhao <michael.zhao@arm.com>
144966460765SRob Bradford* Muminul Islam <muislam@microsoft.com>
145066460765SRob Bradford* Praveen K Paladugu <prapal@linux.microsoft.com>
145166460765SRob Bradford* Rob Bradford <robert.bradford@intel.com>
145266460765SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
145366460765SRob Bradford* Wei Liu <liuwe@microsoft.com>
145466460765SRob Bradford
14552ba6a9bfSRob Bradford# v27.0
14562ba6a9bfSRob Bradford
14576fa7c84dSRuoqing HeThis release has been tracked in [v27.0
14586fa7c84dSRuoqing Hegroup](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+v27.0%22)
14596fa7c84dSRuoqing Heof our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/).
14602ba6a9bfSRob Bradford
14612ba6a9bfSRob Bradford### Community Engagement
14622ba6a9bfSRob Bradford
14632ba6a9bfSRob BradfordA new mailing list has been created to support broader community discussions.
14642ba6a9bfSRob BradfordPlease consider [subscribing](https://lists.cloudhypervisor.org/g/dev/); an
14652ba6a9bfSRob Bradfordannouncement of a regular meeting will be announced via this list shortly.
14662ba6a9bfSRob Bradford
14672ba6a9bfSRob Bradford### Prebuilt Packages
14682ba6a9bfSRob Bradford
14692ba6a9bfSRob BradfordPrebuilt packages are now available. Please see [this
14702ba6a9bfSRob Bradforddocument](https://github.com/cloud-hypervisor/obs-packaging/blob/main/README.md)
14712ba6a9bfSRob Bradfordon how to install. These packages also include packages for the different
14722ba6a9bfSRob Bradfordfirmware options available.
14732ba6a9bfSRob Bradford
14742ba6a9bfSRob Bradford### Network Device MTU Exposed to Guest
14752ba6a9bfSRob Bradford
14762ba6a9bfSRob BradfordThe MTU for the TAP device associated with a `virtio-net` device is now exposed
14772ba6a9bfSRob Bradfordto the guest. If the user provides a MTU with `--net mtu=..` then that MTU is
14782ba6a9bfSRob Bradfordapplied to created TAP interfaces. This functionality is also exposed for
14792ba6a9bfSRob Bradford`vhost-user-net` devices including those created with the reference backend
14802ba6a9bfSRob Bradford(#4658, #4676.)
14812ba6a9bfSRob Bradford
14822ba6a9bfSRob Bradford### Boot Tracing
14832ba6a9bfSRob Bradford
14842ba6a9bfSRob BradfordSupport for generating a trace report for the boot time has been added
14852ba6a9bfSRob Bradfordincluding a script for generating an SVG from that trace (#4659.)
14862ba6a9bfSRob Bradford
14872ba6a9bfSRob Bradford### Simplified Build Feature Flags
14882ba6a9bfSRob Bradford
14892ba6a9bfSRob BradfordThe set of feature flags, for e.g. experimental features, have been simplified:
14902ba6a9bfSRob Bradford
14912ba6a9bfSRob Bradford* `msvh` and `kvm` features provide support for those specific hypervisors
14922ba6a9bfSRob Bradford  (with `kvm` enabled by default),
14932ba6a9bfSRob Bradford* `tdx` provides support for Intel TDX; and although there is no MSHV support
14942ba6a9bfSRob Bradford  now it is now possible to compile with the `mshv` feature (#4696,)
14952ba6a9bfSRob Bradford* `tracing` adds support for boot tracing,
14962ba6a9bfSRob Bradford* `guest_debug` now covers both support for gdbing a guest (formerly `gdb`
14972ba6a9bfSRob Bradford  feature) and dumping guest memory.
14982ba6a9bfSRob Bradford
14992ba6a9bfSRob BradfordThe following feature flags were removed as the functionality was enabled by
15002ba6a9bfSRob Bradforddefault: `amx`, `fwdebug`, `cmos` and `common` (#4679, #4632.)
15012ba6a9bfSRob Bradford
15022ba6a9bfSRob Bradford### Asynchronous Kernel Loading
15032ba6a9bfSRob Bradford
15042ba6a9bfSRob BradfordAArch64 has gained support for loading the guest kernel asynchronously like
15052ba6a9bfSRob Bradfordx86-64. (#4538)
15062ba6a9bfSRob Bradford
15072ba6a9bfSRob Bradford### GDB Support for AArch64
15082ba6a9bfSRob Bradford
15092ba6a9bfSRob BradfordGDB stub support (accessed through `--gdb` under `guest_debug` feature) is now
15102ba6a9bfSRob Bradfordavailable on AArch64 as well as as x86-64.
15112ba6a9bfSRob Bradford
15122ba6a9bfSRob Bradford### Notable Bug Fixes
15132ba6a9bfSRob Bradford
15142ba6a9bfSRob Bradford* This version incorporates a version of `virtio-queue` that addresses an issue
15152ba6a9bfSRob Bradford  where a rogue guest can potentially DoS the VMM (rust-vmm/vm-virtio#196.)
15162ba6a9bfSRob Bradford* Improvements around PTY handling for `virtio-console` and serial devices
15172ba6a9bfSRob Bradford  (#4520, #4533, #4535.)
15182ba6a9bfSRob Bradford* Improved error handling in virtio devices (#4626, #4605, #4509, #4631, #4697)
15192ba6a9bfSRob Bradford
15202ba6a9bfSRob Bradford### Deprecations
15212ba6a9bfSRob Bradford
15222ba6a9bfSRob BradfordDeprecated features will be removed in a subsequent release and users should
15232ba6a9bfSRob Bradfordplan to use alternatives.
15242ba6a9bfSRob Bradford
15252ba6a9bfSRob Bradford* Booting legacy firmware (compiled without a PVH header) has been deprecated.
15262ba6a9bfSRob Bradford  All the firmware options (Cloud Hypervisor OVMF and Rust Hypervisor Firmware)
15272ba6a9bfSRob Bradford  support booting with PVH so support for loading firmware in a legacy mode is no
15282ba6a9bfSRob Bradford  longer needed. This functionality will be removed in the next release.
15292ba6a9bfSRob Bradford
15302ba6a9bfSRob Bradford### Contributors
15312ba6a9bfSRob Bradford
15322ba6a9bfSRob BradfordMany thanks to everyone who has contributed to our release:
15332ba6a9bfSRob Bradford
15342ba6a9bfSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
15352ba6a9bfSRob Bradford* Bo Chen <chen.bo@intel.com>
15362ba6a9bfSRob Bradford* James O. D. Hunt <james.o.hunt@intel.com>
15372ba6a9bfSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
15382ba6a9bfSRob Bradford* Markus Napierkowski <markus.napierkowski@cyberus-technology.de>
15392ba6a9bfSRob Bradford* Michael Zhao <michael.zhao@arm.com>
15402ba6a9bfSRob Bradford* Nuno Das Neves <nudasnev@microsoft.com>
15412ba6a9bfSRob Bradford* Rob Bradford <robert.bradford@intel.com>
15422ba6a9bfSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
15432ba6a9bfSRob Bradford* Smit Gardhariya <sgardhariya@microsoft.com>
15442ba6a9bfSRob Bradford* Wei Liu <liuwe@microsoft.com>
15452ba6a9bfSRob Bradford
1546ed9e54d6SRob Bradford# v26.0
1547ed9e54d6SRob Bradford
1548ed9e54d6SRob Bradford### SMBIOS Improvements via `--platform`
1549ed9e54d6SRob Bradford
1550ed9e54d6SRob Bradford`--platform` and the appropriate API structure has gained support for supplying
1551ed9e54d6SRob BradfordOEM strings (primarily used to communicate metadata to systemd in the guest)
1552ed9e54d6SRob Bradford(#4319, #4446) and support for specifying the UUID (#4389.)
1553ed9e54d6SRob Bradford
1554ed9e54d6SRob Bradford### Unified Binary MSHV and KVM Support
1555ed9e54d6SRob Bradford
1556ed9e54d6SRob BradfordSupport for both the MSHV and KVM hypervisors can be compiled into the same
1557ed9e54d6SRob Bradfordbinary with the detection of the hypervisor to use made at runtime.
1558ed9e54d6SRob Bradford
1559ed9e54d6SRob Bradford### Notable Bug Fixes
1560ed9e54d6SRob Bradford
1561ed9e54d6SRob Bradford* The prefetchable flag is preserved on BARs for VFIO devices (#4353, #4454)
15627bf0cc1eSPhilipp Schuster* PCI Express capabilities for functionality we do not support are now filtered
1563ed9e54d6SRob Bradford  out (#4456)
1564ed9e54d6SRob Bradford* GDB breakpoint support is more reliable (#4354, #4363)
1565ed9e54d6SRob Bradford* `SIGINT` and `SIGTERM` signals are now handled before the VM has booted
1566ed9e54d6SRob Bradford  (#4269, #4293)
1567ed9e54d6SRob Bradford* Multiple API event loop handling bug fixes (#4309, #4362)
1568ed9e54d6SRob Bradford* Incorrect assumptions in virtio queue numbering were addressed, allowing
1569ed9e54d6SRob Bradford  the`virtio-fs` driver in OVMF to be used (#4341, #4314)
1570ed9e54d6SRob Bradford* VHDX file format header fix (#4291)
1571ed9e54d6SRob Bradford* The same VFIO device cannot be added twice (#4453, #4463)
1572ed9e54d6SRob Bradford* SMBIOS tables were being incorrectly generated (#4442)
1573ed9e54d6SRob Bradford
1574ed9e54d6SRob Bradford### Deprecations
1575ed9e54d6SRob Bradford
1576ed9e54d6SRob BradfordDeprecated features will be removed in a subsequent release and users should
1577ed9e54d6SRob Bradfordplan to use alternatives.
1578ed9e54d6SRob Bradford
1579ed9e54d6SRob Bradford* The top-level `kernel` and `initramfs` members on the `VmConfig` have been
1580ed9e54d6SRob Bradford  moved inside a `PayloadConfig` as the `payload` member. The OpenAPI document
1581ed9e54d6SRob Bradford  has been updated to reflect the change and the old API members continue to
1582ed9e54d6SRob Bradford  function and are mapped to the new version. The expectation is that these old
1583ed9e54d6SRob Bradford  versions will be removed in the v28.0 release.
1584ed9e54d6SRob Bradford
1585ed9e54d6SRob Bradford### Removals
1586ed9e54d6SRob Bradford
1587ed9e54d6SRob BradfordThe following functionality has been removed:
1588ed9e54d6SRob Bradford
1589ed9e54d6SRob Bradford* The unused `poll_queue` parameter has been removed from `--disk` and
159042e9632cSJosh Soref  equivalent. This was residual from the removal of the `vhost-user-block`
1591ed9e54d6SRob Bradford  spawning feature (#4402.)
1592ed9e54d6SRob Bradford
1593ed9e54d6SRob Bradford### Contributors
1594ed9e54d6SRob Bradford
1595ed9e54d6SRob BradfordMany thanks to everyone who has contributed to our release:
1596ed9e54d6SRob Bradford
1597ed9e54d6SRob Bradford* Alyssa Ross <hi@alyssa.is>
1598ed9e54d6SRob Bradford* Anatol Belski <ab@php.net>
1599ed9e54d6SRob Bradford* Archana Shinde <archana.m.shinde@intel.com>
1600ed9e54d6SRob Bradford* Bo Chen <chen.bo@intel.com>
1601ed9e54d6SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
1602ed9e54d6SRob Bradford* Maximilian Nitsch <maximilian.nitsch@d3tn.com>
1603ed9e54d6SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1604ed9e54d6SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1605ed9e54d6SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1606ed9e54d6SRob Bradford* Steven Dake <sdake@lambdal.com>
1607ed9e54d6SRob Bradford* Wei Liu <liuwe@microsoft.com>
1608ed9e54d6SRob Bradford
1609b132cd21SRob Bradford# v25.0
1610b132cd21SRob Bradford
1611b132cd21SRob Bradford### `ch-remote` Improvements
1612b132cd21SRob Bradford
1613b132cd21SRob BradfordThe `ch-remote` command has gained support for creating the VM from a JSON
1614b132cd21SRob Bradfordconfig and support for booting and deleting the VM from the VMM.
1615b132cd21SRob Bradford
1616b132cd21SRob Bradford### VM "Coredump" Support
1617b132cd21SRob Bradford
1618b132cd21SRob BradfordUnder the `guest_debug` feature flag it is now possible to extract the memory
1619b132cd21SRob Bradfordof the guest for use in debugging with e.g. the `crash` utility. (#4012)
1620b132cd21SRob Bradford
1621b132cd21SRob Bradford### Notable Bug Fixes
1622b132cd21SRob Bradford
1623b132cd21SRob Bradford* Always restore console mode on exit (#4249, #4248)
1624b132cd21SRob Bradford* Restore vCPUs in numerical order which fixes aarch64 snapshot/restore (#4244)
1625b132cd21SRob Bradford* Don't try and configure `IFF_RUNNING` on TAP devices (#4279)
1626b132cd21SRob Bradford* Propagate configured queue size through to vhost-user backend (#4286)
1627b132cd21SRob Bradford* Always Program vCPU CPUID before running the vCPU to fix running on Linux
1628b132cd21SRob Bradford  5.16 (#4156)
1629b132cd21SRob Bradford* Enable ACPI MADT "Online Capable" flag for hotpluggable vCPUs to fix newer
1630b132cd21SRob Bradford  Linux guest
1631b132cd21SRob Bradford
1632b132cd21SRob Bradford### Removals
1633b132cd21SRob Bradford
1634b132cd21SRob BradfordThe following functionality has been removed:
1635b132cd21SRob Bradford
1636b132cd21SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been removed
1637b132cd21SRob Bradford  (#3968)
1638b132cd21SRob Bradford* The `dax` option from the `virtio-fs` support has been removed (#3889)
1639b132cd21SRob Bradford
1640b132cd21SRob Bradford### Contributors
1641b132cd21SRob Bradford
1642b132cd21SRob BradfordMany thanks to everyone who has contributed to our release:
1643b132cd21SRob Bradford
1644b132cd21SRob Bradford* Dylan Bargatze <dbargatz@users.noreply.github.com>
1645b132cd21SRob Bradford* Jinank Jain <jinankjain@microsoft.com>
1646b132cd21SRob Bradford* Michael Zhao <michael.zhao@arm.com>
1647b132cd21SRob Bradford* Rob Bradford <robert.bradford@intel.com>
1648b132cd21SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
1649b132cd21SRob Bradford* Wei Liu <liuwe@microsoft.com>
1650b132cd21SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
1651b132cd21SRob Bradford
16520150de55SSebastien Boeuf# v24.0
16530150de55SSebastien Boeuf
16540150de55SSebastien Boeuf### Bypass Mode for `virtio-iommu`
16550150de55SSebastien Boeuf
16560150de55SSebastien Boeuf`virtio-iommu` specification describes how a device can be attached by default
16570150de55SSebastien Boeufto a bypass domain. This feature is particularly helpful for booting a VM with
16580150de55SSebastien Boeufguest software which doesn't support `virtio-iommu` but still need to access
16590150de55SSebastien Boeufthe device. Now that Cloud Hypervisor supports this feature, it can boot a VM
16600150de55SSebastien Boeufwith Rust Hypervisor Firmware or OVMF even if the `virtio-block` device exposing
16610150de55SSebastien Boeufthe disk image is placed behind a virtual IOMMU.
16620150de55SSebastien Boeuf
16630150de55SSebastien Boeuf### Ensure Identifiers Uniqueness
16640150de55SSebastien Boeuf
16650150de55SSebastien BoeufMultiple checks have been added to the code to prevent devices with identical
16660150de55SSebastien Boeufidentifiers from being created, and therefore avoid unexpected behaviors at boot
16670150de55SSebastien Boeufor whenever a device was hot plugged into the VM.
16680150de55SSebastien Boeuf
16690150de55SSebastien Boeuf### Sparse Mmap support
16700150de55SSebastien Boeuf
16710150de55SSebastien BoeufSparse mmap support has been added to both VFIO and vfio-user devices. This
16720150de55SSebastien Boeufallows the device regions that are not fully mappable to be partially mapped.
16730150de55SSebastien BoeufAnd the more a device region can be mapped into the guest address space, the
16740150de55SSebastien Boeuffewer VM exits will be generated when this device is accessed. This directly
16750150de55SSebastien Boeufimpacts the performance related to this device.
16760150de55SSebastien Boeuf
16770150de55SSebastien Boeuf### Expose Platform Serial Number
16780150de55SSebastien Boeuf
16790150de55SSebastien BoeufA new `serial_number` option has been added to `--platform`, allowing a user to
16800150de55SSebastien Boeufset a specific serial number for the platform. This number is exposed to the
16810150de55SSebastien Boeufguest through the SMBIOS.
16820150de55SSebastien Boeuf
16830150de55SSebastien Boeuf### Notable Bug Fixes
16840150de55SSebastien Boeuf
16850150de55SSebastien Boeuf* Fix loading RAW firmware (#4072)
16860150de55SSebastien Boeuf* Reject compressed QCOW images (#4055)
16870150de55SSebastien Boeuf* Reject virtio-mem resize if device is not activated (#4003)
16880150de55SSebastien Boeuf* Fix potential mmap leaks from VFIO/vfio-user MMIO regions (#4069)
16890150de55SSebastien Boeuf* Fix algorithm finding HOB memory resources (#3983)
16900150de55SSebastien Boeuf
16910150de55SSebastien Boeuf### Notable Improvements
16920150de55SSebastien Boeuf
16930150de55SSebastien Boeuf* Refactor interrupt handling (#4083)
16940150de55SSebastien Boeuf* Load kernel asynchronously (#4022)
16950150de55SSebastien Boeuf* Only create ACPI memory manager DSDT when resizable (#4013)
16960150de55SSebastien Boeuf
16970150de55SSebastien Boeuf### Deprecations
16980150de55SSebastien Boeuf
16990150de55SSebastien BoeufDeprecated features will be removed in a subsequent release and users should
17000150de55SSebastien Boeufplan to use alternatives
17010150de55SSebastien Boeuf
17020150de55SSebastien Boeuf* The `mergeable` option from the `virtio-pmem` support has been deprecated
17030150de55SSebastien Boeuf  (#3968)
17040150de55SSebastien Boeuf* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
17050150de55SSebastien Boeuf
17060150de55SSebastien Boeuf### New on the Website
17070150de55SSebastien Boeuf
17080150de55SSebastien BoeufA new blog post [Achieving Bare Metal Performance Within a Virtual
17090150de55SSebastien BoeufMachine](https://www.cloudhypervisor.org/blog/achieving-bare-metal-performance-within-a-virtual-machine)
17100150de55SSebastien Boeufhas been added to the Cloud Hypervisor website.
17110150de55SSebastien Boeuf
17120150de55SSebastien Boeuf### Contributors
17130150de55SSebastien Boeuf
17140150de55SSebastien BoeufMany thanks to everyone who has contributed to our release:
17150150de55SSebastien Boeuf
17160150de55SSebastien Boeuf* Anatol Belski <anbelski@linux.microsoft.com>
17170150de55SSebastien Boeuf* Bo Chen <chen.bo@intel.com>
17180150de55SSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17190150de55SSebastien Boeuf* LiHui <andrewli@kubesphere.io>
17200150de55SSebastien Boeuf* Maksym Pavlenko <pavlenko.maksym@gmail.com>
17210150de55SSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
17220150de55SSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
17230150de55SSebastien Boeuf* Steven Dake <steven.dake@gmail.com>
17240150de55SSebastien Boeuf* Vincent Batts <vbatts@hashbangbash.com>
17250150de55SSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
17260150de55SSebastien Boeuf
17270150de55SSebastien Boeuf# v23.1
17280150de55SSebastien Boeuf
17290150de55SSebastien BoeufThis is a bug fix release. The following issues have been addressed:
17300150de55SSebastien Boeuf
17310150de55SSebastien Boeuf* Add some missing seccomp rules
17320150de55SSebastien Boeuf* Remove `virtio-fs` filesystem entries from config on removal
17330150de55SSebastien Boeuf* Do not delete API socket on API server start (#4026)
17340150de55SSebastien Boeuf* Reject `virtio-mem` resize if the guest doesn't activate the device
17350150de55SSebastien Boeuf* Fix OpenAPI naming of I/O throttling knobs
17360150de55SSebastien Boeuf
17370c9c56f5SRob Bradford# v23.0
17380c9c56f5SRob Bradford
17390c9c56f5SRob Bradford### vDPA Support
17400c9c56f5SRob Bradford
17410c9c56f5SRob BradfordA vDPA device has a datapath that complies with the virtio specification but
17420c9c56f5SRob Bradfordwith a vendor specific control path. The addition of `--vdpa` and the REST API
17430c9c56f5SRob Bradfordequivalent allows the use of these devices with Cloud Hypervisor.
17440c9c56f5SRob Bradford
17450c9c56f5SRob Bradford### Updated OS Support list
17460c9c56f5SRob Bradford
17470c9c56f5SRob BradfordThe list of officially supported and tested OS versions has been updated to
17480c9c56f5SRob Bradfordinclude Ubuntu "jammy" 22.04 and EOLed versions removed.
17490c9c56f5SRob Bradford
17500c9c56f5SRob Bradford### `AArch64` Memory Map Improvements
17510c9c56f5SRob Bradford
17520c9c56f5SRob BradfordThe memory map when running on `AArch64` has been improved for the handling of
17530c9c56f5SRob Bradfordthe UEFI region which means that the booted guest OS now has full access to its
17540c9c56f5SRob Bradfordallocated RAM. (#3938)
17550c9c56f5SRob Bradford
17560c9c56f5SRob Bradford### `AMX` Support
17570c9c56f5SRob Bradford
17580c9c56f5SRob BradfordUnder a compile time gate of `amx` it is possible compile in support for the
17590c9c56f5SRob Bradford`AMX` instruction set extension for guest use. This also requires runtime
17600c9c56f5SRob Bradfordenabling with `--cpu features=amx`.
17610c9c56f5SRob Bradford
17620c9c56f5SRob Bradford### Notable Bug Fixes
17630c9c56f5SRob Bradford
17640c9c56f5SRob Bradford* Generate error when incorrect HTTP method used for some API endpoints (#3887)
17650c9c56f5SRob Bradford* CMOS based reset is now available to support rebooting on "jammy" (#3914)
17660c9c56f5SRob Bradford* ACPI tables are not produced for memory hotplug when running with
17670c9c56f5SRob Bradford  `virtio-mem` (#3883)
17680c9c56f5SRob Bradford* `virtio-iommu` backed PCI segments are now comprehensively placed behind the
17690c9c56f5SRob Bradford  vIOMMU (#3870)
17700c9c56f5SRob Bradford* Seccomp rules have been extended for `virtio-fs` to support direct access
17710c9c56f5SRob Bradford  (#3848)
17720c9c56f5SRob Bradford
17730c9c56f5SRob Bradford### Deprecations
17740c9c56f5SRob Bradford
17750c9c56f5SRob BradfordDeprecated features will be removed in a subsequent release and users should
17760c9c56f5SRob Bradfordplan to use alternatives
17770c9c56f5SRob Bradford
17780c9c56f5SRob Bradford* The `mergeable` option from the `virtio-pmem` support has been deprecated
17790c9c56f5SRob Bradford  (#3968)
17800c9c56f5SRob Bradford* The `dax` option from the `virtio-fs` support has been deprecated (#3889)
17810c9c56f5SRob Bradford
17820c9c56f5SRob Bradford### Contributors
17830c9c56f5SRob Bradford
17840c9c56f5SRob BradfordMany thanks to everyone who has contributed to our release:
17850c9c56f5SRob Bradford
17860c9c56f5SRob Bradford* Bo Chen <chen.bo@intel.com>
17870c9c56f5SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
17880c9c56f5SRob Bradford* Henry Wang <Henry.Wang@arm.com>
17890c9c56f5SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
17900c9c56f5SRob Bradford* LiHui <andrewli@kubesphere.io>
17910c9c56f5SRob Bradford* Michael Zhao <michael.zhao@arm.com>
17920c9c56f5SRob Bradford* Rob Bradford <robert.bradford@intel.com>
17930c9c56f5SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
17940c9c56f5SRob Bradford* Wei Liu <liuwe@microsoft.com>
17950c9c56f5SRob Bradford* William Douglas <william.douglas@intel.com>
17960c9c56f5SRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
17970c9c56f5SRob Bradford
17980c9c56f5SRob Bradford# v22.1
17990c9c56f5SRob Bradford
18000c9c56f5SRob BradfordThis is a bug fix release. The following issues have been addressed:
18010c9c56f5SRob Bradford
18020c9c56f5SRob Bradford* VFIO ioctl reordering to fix MSI on AMD platforms (#3827)
18030c9c56f5SRob Bradford* Fix `virtio-net` control queue (#3829)
18040c9c56f5SRob Bradford
18056aa10938SRob Bradford# v22.0
18066aa10938SRob Bradford
18076aa10938SRob Bradford### GDB Debug Stub Support
18086aa10938SRob Bradford
18096aa10938SRob BradfordCloud Hypervisor can now be used as debug target with GDB. This is controlled
18106aa10938SRob Bradfordby the `gdb` compile time feature and details of how to use it can be found in
18116aa10938SRob Bradfordthe [gdb
18126aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/gdb.md).
18136aa10938SRob Bradford
18146aa10938SRob Bradford### `virtio-iommu` Backed Segments
18156aa10938SRob Bradford
18166aa10938SRob BradfordIn order to facilitate hotplug devices that require being behind an IOMMU (e.g.
18176aa10938SRob BradfordQAT) there is a new option `--platform iommu_segments=<list_of_segments>` that
18186aa10938SRob Bradfordwill place all the specified segments behind the IOMMU.
18196aa10938SRob Bradford
18206aa10938SRob Bradford### Before Boot Configuration Changes
18216aa10938SRob Bradford
18226aa10938SRob BradfordIt is now possible to change the VM configuration (e.g. add or remove devices,
18236aa10938SRob Bradfordresize) before the VM is booted.
18246aa10938SRob Bradford
18256aa10938SRob Bradford### `virtio-balloon` Free Page Reporting
18266aa10938SRob Bradford
18276aa10938SRob BradfordIf `--balloon free_page_reporting=on` is used then the guest can report pages
18286aa10938SRob Bradfordthat is it not using to the VMM. The VMM will then notify the host OS that
18296aa10938SRob Bradfordthose pages are no longer in use and can be freed. This can result in improved
18306aa10938SRob Bradfordmemory density.
18316aa10938SRob Bradford
18326aa10938SRob Bradford### Support for Direct Kernel Booting with TDX
18336aa10938SRob Bradford
18346aa10938SRob BradfordThrough the use of `TD-Shim` lightweight firmware it is now possible to
18356aa10938SRob Bradforddirectly boot into the kernel with TDX. The [TDX
18366aa10938SRob Bradforddocumentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/main/docs/intel_tdx.md#tdshim)
18376aa10938SRob Bradfordhas been updated for this usage.
18386aa10938SRob Bradford
18396aa10938SRob Bradford### PMU Support for AArch64
18406aa10938SRob Bradford
18416aa10938SRob BradfordA PMU is now available on AArch64 for guest performance profiling. This will be
18426aa10938SRob Bradfordexposed automatically if available from the host.
18436aa10938SRob Bradford
18440c9c56f5SRob Bradford### Documentation Under CC-BY-4.0 License
18456aa10938SRob Bradford
18466aa10938SRob BradfordThe documentation is now licensed under the "Creative Commons Attribution 4.0
18476aa10938SRob BradfordInternational" license which is aligned with the project charter under the
18486aa10938SRob BradfordLinux Foundation.
18496aa10938SRob Bradford
18506aa10938SRob Bradford### Deprecation of "Classic" `virtiofsd`
18516aa10938SRob Bradford
18526aa10938SRob BradfordThe use of the Rust based [virtiofsd](https://gitlab.com/virtio-fs/virtiofsd)
18536aa10938SRob Bradfordis now recommended and we are no longer testing against the C based "classic"
18546aa10938SRob Bradfordversion.
18556aa10938SRob Bradford
18566aa10938SRob Bradford### Notable Bug Fixes
18576aa10938SRob Bradford
18586aa10938SRob Bradford* Can now be used on kernels without `AF_INET` support (#3785)
18596aa10938SRob Bradford* `virtio-balloon` size is now validated against guest RAM size (#3689)
18606aa10938SRob Bradford* Ensure that I/O related KVM VM Exits are correctly handled (#3677)
18616aa10938SRob Bradford* Multiple TAP file descriptors can be used for `virtio-net` device hotplug (#3607)
18626aa10938SRob Bradford* Minor API improvements and fixes (#3756, #3766, #3647, #3578)
18636aa10938SRob Bradford* Fix sporadic seccomp violation from glibc memory freeing (#3610, #3609)
18646aa10938SRob Bradford* Fix Windows 11 on AArch64 due to wider MSI-X register accesses (#3714, #3720)
18656aa10938SRob Bradford* Ensure `vhost-user` features are correct across migration (#3737)
18666aa10938SRob Bradford* Improved vCPU topology on AArch64 (#3735, #3733)
18676aa10938SRob Bradford
18686aa10938SRob Bradford### Contributors
18696aa10938SRob Bradford
18706aa10938SRob BradfordMany thanks to everyone who has contributed to our release:
18716aa10938SRob Bradford
18726aa10938SRob Bradford* Akira Moroo <retrage01@gmail.com>
18736aa10938SRob Bradford* Barret Rhoden <brho@google.com>
18746aa10938SRob Bradford* Bo Chen <chen.bo@intel.com>
18756aa10938SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
18766aa10938SRob Bradford* Feng Ye <yefeng@smartx.com>
18776aa10938SRob Bradford* Henry Wang <Henry.Wang@arm.com>
18786aa10938SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
18796aa10938SRob Bradford* lizhaoxin1 <Lxiaoyouling@163.com>
18806aa10938SRob Bradford* Michael Zhao <michael.zhao@arm.com>
18816aa10938SRob Bradford* Rob Bradford <robert.bradford@intel.com>
18826aa10938SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
18836aa10938SRob Bradford* Wei Liu <liuwe@microsoft.com>
18846aa10938SRob Bradford
188595ca7997SRob Bradford# v21.0
188695ca7997SRob Bradford
188795ca7997SRob Bradford### Efficient Local Live Migration (for Live Upgrade)
188895ca7997SRob Bradford
18896aa10938SRob BradfordIn order to support fast live upgrade of the VMM an optimised path has been
18906aa10938SRob Bradfordadded in which the memory for the VM is not compared from source to
18916aa10938SRob Bradforddestination. This is activated by passing `--local` to the `ch-remote
18926aa10938SRob Bradfordsend-migration` command. This means that the live upgrade can complete in the
18936aa10938SRob Bradfordorder of 50ms vs 3s. (#3566)
189495ca7997SRob Bradford
189595ca7997SRob Bradford### Recommended Kernel is Now 5.15
189695ca7997SRob Bradford
18976aa10938SRob BradfordDue to an issue in the `virtio-net` code in 5.14 the recommended Linux kernel
18986aa10938SRob Bradfordis now 5.15. (#3530)
189995ca7997SRob Bradford
190095ca7997SRob Bradford### Notable Bug fixes
190195ca7997SRob Bradford
19027bf0cc1eSPhilipp Schuster* Multiple fixes were made to the OpenAPI YAML file to match the implementation (#3555,#3562)
190395ca7997SRob Bradford* Avoid live migration deadlock when triggered during the kernel boot (#3585)
190495ca7997SRob Bradford* Support live migration within firmware (#3586)
19057bf0cc1eSPhilipp Schuster* Validate the `virtio-net` descriptor chain (#3548)
190695ca7997SRob Bradford* `direct=on` (`O_DIRECT`) can now be used with a guest that makes unaligned accesses (e.g. firmware) (#3587)
190795ca7997SRob Bradford
190895ca7997SRob Bradford### Contributors
190995ca7997SRob Bradford
191095ca7997SRob BradfordMany thanks to everyone who has contributed to our release:
191195ca7997SRob Bradford
191295ca7997SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
191395ca7997SRob Bradford* Barret Rhoden <brho@google.com>
191495ca7997SRob Bradford* Bo Chen <chen.bo@intel.com>
191595ca7997SRob Bradford* Fabiano Fidêncio <fabiano.fidencio@intel.com>
191695ca7997SRob Bradford* Henry Wang <Henry.Wang@arm.com>
191795ca7997SRob Bradford* Liang Zhou <zhoul110@chinatelecom.cn>
191895ca7997SRob Bradford* Michael Zhao <michael.zhao@arm.com>
191995ca7997SRob Bradford* Muhammad Falak R Wani <falakreyaz@gmail.com>
192095ca7997SRob Bradford* Muminul Islam <muislam@microsoft.com>
192195ca7997SRob Bradford* Rob Bradford <robert.bradford@intel.com>
192295ca7997SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
192395ca7997SRob Bradford* Wei Liu <liuwe@microsoft.com>
192495ca7997SRob Bradford* Ziye Yang <ziye.yang@intel.com>
192595ca7997SRob Bradford
192695ca7997SRob Bradford# v20.2
192795ca7997SRob Bradford
192895ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
192995ca7997SRob Bradford
193095ca7997SRob Bradford* Don't error out when setting up the SIGWINCH handler (for console resize)
193195ca7997SRob Bradford  when this fails due to older kernel (#3456)
193295ca7997SRob Bradford* Seccomp rules were refined to remove syscalls that are now unused
193395ca7997SRob Bradford* Fix reboot on older host kernels when SIGWINCH handler was not initialised
193495ca7997SRob Bradford  (#3496)
193595ca7997SRob Bradford* Fix virtio-vsock blocking issue (#3497)
193695ca7997SRob Bradford
193795ca7997SRob Bradford# v20.1
193895ca7997SRob Bradford
193995ca7997SRob BradfordThis is a bug fix release. The following issues have been addressed:
194095ca7997SRob Bradford
194195ca7997SRob Bradford* Networking performance regression with `virtio-net` (#3450)
194295ca7997SRob Bradford* Limit file descriptors sent in `vfio-user` support (#3401)
194395ca7997SRob Bradford* Fully advertise PCI MMIO config regions in ACPI tables (#3432)
194495ca7997SRob Bradford* Set the TSS and KVM identity maps so they don't overlap with firmware RAM
194595ca7997SRob Bradford* Correctly update the `DeviceTree` on restore
194695ca7997SRob Bradford
19477fc0776aSSebastien Boeuf# v20.0
19487fc0776aSSebastien Boeuf
19497fc0776aSSebastien Boeuf### Multiple PCI segments support
19507fc0776aSSebastien Boeuf
19517fc0776aSSebastien BoeufCloud Hypervisor is no longer limited to 31 PCI devices. For both `x86_64` and
19527fc0776aSSebastien Boeuf`aarch64` architectures, it is now possible to create up to 16 PCI segments,
19537fc0776aSSebastien Boeufincreasing the total amount of supported PCI devices to 496.
19547fc0776aSSebastien Boeuf
19557fc0776aSSebastien Boeuf### CPU pinning
19567fc0776aSSebastien Boeuf
19577fc0776aSSebastien BoeufFor each vCPU, the user can define a limited set of host CPUs on which it is
19587fc0776aSSebastien Boeufallowed to run. This can be useful when assigning a 1:1 mapping between host and
19597fc0776aSSebastien Boeufguest resources, or when running a VM on a specific NUMA node.
19607fc0776aSSebastien Boeuf
19617fc0776aSSebastien Boeuf### Improved VFIO support
19627fc0776aSSebastien Boeuf
19637fc0776aSSebastien BoeufBased on VFIO region capabilities, all regions can be memory mapped, limiting
19647fc0776aSSebastien Boeufthe amount of triggered VM exits, and therefore increasing the performance of
19657fc0776aSSebastien Boeufthe passthrough device.
19667fc0776aSSebastien Boeuf
19677fc0776aSSebastien Boeuf### Safer code
19687fc0776aSSebastien Boeuf
19697fc0776aSSebastien BoeufSeveral sections containing unsafe Rust code have been replaced with safe
19707fc0776aSSebastien Boeufalternatives, and multiple comments have been added to clarify why the remaining
19717fc0776aSSebastien Boeufunsafe sections are safe to use.
19727fc0776aSSebastien Boeuf
19737fc0776aSSebastien Boeuf### Extended documentation
19747fc0776aSSebastien Boeuf
19757fc0776aSSebastien BoeufThe documentation related to VFIO has been updated while some new documents have
19767fc0776aSSebastien Boeufbeen introduced to cover the usage of `--cpus` parameter as well as how to run
19777fc0776aSSebastien BoeufCloud Hypervisor on Intel TDX.
19787fc0776aSSebastien Boeuf
19797fc0776aSSebastien Boeuf### Notable bug fixes
19807fc0776aSSebastien Boeuf
19817fc0776aSSebastien Boeuf* Naturally align PCI BARs on relocation (#3244)
19827fc0776aSSebastien Boeuf* Fix panic in SIGWINCH listener thread when no seccomp filter set (#3338)
19837fc0776aSSebastien Boeuf* Use the tty raw mode implementation from libc (#3344)
19847fc0776aSSebastien Boeuf* Fix the emulation of register D for CMOS/RTC device (#3393)
19857fc0776aSSebastien Boeuf
19867fc0776aSSebastien Boeuf### Contributors
19877fc0776aSSebastien Boeuf
19887fc0776aSSebastien BoeufMany thanks to everyone who has contributed to our release:
19897fc0776aSSebastien Boeuf
19907fc0776aSSebastien Boeuf* Alyssa Ross <hi@alyssa.is>
19917fc0776aSSebastien Boeuf* Bo Chen <chen.bo@intel.com>
19927fc0776aSSebastien Boeuf* Fabiano Fidêncio <fabiano.fidencio@intel.com>
19937fc0776aSSebastien Boeuf* Michael Zhao <michael.zhao@arm.com>
19947fc0776aSSebastien Boeuf* Muminul Islam <muislam@microsoft.com>
19957fc0776aSSebastien Boeuf* Rob Bradford <robert.bradford@intel.com>
19967fc0776aSSebastien Boeuf* Sebastien Boeuf <sebastien.boeuf@intel.com>
19977fc0776aSSebastien Boeuf* Wei Liu <liuwe@microsoft.com>
19987fc0776aSSebastien Boeuf* Willen Yang <willenyang@gmail.com>
19997fc0776aSSebastien Boeuf* William Douglas <william.douglas@intel.com>
20007fc0776aSSebastien Boeuf* Ziye Yang <ziye.yang@intel.com>
20017fc0776aSSebastien Boeuf
2002d00eb4aaSRob Bradford# v19.0
2003d00eb4aaSRob Bradford
2004d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
2005d00eb4aaSRob Bradford
2006d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
2007d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
2008d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
2009d00eb4aaSRob Bradford
2010d00eb4aaSRob Bradford### PCI boot time optimisations
2011d00eb4aaSRob Bradford
2012d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
2013d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
2014d00eb4aaSRob Bradford
2015d00eb4aaSRob Bradford### Improved TDX support
2016d00eb4aaSRob Bradford
2017d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
2018d00eb4aaSRob Bradfordexposed via the firmware to the guest.
2019d00eb4aaSRob Bradford
2020d00eb4aaSRob Bradford### Live migration enhancements
2021d00eb4aaSRob Bradford
2022d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
2023d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
2024d00eb4aaSRob Bradfordmigration.
2025d00eb4aaSRob Bradford
2026d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
2027d00eb4aaSRob Bradford
2028d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
2029d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
2030d00eb4aaSRob Bradford
2031d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
2032d00eb4aaSRob Bradford
2033d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
2034d00eb4aaSRob Bradford
2035d00eb4aaSRob Bradford### Notable bug fixes
2036d00eb4aaSRob Bradford
2037d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
2038d00eb4aaSRob Bradford  snapshot/restore (#3165)
2039d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
2040d00eb4aaSRob Bradford  (#3078 #3113)
2041d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
2042d00eb4aaSRob Bradford  the underlying crate (#3157)
2043d00eb4aaSRob Bradford
2044d00eb4aaSRob Bradford### Contributors
2045d00eb4aaSRob Bradford
2046d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
2047d00eb4aaSRob Bradford
2048d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
2049d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
2050d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
2051d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
2052d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2053d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
2054d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
2055d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
2056d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
2057d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2058d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
2059d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
2060d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2061d00eb4aaSRob Bradford
20622c4f8d22SRob Bradford# v18.0
20632c4f8d22SRob Bradford
20642c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
20652c4f8d22SRob Bradford
20662c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
20672c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
20682c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
20692c4f8d22SRob Bradford
20702c4f8d22SRob Bradford### Migration support for `vhost-user` devices
20712c4f8d22SRob Bradford
20722c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
20732c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
20742c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
20752c4f8d22SRob Bradford
20762c4f8d22SRob Bradford### VHDX disk image support
20772c4f8d22SRob Bradford
20782c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
20792c4f8d22SRob Bradford
20802c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
20812c4f8d22SRob Bradford
20822c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
20832c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
20842c4f8d22SRob Bradford
20852c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
20862c4f8d22SRob Bradford
20872c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
20882c4f8d22SRob Bradford
20892c4f8d22SRob Bradford### Live migration on MSHV hypervisor
20902c4f8d22SRob Bradford
20912c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
20922c4f8d22SRob Bradfordefficient tracking of dirty pages.
20932c4f8d22SRob Bradford
20942c4f8d22SRob Bradford### AArch64 CPU topology support
20952c4f8d22SRob Bradford
20962c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
20972c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
20982c4f8d22SRob Bradfordtree.
20992c4f8d22SRob Bradford
21002c4f8d22SRob Bradford### Power button support on AArch64
21012c4f8d22SRob Bradford
21022c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
21032c4f8d22SRob Bradfordis now supported when running on AArch64.
21042c4f8d22SRob Bradford
21052c4f8d22SRob Bradford### Notable bug fixes
21062c4f8d22SRob Bradford
21072c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
21082c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
21092c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
21102c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
21112c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
21122c4f8d22SRob Bradford
21132c4f8d22SRob Bradford### Contributors
21142c4f8d22SRob Bradford
21152c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
21162c4f8d22SRob Bradford
21172c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
21182c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
21192c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
21202c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
21212c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
21222c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
21232c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
21242c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
21252c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
21262c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
21272c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
21282c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
21292c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
21302c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
2131e6db5999SRob Bradford
2132e6db5999SRob Bradford# v17.0
2133e6db5999SRob Bradford
2134e6db5999SRob Bradford### ARM64 NUMA support using ACPI
2135e6db5999SRob Bradford
2136e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
2137e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
2138e6db5999SRob Bradford
2139e6db5999SRob Bradford### `Seccomp` support for MSHV backend
2140e6db5999SRob Bradford
2141e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
2142e6db5999SRob Bradfordhypervisor backend.
2143e6db5999SRob Bradford
2144e6db5999SRob Bradford### Hotplug of `macvtap` devices
2145e6db5999SRob Bradford
2146e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
2147e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
2148e6db5999SRob Bradfordtool supports this functionality when adding a network device.
2149e6db5999SRob Bradford
2150e6db5999SRob Bradford### Improved SGX support
2151e6db5999SRob Bradford
2152e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
2153e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
2154e6db5999SRob Bradford
2155e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
2156e6db5999SRob Bradford
2157e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
2158e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
2159e6db5999SRob Bradford
2160e6db5999SRob Bradford### Notable bug fixes
2161e6db5999SRob Bradford
2162e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
2163e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
2164e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
2165e6db5999SRob Bradford(#2833).
2166e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
2167e6db5999SRob Bradford
2168e6db5999SRob Bradford### Contributors
2169e6db5999SRob Bradford
2170e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
2171e6db5999SRob Bradford
2172e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2173e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
2174e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
2175e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
2176e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2177e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
2178e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2179e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
2180e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2181e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
2182e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2183e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2184e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
2185e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
2186e6db5999SRob Bradford
21875ed8e01fSRob Bradford# v16.0
21885ed8e01fSRob Bradford
21895ed8e01fSRob Bradford### Improved live migration support
21905ed8e01fSRob Bradford
21915ed8e01fSRob 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.
21925ed8e01fSRob Bradford
21935ed8e01fSRob Bradford### Improved `vhost-user` support
21945ed8e01fSRob Bradford
21955ed8e01fSRob 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.
21965ed8e01fSRob Bradford
21975ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
21985ed8e01fSRob Bradford
21995ed8e01fSRob 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.
22005ed8e01fSRob Bradford
22015ed8e01fSRob Bradford### Notable bug fixes
22025ed8e01fSRob Bradford
22035ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
22045ed8e01fSRob 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).
22055ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
22065ed8e01fSRob Bradford
22075ed8e01fSRob Bradford### Removed functionality
22085ed8e01fSRob Bradford
22095ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
22105ed8e01fSRob Bradford
22115ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
22125ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
22135ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
22145ed8e01fSRob Bradford
22155ed8e01fSRob Bradford### Contributors
22165ed8e01fSRob Bradford
22175ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
22185ed8e01fSRob Bradford
22195ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
22205ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
22215ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
22225ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
22235ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
22245ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
22255ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
22265ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
22275ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
22285ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
22295ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
22305ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
22315ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
22325ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
22335ed8e01fSRob Bradford
223430a01277SRob Bradford# v15.0
223530a01277SRob Bradford
223630a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
223730a01277SRob Bradford
223830a01277SRob Bradford### Version numbering and stability guarantees
223930a01277SRob Bradford
224030a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
224130a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
224230a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
224330a01277SRob Bradford
224430a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
224530a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
224630a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
224730a01277SRob Bradford  will be documented in the release notes.
224830a01277SRob Bradford* Point releases will be made between individual releases where there are
224930a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
225030a01277SRob Bradford
225130a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
225230a01277SRob Bradford
225330a01277SRob Bradford* Snapshot/restore is not supported across different versions
225430a01277SRob Bradford* Live migration is not supported across different versions
225530a01277SRob Bradford* The following features are considered experimental and may change
225630a01277SRob Bradford  substantially between releases: TDX, SGX.
225730a01277SRob Bradford
225830a01277SRob Bradford### Network device rate limiting
225930a01277SRob Bradford
226030a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
226130a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
226230a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
226330a01277SRob Bradford
226430a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
226530a01277SRob Bradford
226630a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
226730a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
226830a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
226930a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
227030a01277SRob Bradford
227130a01277SRob Bradford### `--api-socket` supports file descriptor parameter
227230a01277SRob Bradford
227330a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
227430a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
227530a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
227630a01277SRob Bradford
227730a01277SRob Bradford### Bug fixes
227830a01277SRob Bradford
227930a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
228030a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
228130a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
228230a01277SRob Bradford  reprogram them (#1797,#1798)
228330a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
228430a01277SRob Bradford  exhaustion on the host) (#2517)
228530a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
228630a01277SRob Bradford  prevents snapshot & restore working (#2535)
228730a01277SRob Bradford
228830a01277SRob Bradford### Deprecations
228930a01277SRob Bradford
229030a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
229130a01277SRob Bradford
229230a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
229330a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
229430a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
229530a01277SRob Bradford
229630a01277SRob Bradford### Contributors
229730a01277SRob Bradford
229830a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
229930a01277SRob Bradford
230030a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
230130a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
230230a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
230330a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
230430a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
230530a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
230630a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
230730a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
230830a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
230930a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
231030a01277SRob Bradford* William Douglas <william.douglas@intel.com>
231130a01277SRob Bradford
231230a01277SRob Bradford# v0.14.1
231330a01277SRob Bradford
231430a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
231530a01277SRob Bradfordin this release:
231630a01277SRob Bradford
231730a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
231830a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
231930a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
232030a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
232130a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
232230a01277SRob Bradford
232340c63dcfSRob Bradford# v0.14.0
232440c63dcfSRob Bradford
232540c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
232640c63dcfSRob Bradford
232740c63dcfSRob Bradford### Structured event monitoring
232840c63dcfSRob Bradford
232940c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
233040c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
233140c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
233240c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
233340c63dcfSRob BradfordHypervisor API surface.
233440c63dcfSRob Bradford
233540c63dcfSRob Bradford### MSHV improvements
233640c63dcfSRob Bradford
233740c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
233840c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
233940c63dcfSRob Bradfordthe MSHV support.
234040c63dcfSRob Bradford
234140c63dcfSRob Bradford### Improved aarch64 platform
234240c63dcfSRob Bradford
234340c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
234440c63dcfSRob BradfordVM including an enhanced serial UART.
234540c63dcfSRob Bradford
234640c63dcfSRob Bradford### Updated hotplug documentation
234740c63dcfSRob Bradford
234840c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
234940c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
235040c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
235140c63dcfSRob Bradford
235240c63dcfSRob Bradford### PTY control for serial and `virtio-console`
235340c63dcfSRob Bradford
235440c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
235540c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
235640c63dcfSRob BradfordPTY subsystem.
235740c63dcfSRob Bradford
235840c63dcfSRob Bradford### Block device rate limiting
235940c63dcfSRob Bradford
236040c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
236140c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
236230a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
236340c63dcfSRob Bradford
236440c63dcfSRob Bradford
236540c63dcfSRob Bradford### Deprecations
236640c63dcfSRob Bradford
236740c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
236840c63dcfSRob Bradford
236940c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
237040c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
237140c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
237240c63dcfSRob Bradford
237340c63dcfSRob Bradford
237440c63dcfSRob Bradford### Contributors
237540c63dcfSRob Bradford
237640c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
237740c63dcfSRob Bradfordsome new faces.
237840c63dcfSRob Bradford
237942e9632cSJosh Soref* Bo Chen <chen.bo@intel.com>
238042e9632cSJosh Soref* Henry Wang <Henry.Wang@arm.com>
238142e9632cSJosh Soref* Iggy Jackson <iggy@theiggy.com>
238242e9632cSJosh Soref* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
238342e9632cSJosh Soref* Michael Zhao <michael.zhao@arm.com>
238442e9632cSJosh Soref* Muminul Islam <muislam@microsoft.com>
238542e9632cSJosh Soref* Penny Zheng <Penny.Zheng@arm.com>
238642e9632cSJosh Soref* Rob Bradford <robert.bradford@intel.com>
238742e9632cSJosh Soref* Sebastien Boeuf <sebastien.boeuf@intel.com>
238842e9632cSJosh Soref* Vineeth Pillai <viremana@linux.microsoft.com>
238942e9632cSJosh Soref* Wei Liu <liuwe@microsoft.com>
239042e9632cSJosh Soref* William Douglas <william.r.douglas@gmail.com>
239142e9632cSJosh Soref* Zide Chen <zide.chen@intel.com>
239240c63dcfSRob Bradford
2393f58b6f84SRob Bradford# v0.13.0
2394f58b6f84SRob Bradford
2395f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
2396f58b6f84SRob Bradford
2397f58b6f84SRob Bradford### Wider VFIO device support
2398f58b6f84SRob Bradford
2399f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
2400f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
2401f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
2402f58b6f84SRob Bradforddrivers.
2403f58b6f84SRob Bradford
240440c63dcfSRob Bradford### Improved huge page support
2405f58b6f84SRob Bradford
2406f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
2407f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
2408f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
2409f58b6f84SRob Bradforddesired size in their pool.
2410f58b6f84SRob Bradford
2411f58b6f84SRob Bradford### MACvTAP support
2412f58b6f84SRob Bradford
2413f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
2414f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
2415f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
2416f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
2417f58b6f84SRob Bradford
2418f58b6f84SRob Bradford### VHD disk image support
2419f58b6f84SRob Bradford
2420f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
2421f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
2422f58b6f84SRob Bradford
2423f58b6f84SRob Bradford### Improved Virtio device threading
2424f58b6f84SRob Bradford
2425f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
2426f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
2427f58b6f84SRob Bradfordpredictable name derived from the device id.
2428f58b6f84SRob Bradford
2429f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
2430f58b6f84SRob Bradford
2431f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
2432f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
2433f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
2434f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
2435f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
2436f58b6f84SRob Bradford
2437f58b6f84SRob Bradford### Contributors
2438f58b6f84SRob Bradford
2439f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
2440f58b6f84SRob Bradfordsome new faces.
2441f58b6f84SRob Bradford
2442f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
2443f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
2444f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
2445f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2446f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2447f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2448f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
2449f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
2450f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
2451f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
2452f58b6f84SRob Bradford
2453d42b5084SRob Bradford# v0.12.0
2454d42b5084SRob Bradford
2455d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
2456d42b5084SRob Bradford
2457d42b5084SRob Bradford### ARM64 enhancements
2458d42b5084SRob Bradford
2459d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
2460d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
2461d42b5084SRob Bradford
2462d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
2463d42b5084SRob Bradford
2464d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
2465d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
2466d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
2467d42b5084SRob Bradfordremoved.
2468d42b5084SRob Bradford
2469d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
2470d42b5084SRob Bradford
2471d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
247242e9632cSJosh Sorefinstead hosted in [its own
2473d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
2474d42b5084SRob Bradford
2475d42b5084SRob Bradford### Enhanced "info" API
2476d42b5084SRob Bradford
2477d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
2478d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
2479d42b5084SRob Bradford
2480d42b5084SRob Bradford### Contributors
2481d42b5084SRob Bradford
2482d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
2483d42b5084SRob Bradford
2484d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2485d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
2486d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2487d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
2488d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2489d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2490d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
2491d42b5084SRob Bradford
24927dcd3affSRob Bradford# v0.11.0
24937dcd3affSRob Bradford
24947dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
24957dcd3affSRob Bradford
24967dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
24977dcd3affSRob Bradford
24987dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
24997dcd3affSRob Bradfordbe used for a significantly higher performance block device.
25007dcd3affSRob Bradford
25017dcd3affSRob Bradford### Windows Guest Support
25027dcd3affSRob Bradford
25037dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
25047dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
25057dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
25067dcd3affSRob Bradforddocumentation](docs/windows.md).
25077dcd3affSRob Bradford
25087dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
25097dcd3affSRob Bradford
25107dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
25117dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
25127dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
25137dcd3affSRob Bradford
2514d00eb4aaSRob Bradford### `virtio-mmio` Removal
25157dcd3affSRob Bradford
25167dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
25177dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
25187dcd3affSRob Bradfordreduce the testing burden of the project.
25197dcd3affSRob Bradford
25207dcd3affSRob Bradford### Snapshot/Restore support for ARM64
25217dcd3affSRob Bradford
25227dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
25237dcd3affSRob Bradfordimplemented.
25247dcd3affSRob Bradford
25257dcd3affSRob Bradford### Improved Linux Boot Time
25267dcd3affSRob Bradford
25277dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
25287dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
25297dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
25307dcd3affSRob Bradford
25317dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
25327dcd3affSRob Bradford
25337dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
25347dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
25357dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
25367dcd3affSRob Bradfordresources.
25377dcd3affSRob Bradford
25387dcd3affSRob Bradford### Default Log Level Changed
25397dcd3affSRob Bradford
25407dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
25417dcd3affSRob Bradfordeasier to see potential issues. New [logging
25429988379fSRuoqing Hedocumentation](docs/logging.md) was also added.
25437dcd3affSRob Bradford
25447dcd3affSRob Bradford### New `--balloon` Parameter Added
25457dcd3affSRob Bradford
25467dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
25477dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
25487dcd3affSRob Bradfordcontrols without overloading `--memory`.
25497dcd3affSRob Bradford
25507dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
25517dcd3affSRob Bradford
25527dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
25537dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
25547dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
25557dcd3affSRob Bradford
25567dcd3affSRob Bradford### Notable Bug Fixes
25577dcd3affSRob Bradford
25587dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
25597dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
25607dcd3affSRob Bradford* CPU identification string is now exposed to the guest
25617dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
25627dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
25637dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
25647dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
25657dcd3affSRob Bradford  can be used (#1803)
25667dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
25677dcd3affSRob Bradford  correctly
25687dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
25697dcd3affSRob Bradford  correctly
25707dcd3affSRob Bradford
25717dcd3affSRob Bradford### Contributors
25727dcd3affSRob Bradford
25737dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
25747dcd3affSRob Bradford
25757dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
25767dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
25777dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
25787dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
25797dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
25807dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
25817dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
25827dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
25837dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
25847dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
25857dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
25867dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
25877dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
25887dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
25897dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
25907dcd3affSRob Bradford
25917dcd3affSRob Bradford
2592198bd551SRob Bradford# v0.10.0
2593198bd551SRob Bradford
2594198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
2595198bd551SRob Bradford
2596198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
2597198bd551SRob Bradford
2598198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
2599198bd551SRob Bradford
2600198bd551SRob Bradford### Memory Zones
2601198bd551SRob Bradford
260242e9632cSJosh SorefSupport has been added for fine-grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
2603198bd551SRob Bradford
2604198bd551SRob Bradford### `Seccomp` Sandbox Improvements
2605198bd551SRob Bradford
2606198bd551SRob 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`.
2607198bd551SRob Bradford
2608198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
2609198bd551SRob Bradford
2610198bd551SRob 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.
2611198bd551SRob Bradford
2612198bd551SRob Bradford### Notable Bug Fixes
2613198bd551SRob Bradford
2614198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
2615198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
2616198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
2617198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
2618198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
2619198bd551SRob Bradford
2620198bd551SRob Bradford### Contributors
2621198bd551SRob Bradford
2622198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
2623198bd551SRob Bradford
2624198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
2625198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
2626198bd551SRob Bradford* Anatol Belski <ab@php.net>
2627198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
2628198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
2629198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2630198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
2631198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2632198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2633198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2634198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
2635198bd551SRob Bradford
2636d714cf81SRob Bradford# v0.9.0
2637d714cf81SRob Bradford
2638d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
2639d714cf81SRob Bradford
2640d714cf81SRob Bradford### `io_uring` Based Block Device Support
2641d714cf81SRob Bradford
2642d714cf81SRob 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.
2643d714cf81SRob Bradford
2644d714cf81SRob Bradford### Block and Network Device Statistics
2645d714cf81SRob Bradford
2646d714cf81SRob 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.
2647d714cf81SRob Bradford
2648d714cf81SRob Bradford### HTTP API Responses
2649d714cf81SRob Bradford
2650d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
2651d714cf81SRob Bradford
2652d714cf81SRob Bradford### CPU Topology
2653d714cf81SRob Bradford
2654d714cf81SRob 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.
2655d714cf81SRob Bradford
2656d714cf81SRob Bradford### Release Build Optimization
2657d714cf81SRob Bradford
2658d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
2659d714cf81SRob Bradford
2660d714cf81SRob Bradford### Hypervisor Abstraction
2661d714cf81SRob Bradford
2662d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
2663d714cf81SRob Bradford
2664d714cf81SRob Bradford### Snapshot/Restore Improvements
2665d714cf81SRob Bradford
2666d714cf81SRob 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.
2667d714cf81SRob Bradford
2668d714cf81SRob Bradford### Virtio Memory Ballooning Support
2669d714cf81SRob Bradford
2670d714cf81SRob 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.
2671d714cf81SRob Bradford
2672d714cf81SRob Bradford### Enhancements to ARM64 Support
2673d714cf81SRob Bradford
2674d714cf81SRob 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.
2675d714cf81SRob Bradford
2676d714cf81SRob Bradford### Intel SGX Support
2677d714cf81SRob Bradford
2678d714cf81SRob 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).
2679d714cf81SRob Bradford
2680d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
2681d714cf81SRob Bradford
2682d714cf81SRob 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.
2683d714cf81SRob Bradford
2684d714cf81SRob Bradford### Notable Bug Fixes
2685d714cf81SRob Bradford
2686d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
2687d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
2688d714cf81SRob 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).
2689d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
2690d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
2691d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
2692d714cf81SRob Bradford
2693d714cf81SRob Bradford### Contributors
2694d714cf81SRob Bradford
2695d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
2696d714cf81SRob Bradford
2697d714cf81SRob Bradford* Anatol Belski <ab@php.net>
2698d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
2699d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
2700d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2701d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
2702d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
2703d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2704d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2705d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
2706d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
2707d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
2708d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
2709d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
2710d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
2711d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
2712d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
2713d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
2714d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
2715d714cf81SRob Bradford
2716d714cf81SRob Bradford
271752b83969SRob Bradford# v0.8.0
271852b83969SRob Bradford
271952b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
272052b83969SRob Bradford
272152b83969SRob Bradford### Experimental Snapshot and Restore Support
272252b83969SRob Bradford
272352b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
272452b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
272552b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
272652b83969SRob Bradfordoriginal VM at the point it was paused.
272752b83969SRob Bradford
272852b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
272952b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
273052b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
273152b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
273252b83969SRob Bradford(#1176).
273352b83969SRob Bradford
273452b83969SRob Bradford### Experimental ARM64 Support
273552b83969SRob Bradford
273652b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
273752b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
2738dfebc892SRuoqing Hedetails can be found in the [ARM64 documentation](https://github.com/cloud-hypervisor/cloud-hypervisor/blob/8ab15b9a984a448006f97b1211498c1bb583de3b/docs/arm64.md).
273952b83969SRob Bradford
274052b83969SRob Bradford### Support for Using 5-level Paging in Guests
274152b83969SRob Bradford
274252b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
274352b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
274452b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
274552b83969SRob Bradfordwork due to current limitations in the PVH boot process.
274652b83969SRob Bradford
274752b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
274852b83969SRob Bradford
274952b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
275052b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
275152b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
275252b83969SRob Bradfordthe guest must service.
275352b83969SRob Bradford
275452b83969SRob Bradford### `vhost_user_fs` Improvements
275552b83969SRob Bradford
275652b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
275752b83969SRob Bradford
275852b83969SRob Bradford
275952b83969SRob Bradford### Notable Bug Fixes
276052b83969SRob Bradford
276152b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
276252b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
276352b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
276452b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
276552b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
276652b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
276752b83969SRob Bradford  #1216).
276852b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
276952b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
277052b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
277152b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
277252b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
277352b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
277452b83969SRob Bradford  (#751).
277552b83969SRob Bradford
277652b83969SRob Bradford### Command Line and API Changes
277752b83969SRob Bradford
277852b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
277952b83969SRob Bradford
278052b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
278152b83969SRob Bradford  rather than `sock` in some cases.
278252b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
278352b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
278452b83969SRob Bradford  offered for negotiation.
278552b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
278652b83969SRob Bradford  address for the `tap` device on the host.
278752b83969SRob Bradford
278852b83969SRob Bradford### Contributors
278952b83969SRob Bradford
279052b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
279152b83969SRob Bradford
279252b83969SRob Bradford* Anatol Belski <ab@php.net>
279352b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
279452b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
279552b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
279652b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
279752b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
279852b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
279952b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
280052b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
280152b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
280252b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
280352b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
280452b83969SRob Bradford
280596be8229SRob Bradford# v0.7.0
280696be8229SRob Bradford
280796be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
280896be8229SRob Bradford
280996be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
281096be8229SRob Bradford
281196be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
281296be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
281396be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
28145c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
281596be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
281696be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
281796be8229SRob Bradforddevices to ease their removal.
281896be8229SRob Bradford
281996be8229SRob Bradford### Alternative `libc` Support
282096be8229SRob Bradford
282196be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
282296be8229SRob Bradfordcontains a static binary compiled using that toolchain.
282396be8229SRob Bradford
282496be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
282596be8229SRob Bradford
282696be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
282796be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
282896be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
282996be8229SRob Bradfordis passed when the devices are created.
283096be8229SRob Bradford
283196be8229SRob Bradford### Initial RamFS Support
283296be8229SRob Bradford
283396be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
283496be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
283596be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
283696be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
283796be8229SRob Bradfordminimal image.
283896be8229SRob Bradford
283996be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
284096be8229SRob Bradford
284196be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
284296be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
284396be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
284496be8229SRob Bradfordrequires kernel patches to be able to support it.
284596be8229SRob Bradford
284696be8229SRob Bradford### `Seccomp` Sandboxing
284796be8229SRob Bradford
284896be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
284996be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
285096be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
285196be8229SRob Bradford
285296be8229SRob Bradford### Updated Distribution Support
285396be8229SRob Bradford
285496be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
285596be8229SRob Bradforddistributions and is part of our regular testing programme.
285696be8229SRob Bradford
285796be8229SRob Bradford### Command Line and API Changes
285896be8229SRob Bradford
285996be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
286096be8229SRob Bradford
286196be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
286296be8229SRob Bradford  If no name is specified the VMM chooses one.
286396be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
286496be8229SRob Bradford  memory instead of providing a path.
286596be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
286696be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
286796be8229SRob Bradford  option and replaced it with a single optional field.
286896be8229SRob Bradford* There is enhanced validation of the command line and API provided
286996be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
287096be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
287196be8229SRob Bradford  device.
287296be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
287396be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
287496be8229SRob Bradford  has appropriate new HTTP endpoints too.
287596be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
287696be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
287796be8229SRob Bradford  to provide the equivalent of a read-only file.
287896be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
287996be8229SRob Bradford  with those used by `--disk`.
288096be8229SRob Bradford
288196be8229SRob Bradford### Contributors
288296be8229SRob Bradford
288396be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
288496be8229SRob Bradford
288596be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
288696be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
288796be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
288896be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
288996be8229SRob Bradford* Dean Sheather <dean@coder.com>
289096be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
289196be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
289296be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
289396be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
289496be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
289596be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
289696be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
289796be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
289896be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
289996be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
290096be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
290196be8229SRob Bradford
290203cb26ccSSamuel Ortiz# v0.6.0
290303cb26ccSSamuel Ortiz
290403cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
290503cb26ccSSamuel Ortiz
290603cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
290703cb26ccSSamuel Ortiz
290803cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
290903cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
291003cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
291103cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
291203cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
291303cb26ccSSamuel Ortiz
291403cb26ccSSamuel Ortiz### Shared Filesystem Improvements
291503cb26ccSSamuel Ortiz
291603cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
291703cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
291803cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
291903cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
292003cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
292103cb26ccSSamuel Ortiz
292203cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
292303cb26ccSSamuel Ortiz
292403cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
292503cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
292603cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
292703cb26ccSSamuel Ortizinto their own, separate processes.
29285c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
292903cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
293003cb26ccSSamuel Ortiz
293103cb26ccSSamuel Ortiz### Command Line Interface
293203cb26ccSSamuel Ortiz
293303cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
293437a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
293537a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
293637a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
293737a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
293837a2c13aSAlyssa Rossis created with each build and available e.g. at
293903cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
294003cb26ccSSamuel Ortiz
294103cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
294203cb26ccSSamuel Ortizcommands.
294303cb26ccSSamuel Ortiz
294403cb26ccSSamuel Ortiz### PVH Boot
294503cb26ccSSamuel Ortiz
294603cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
294703cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
294803cb26ccSSamuel Ortiz
294903cb26ccSSamuel Ortiz### Contributors
295003cb26ccSSamuel Ortiz
295103cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
295203cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
295303cb26ccSSamuel Ortiz
295403cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
295503cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
295603cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
295703cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
295803cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
295903cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
296003cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
296103cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
296203cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
296303cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
296403cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
296503cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
296603cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
296703cb26ccSSamuel Ortiz
296894f2fc33SRob Bradford# v0.5.1
296994f2fc33SRob Bradford
297094f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
297194f2fc33SRob Bradford
297294f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
297394f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
297494f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
297594f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
297694f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
29778e8a7b6dSSamuel Ortiz
29782f395e60SSamuel Ortiz# v0.5.0
29792f395e60SSamuel Ortiz
29802f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
29812f395e60SSamuel Ortiz
29822f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
29832f395e60SSamuel Ortiz
29842f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
29852f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
29862f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
29872f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
29882f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
29892f395e60SSamuel Ortiz
29902f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
29912f395e60SSamuel Ortiz
29922f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
29932f395e60SSamuel Ortiz
29942f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
29952f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
29962f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
29972f395e60SSamuel Ortiz
29982f395e60SSamuel Ortiz### New Interrupt Management Framework
29992f395e60SSamuel Ortiz
30002f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
30012f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
30022f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
30032f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
30042f395e60SSamuel Ortizvirtio ones.
30052f395e60SSamuel Ortiz
30062f395e60SSamuel Ortiz### Development Tools
30072f395e60SSamuel Ortiz
30082f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
30092f395e60SSamuel Ortizbuild, development and testing tools.
30102f395e60SSamuel OrtizSomehow similar to the excellent
30112f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
301237a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
30132f395e60SSamuel Ortiz
30142f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
30152f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
30162f395e60SSamuel Ortiz
30172f395e60SSamuel Ortiz### Kata Containers Integration
30182f395e60SSamuel Ortiz
30192f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
30202f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
30212f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
30222f395e60SSamuel Ortizintegrated into the project's CI.
30232f395e60SSamuel Ortiz
30242f395e60SSamuel Ortiz### Contributors
30252f395e60SSamuel Ortiz
30262f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
30272f395e60SSamuel Ortiz
30282f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
30292f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
30302f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
30312f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
30322f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
30332f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
30342f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
30352f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
30362f395e60SSamuel Ortiz
3037cec884e8SSamuel Ortiz# v0.4.0
3038cec884e8SSamuel Ortiz
3039cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
3040cec884e8SSamuel Ortiz
3041cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
3042cec884e8SSamuel Ortiz
3043e6e58e6dSSebastien BoeufAs a way to vertically scale Cloud Hypervisor guests, we now support dynamically
3044cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
3045cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
3046cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
304737a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
3048cec884e8SSamuel Ortiz
3049cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
3050cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
3051cec884e8SSamuel Ortiz
3052cec884e8SSamuel Ortiz### Programmatic firmware tables generation
3053cec884e8SSamuel Ortiz
3054cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
3055cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
3056cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
3057cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
3058cec884e8SSamuel Ortiztables based on the VMM device model and topology.
3059cec884e8SSamuel Ortiz
3060cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
3061cec884e8SSamuel Ortiz
3062cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
3063cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
3064cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
3065cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
3066cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
3067cec884e8SSamuel Ortiz
3068cec884e8SSamuel Ortiz### Guest pause and resume
3069cec884e8SSamuel Ortiz
30705c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
3071cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
3072cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
3073cec884e8SSamuel Ortizand resume capabilities.
3074cec884e8SSamuel Ortiz
3075cec884e8SSamuel Ortiz### Userspace IOAPIC by default
3076cec884e8SSamuel Ortiz
3077cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
3078cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
3079cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
3080cec884e8SSamuel Ortizdefault.
3081cec884e8SSamuel Ortiz
3082cec884e8SSamuel Ortiz### PCI BAR reprogramming
3083cec884e8SSamuel Ortiz
3084cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
3085cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
3086cec884e8SSamuel Ortizreprogramming.
3087cec884e8SSamuel Ortiz
3088cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
3089cec884e8SSamuel Ortiz
3090cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
3091cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
3092cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
3093cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
3094cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3095cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
3096cec884e8SSamuel Ortiztemporarily fork.
3097cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
3098cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
3099cec884e8SSamuel Ortiz
3100cec884e8SSamuel Ortiz### Contributors
3101cec884e8SSamuel Ortiz
3102cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
3103cec884e8SSamuel Ortiz
3104cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
3105cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
3106cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
3107cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
3108cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
3109cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
3110cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
3111cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
3112cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
3113cec884e8SSamuel Ortiz
31148e8a7b6dSSamuel Ortiz# v0.3.0
31158e8a7b6dSSamuel Ortiz
31168e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
31178e8a7b6dSSamuel Ortiz
31188e8a7b6dSSamuel Ortiz### Block device offloading
31198e8a7b6dSSamuel Ortiz
31208e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
31218e8a7b6dSSamuel Ortizand we added support for
31228e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
31238e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
31248e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
31258e8a7b6dSSamuel Ortizbackend.
31268e8a7b6dSSamuel Ortiz
31278e8a7b6dSSamuel Ortiz### Network device backend
31288e8a7b6dSSamuel Ortiz
31298e8a7b6dSSamuel OrtizThe previous release provided support for
31308e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
31318e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
31328e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
31338e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
31348e8a7b6dSSamuel Ortiz
31358e8a7b6dSSamuel Ortiz### Virtual sockets
31368e8a7b6dSSamuel Ortiz
31378e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
31388e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
31398e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
31408e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
31418e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
31428e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
31438e8a7b6dSSamuel Ortiz
31448e8a7b6dSSamuel Ortiz### HTTP based API
31458e8a7b6dSSamuel Ortiz
31468e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
31478e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
31488e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
31498e8a7b6dSSamuel Ortiznext release cycle.
31508e8a7b6dSSamuel Ortiz
31518e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
31528e8a7b6dSSamuel Ortiz
31538e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
31548e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
31558e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
31568e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
31578e8a7b6dSSamuel Ortiz
31588e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
31598e8a7b6dSSamuel Ortiz
31608e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
316137a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
316237a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
31638e8a7b6dSSamuel Ortiz
31648e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
31658e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
31668e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
31678e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
31688e8a7b6dSSamuel Ortizsetting.
31698e8a7b6dSSamuel Ortiz
31708e8a7b6dSSamuel Ortiz### Ubuntu 19.10
31718e8a7b6dSSamuel Ortiz
31728ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
31738e8a7b6dSSamuel Ortizwe can now support the latest
31748e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
31758e8a7b6dSSamuel Ortiz
31768e8a7b6dSSamuel Ortiz### Large memory guests
31778e8a7b6dSSamuel Ortiz
31788e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
31798e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
31807688e6e2SSamuel Ortiz
3181d784ac29SSamuel Ortiz# v0.2.0
3182d784ac29SSamuel Ortiz
3183d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
3184d784ac29SSamuel Ortiz
3185d784ac29SSamuel Ortiz### Network device offloading
3186d784ac29SSamuel Ortiz
3187d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
3188d784ac29SSamuel Ortizprocesses, we added support for
3189d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
3190d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
3191*1c22c4a5SMuminul Islam(e.g. [DPDK](https://www.dpdk.org)) into the VMM as their virtio network backend.
3192d784ac29SSamuel Ortiz
3193d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
3194d784ac29SSamuel Ortiz
3195d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
3196d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
3197d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
3198d784ac29SSamuel Ortizcleanly reboot and shutdown.
3199d784ac29SSamuel Ortiz
3200d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
3201d784ac29SSamuel Ortizenabled by default.
3202d784ac29SSamuel Ortiz
3203d784ac29SSamuel Ortiz### Debug I/O port
3204d784ac29SSamuel Ortiz
3205d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
3206d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
3207730cf1e9SRuoqing He[0x80](https://web.archive.org/web/20211028033025/https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
3208d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
320937a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
321037a2c13aSAlyssa Rossdetails.
3211d784ac29SSamuel Ortiz
3212d784ac29SSamuel Ortiz### Improved direct device assignment
3213d784ac29SSamuel Ortiz
3214d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
3215d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
3216d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
3217d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
3218d784ac29SSamuel Ortizdirectly assigned devices.
3219d784ac29SSamuel Ortiz
3220d784ac29SSamuel Ortiz### Improved shared filesystem
3221d784ac29SSamuel Ortiz
3222d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
3223d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
3224d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
3225d784ac29SSamuel Ortizmemory footprint.
3226d784ac29SSamuel Ortiz
3227d784ac29SSamuel Ortiz### Ubuntu bionic based CI
3228d784ac29SSamuel Ortiz
32298ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
3230d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
3231d784ac29SSamuel Ortizour CI pipeline.
3232d784ac29SSamuel Ortiz
323393b77530SSamuel Ortiz# v0.1.0
323493b77530SSamuel Ortiz
323593b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
323693b77530SSamuel Ortiz
323793b77530SSamuel Ortiz### Shared filesystem
323893b77530SSamuel Ortiz
323993b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
324093b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
324193b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
324293b77530SSamuel Ortiz
324337a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
324437a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
324593b77530SSamuel Ortiz
324693b77530SSamuel Ortiz### Initial direct device assignment support
324793b77530SSamuel Ortiz
324893b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
324993b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
325093b77530SSamuel Ortizphysical devices into its guest.
325193b77530SSamuel Ortiz
325237a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
325337a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
325493b77530SSamuel Ortiz
325593b77530SSamuel Ortiz### Userspace IOAPIC
325693b77530SSamuel Ortiz
325793b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
325893b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
325993b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
326093b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
326193b77530SSamuel Ortiz
326293b77530SSamuel Ortiz### Virtual persistent memory
326393b77530SSamuel Ortiz
326493b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
326593b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
326693b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
326793b77530SSamuel Ortiz
326893b77530SSamuel Ortiz### Linux kernel bzImage
326993b77530SSamuel Ortiz
327093b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
327193b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
327293b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
327393b77530SSamuel Ortizdistribution kernel image.
327493b77530SSamuel Ortiz
327593b77530SSamuel Ortiz### Console over virtio
327693b77530SSamuel Ortiz
327793b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
327893b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
327993b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
328093b77530SSamuel Ortizimplementation.
328193b77530SSamuel Ortiz
328293b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
328393b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
328493b77530SSamuel Ortiz`--serial tty --console off` from the command line.
328593b77530SSamuel Ortiz
328693b77530SSamuel Ortiz### Unit testing
328793b77530SSamuel Ortiz
328893b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
328993b77530SSamuel Ortiz
329093b77530SSamuel Ortiz### Integration tests parallelization
329193b77530SSamuel Ortiz
329293b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
329393b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
3294