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