xref: /cloud-hypervisor/release-notes.md (revision d00eb4aa257e760453c9e979f48d5206931f046c)
1*d00eb4aaSRob Bradford- [v19.0](#v190)
2*d00eb4aaSRob Bradford    - [Improved PTY handling for serial and `virtio-console`](#improved-pty-handling-for-serial-and-virtio-console)
3*d00eb4aaSRob Bradford    - [PCI boot time optimisations](#pci-boot-time-optimisations)
4*d00eb4aaSRob Bradford    - [Improved TDX support](#improved-tdx-support)
5*d00eb4aaSRob Bradford    - [Live migration enhancements](#live-migration-enhancements)
6*d00eb4aaSRob Bradford    - [`virtio-mem` support with `vfio-user`](#virtio-mem-support-with-vfio-user)
7*d00eb4aaSRob Bradford    - [AArch64 for `virtio-iommu`](#aarch64-for-virtio-iommu)
8*d00eb4aaSRob Bradford    - [Notable bug fixes](#notable-bug-fixes)
9*d00eb4aaSRob Bradford    - [Contributors](#contributors)
102c4f8d22SRob Bradford- [v18.0](#v180)
112c4f8d22SRob Bradford    - [Experimental User Device (`vfio-user`) support](#experimental-user-device-vfio-user-support)
122c4f8d22SRob Bradford    - [Migration support for `vhost-user` devices](#migration-support-for-vhost-user-devices)
132c4f8d22SRob Bradford    - [VHDX disk image support](#vhdx-disk-image-support)
142c4f8d22SRob Bradford    - [Device pass through on MSHV hypervisor](#device-pass-through-on-mshv-hypervisor)
152c4f8d22SRob Bradford    - [AArch64 for support `virtio-mem`](#aarch64-for-support-virtio-mem)
162c4f8d22SRob Bradford    - [Live migration on MSHV hypervisor](#live-migration-on-mshv-hypervisor)
172c4f8d22SRob Bradford    - [AArch64 CPU topology support](#aarch64-cpu-topology-support)
182c4f8d22SRob Bradford    - [Power button support on AArch64](#power-button-support-on-aarch64)
19*d00eb4aaSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-1)
20*d00eb4aaSRob Bradford    - [Contributors](#contributors-1)
21e6db5999SRob Bradford- [v17.0](#v170)
22e6db5999SRob Bradford    - [ARM64 NUMA support using ACPI](#arm64-numa-support-using-acpi)
23e6db5999SRob Bradford    - [`Seccomp` support for MSHV backend](#seccomp-support-for-mshv-backend)
24e6db5999SRob Bradford    - [Hotplug of `macvtap` devices](#hotplug-of-macvtap-devices)
25e6db5999SRob Bradford    - [Improved SGX support](#improved-sgx-support)
26e6db5999SRob Bradford    - [Inflight tracking for `vhost-user` devices](#inflight-tracking-for-vhost-user-devices)
27*d00eb4aaSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-2)
28*d00eb4aaSRob Bradford    - [Contributors](#contributors-2)
295ed8e01fSRob Bradford- [v16.0](#v160)
305ed8e01fSRob Bradford    - [Improved live migration support](#improved-live-migration-support)
315ed8e01fSRob Bradford    - [Improved `vhost-user` support](#improved-vhost-user-support)
325ed8e01fSRob Bradford    - [ARM64 ACPI and UEFI support](#arm64-acpi-and-uefi-support)
33*d00eb4aaSRob Bradford    - [Notable bug fixes](#notable-bug-fixes-3)
345ed8e01fSRob Bradford    - [Removed functionality](#removed-functionality)
35*d00eb4aaSRob Bradford    - [Contributors](#contributors-3)
3630a01277SRob Bradford- [v15.0](#v150)
3730a01277SRob Bradford    - [Version numbering and stability guarantees](#version-numbering-and-stability-guarantees)
3830a01277SRob Bradford    - [Network device rate limiting](#network-device-rate-limiting)
3930a01277SRob Bradford    - [Support for runtime control of `virtio-net` guest offload](#support-for-runtime-control-of-virtio-net-guest-offload)
4030a01277SRob Bradford    - [`--api-socket` supports file descriptor parameter](#--api-socket-supports-file-descriptor-parameter)
4130a01277SRob Bradford    - [Bug fixes](#bug-fixes)
4230a01277SRob Bradford    - [Deprecations](#deprecations)
43*d00eb4aaSRob Bradford    - [Contributors](#contributors-4)
4430a01277SRob Bradford- [v0.14.1](#v0141)
4540c63dcfSRob Bradford- [v0.14.0](#v0140)
4640c63dcfSRob Bradford    - [Structured event monitoring](#structured-event-monitoring)
4740c63dcfSRob Bradford    - [MSHV improvements](#mshv-improvements)
4840c63dcfSRob Bradford    - [Improved aarch64 platform](#improved-aarch64-platform)
4940c63dcfSRob Bradford    - [Updated hotplug documentation](#updated-hotplug-documentation)
5040c63dcfSRob Bradford    - [PTY control for serial and `virtio-console`](#pty-control-for-serial-and-virtio-console)
5140c63dcfSRob Bradford    - [Block device rate limiting](#block-device-rate-limiting)
5230a01277SRob Bradford    - [Deprecations](#deprecations-1)
53*d00eb4aaSRob Bradford    - [Contributors](#contributors-5)
54f58b6f84SRob Bradford- [v0.13.0](#v0130)
55f58b6f84SRob Bradford    - [Wider VFIO device support](#wider-vfio-device-support)
5640c63dcfSRob Bradford    - [Improved huge page support](#improved-huge-page-support)
57f58b6f84SRob Bradford    - [MACvTAP support](#macvtap-support)
58f58b6f84SRob Bradford    - [VHD disk image support](#vhd-disk-image-support)
59f58b6f84SRob Bradford    - [Improved Virtio device threading](#improved-virtio-device-threading)
60f58b6f84SRob Bradford    - [Clean shutdown support via synthetic power button](#clean-shutdown-support-via-synthetic-power-button)
61*d00eb4aaSRob Bradford    - [Contributors](#contributors-6)
62d42b5084SRob Bradford- [v0.12.0](#v0120)
63d42b5084SRob Bradford    - [ARM64 enhancements](#arm64-enhancements)
64d42b5084SRob Bradford    - [Removal of `vhost-user-net` and `vhost-user-block` self spawning](#removal-of-vhost-user-net-and-vhost-user-block-self-spawning)
65d42b5084SRob Bradford    - [Migration of `vhost-user-fs` backend](#migration-of-vhost-user-fs-backend)
66d42b5084SRob Bradford    - [Enhanced "info" API](#enhanced-info-api)
67*d00eb4aaSRob Bradford    - [Contributors](#contributors-7)
687dcd3affSRob Bradford- [v0.11.0](#v0110)
697dcd3affSRob Bradford    - [`io_uring` support by default for `virtio-block`](#io_uring-support-by-default-for-virtio-block)
707dcd3affSRob Bradford    - [Windows Guest Support](#windows-guest-support)
717dcd3affSRob Bradford    - [`vhost-user` "Self Spawning" Deprecation](#vhost-user-self-spawning-deprecation)
72*d00eb4aaSRob Bradford    - [`virtio-mmio` Removal](#virtio-mmio-removal)
737dcd3affSRob Bradford    - [Snapshot/Restore support for ARM64](#snapshotrestore-support-for-arm64)
747dcd3affSRob Bradford    - [Improved Linux Boot Time](#improved-linux-boot-time)
757dcd3affSRob Bradford    - [`SIGTERM/SIGINT` Interrupt Signal Handling](#sigtermsigint-interrupt-signal-handling)
767dcd3affSRob Bradford    - [Default Log Level Changed](#default-log-level-changed)
777dcd3affSRob Bradford    - [New `--balloon` Parameter Added](#new---balloon-parameter-added)
787dcd3affSRob Bradford    - [Experimental `virtio-watchdog` Support](#experimental-virtio-watchdog-support)
79*d00eb4aaSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-4)
80*d00eb4aaSRob Bradford    - [Contributors](#contributors-8)
81198bd551SRob Bradford- [v0.10.0](#v0100)
82198bd551SRob Bradford    - [`virtio-block` Support for Multiple Descriptors](#virtio-block-support-for-multiple-descriptors)
83198bd551SRob Bradford    - [Memory Zones](#memory-zones)
84198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements)
85198bd551SRob Bradford    - [Preliminary KVM HyperV Emulation Control](#preliminary-kvm-hyperv-emulation-control)
86*d00eb4aaSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-5)
87*d00eb4aaSRob Bradford    - [Contributors](#contributors-9)
88d714cf81SRob Bradford- [v0.9.0](#v090)
89d714cf81SRob Bradford    - [`io_uring` Based Block Device Support](#io_uring-based-block-device-support)
90d714cf81SRob Bradford    - [Block and Network Device Statistics](#block-and-network-device-statistics)
91d714cf81SRob Bradford    - [HTTP API Responses](#http-api-responses)
92d714cf81SRob Bradford    - [CPU Topology](#cpu-topology)
93d714cf81SRob Bradford    - [Release Build Optimization](#release-build-optimization)
94d714cf81SRob Bradford    - [Hypervisor Abstraction](#hypervisor-abstraction)
95d714cf81SRob Bradford    - [Snapshot/Restore Improvements](#snapshotrestore-improvements)
96d714cf81SRob Bradford    - [Virtio Memory Ballooning Support](#virtio-memory-ballooning-support)
97d714cf81SRob Bradford    - [Enhancements to ARM64 Support](#enhancements-to-arm64-support)
98d714cf81SRob Bradford    - [Intel SGX Support](#intel-sgx-support)
99198bd551SRob Bradford    - [`Seccomp` Sandbox Improvements](#seccomp-sandbox-improvements-1)
100*d00eb4aaSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-6)
101*d00eb4aaSRob Bradford    - [Contributors](#contributors-10)
102d714cf81SRob Bradford- [v0.8.0](#v080)
103d714cf81SRob Bradford    - [Experimental Snapshot and Restore Support](#experimental-snapshot-and-restore-support)
104d714cf81SRob Bradford    - [Experimental ARM64 Support](#experimental-arm64-support)
105d714cf81SRob Bradford    - [Support for Using 5-level Paging in Guests](#support-for-using-5-level-paging-in-guests)
106d714cf81SRob Bradford    - [Virtio Device Interrupt Suppression for Network Devices](#virtio-device-interrupt-suppression-for-network-devices)
107d714cf81SRob Bradford    - [`vhost_user_fs` Improvements](#vhost_user_fs-improvements)
108*d00eb4aaSRob Bradford    - [Notable Bug Fixes](#notable-bug-fixes-7)
109d714cf81SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes)
110*d00eb4aaSRob Bradford    - [Contributors](#contributors-11)
11196be8229SRob Bradford- [v0.7.0](#v070)
11296be8229SRob Bradford    - [Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug](#block-network-persistent-memory-pmem-virtiofs-and-vsock-hotplug)
11396be8229SRob Bradford    - [Alternative `libc` Support](#alternative-libc-support)
11496be8229SRob Bradford    - [Multithreaded Multi Queued `vhost-user` Backends](#multithreaded-multi-queued-vhost-user-backends)
11596be8229SRob Bradford    - [Initial RamFS Support](#initial-ramfs-support)
11696be8229SRob Bradford    - [Alternative Memory Hotplug: `virtio-mem`](#alternative-memory-hotplug-virtio-mem)
11796be8229SRob Bradford    - [`Seccomp` Sandboxing](#seccomp-sandboxing)
11896be8229SRob Bradford    - [Updated Distribution Support](#updated-distribution-support)
11952b83969SRob Bradford    - [Command Line and API Changes](#command-line-and-api-changes-1)
120*d00eb4aaSRob Bradford    - [Contributors](#contributors-12)
12103cb26ccSSamuel Ortiz- [v0.6.0](#v060)
12203cb26ccSSamuel Ortiz    - [Directly Assigned Devices Hotplug](#directly-assigned-devices-hotplug)
12303cb26ccSSamuel Ortiz    - [Shared Filesystem Improvements](#shared-filesystem-improvements)
12403cb26ccSSamuel Ortiz    - [Block and Networking IO Self Offloading](#block-and-networking-io-self-offloading)
12503cb26ccSSamuel Ortiz    - [Command Line Interface](#command-line-interface)
12603cb26ccSSamuel Ortiz    - [PVH Boot](#pvh-boot)
127*d00eb4aaSRob Bradford    - [Contributors](#contributors-13)
12894f2fc33SRob Bradford- [v0.5.1](#v051)
1292f395e60SSamuel Ortiz- [v0.5.0](#v050)
13094f2fc33SRob Bradford    - [Virtual Machine Dynamic Resizing](#virtual-machine-dynamic-resizing)
13194f2fc33SRob Bradford    - [Multi-Queue, Multi-Threaded Paravirtualization](#multi-queue-multi-threaded-paravirtualization)
13294f2fc33SRob Bradford    - [New Interrupt Management Framework](#new-interrupt-management-framework)
13394f2fc33SRob Bradford    - [Development Tools](#development-tools)
13494f2fc33SRob Bradford    - [Kata Containers Integration](#kata-containers-integration)
135*d00eb4aaSRob Bradford    - [Contributors](#contributors-14)
136cec884e8SSamuel Ortiz- [v0.4.0](#v040)
13794f2fc33SRob Bradford    - [Dynamic virtual CPUs addition](#dynamic-virtual-cpus-addition)
13894f2fc33SRob Bradford    - [Programmatic firmware tables generation](#programmatic-firmware-tables-generation)
13994f2fc33SRob Bradford    - [Filesystem and block devices vhost-user backends](#filesystem-and-block-devices-vhost-user-backends)
14094f2fc33SRob Bradford    - [Guest pause and resume](#guest-pause-and-resume)
14194f2fc33SRob Bradford    - [Userspace IOAPIC by default](#userspace-ioapic-by-default)
14294f2fc33SRob Bradford    - [PCI BAR reprogramming](#pci-bar-reprogramming)
14394f2fc33SRob Bradford    - [New `cloud-hypervisor` organization](#new-cloud-hypervisor-organization)
144*d00eb4aaSRob Bradford    - [Contributors](#contributors-15)
1458e8a7b6dSSamuel Ortiz- [v0.3.0](#v030)
14694f2fc33SRob Bradford    - [Block device offloading](#block-device-offloading)
14794f2fc33SRob Bradford    - [Network device backend](#network-device-backend)
14894f2fc33SRob Bradford    - [Virtual sockets](#virtual-sockets)
14994f2fc33SRob Bradford    - [HTTP based API](#http-based-api)
15094f2fc33SRob Bradford    - [Memory mapped virtio transport](#memory-mapped-virtio-transport)
15194f2fc33SRob Bradford    - [Paravirtualized IOMMU](#paravirtualized-iommu)
15294f2fc33SRob Bradford    - [Ubuntu 19.10](#ubuntu-1910)
15394f2fc33SRob Bradford    - [Large memory guests](#large-memory-guests)
1547688e6e2SSamuel Ortiz- [v0.2.0](#v020)
15594f2fc33SRob Bradford    - [Network device offloading](#network-device-offloading)
15694f2fc33SRob Bradford    - [Minimal hardware-reduced ACPI](#minimal-hardware-reduced-acpi)
15794f2fc33SRob Bradford    - [Debug I/O port](#debug-io-port)
15894f2fc33SRob Bradford    - [Improved direct device assignment](#improved-direct-device-assignment)
15994f2fc33SRob Bradford    - [Improved shared filesystem](#improved-shared-filesystem)
16094f2fc33SRob Bradford    - [Ubuntu bionic based CI](#ubuntu-bionic-based-ci)
1617688e6e2SSamuel Ortiz- [v0.1.0](#v010)
16294f2fc33SRob Bradford    - [Shared filesystem](#shared-filesystem)
16394f2fc33SRob Bradford    - [Initial direct device assignment support](#initial-direct-device-assignment-support)
16494f2fc33SRob Bradford    - [Userspace IOAPIC](#userspace-ioapic)
16594f2fc33SRob Bradford    - [Virtual persistent memory](#virtual-persistent-memory)
16694f2fc33SRob Bradford    - [Linux kernel bzImage](#linux-kernel-bzimage)
16794f2fc33SRob Bradford    - [Console over virtio](#console-over-virtio)
16894f2fc33SRob Bradford    - [Unit testing](#unit-testing)
16994f2fc33SRob Bradford    - [Integration tests parallelization](#integration-tests-parallelization)
17094f2fc33SRob Bradford
171*d00eb4aaSRob Bradford# v19.0
172*d00eb4aaSRob Bradford
173*d00eb4aaSRob BradfordThis release has been tracked through the [v19.0
174*d00eb4aaSRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/22).
175*d00eb4aaSRob Bradford
176*d00eb4aaSRob Bradford### Improved PTY handling for serial and `virtio-console`
177*d00eb4aaSRob Bradford
178*d00eb4aaSRob BradfordThe PTY support for serial has been enhanced with improved buffering when the
179*d00eb4aaSRob Bradfordthe PTY is not yet connected to. Using `virtio-console` with PTY now results in
180*d00eb4aaSRob Bradfordthe console being resized if the PTY window is also resized.
181*d00eb4aaSRob Bradford
182*d00eb4aaSRob Bradford### PCI boot time optimisations
183*d00eb4aaSRob Bradford
184*d00eb4aaSRob BradfordMultiple optimisations have been made to the PCI handling resulting in
185*d00eb4aaSRob Bradfordsignificant improvements in the boot time of the guest.
186*d00eb4aaSRob Bradford
187*d00eb4aaSRob Bradford### Improved TDX support
188*d00eb4aaSRob Bradford
189*d00eb4aaSRob BradfordWhen using the latest TDVF firmware the ACPI tables created by the VMM are now
190*d00eb4aaSRob Bradfordexposed via the firmware to the guest.
191*d00eb4aaSRob Bradford
192*d00eb4aaSRob Bradford### Live migration enhancements
193*d00eb4aaSRob Bradford
194*d00eb4aaSRob BradfordLive migration support has been enhanced to support migration with `virtio-mem`
195*d00eb4aaSRob Bradfordbased memory hotplug and the `virtio-balloon` device now supports live
196*d00eb4aaSRob Bradfordmigration.
197*d00eb4aaSRob Bradford
198*d00eb4aaSRob Bradford### `virtio-mem` support with `vfio-user`
199*d00eb4aaSRob Bradford
200*d00eb4aaSRob BradfordThe use of `vfio-user` userspaces devices can now be used in conjunction with
201*d00eb4aaSRob Bradford`virtio-mem` based memory hotplug and unplug.
202*d00eb4aaSRob Bradford
203*d00eb4aaSRob Bradford### AArch64 for `virtio-iommu`
204*d00eb4aaSRob Bradford
205*d00eb4aaSRob BradfordA paravirtualised IOMMU can now be used on the AArch64 platform.
206*d00eb4aaSRob Bradford
207*d00eb4aaSRob Bradford### Notable bug fixes
208*d00eb4aaSRob Bradford
209*d00eb4aaSRob Bradford* ACPI hotplugged memory is correctly restored after a live migration or
210*d00eb4aaSRob Bradford  snapshot/restore (#3165)
211*d00eb4aaSRob Bradford* Multiple devices from the same IOMMU group can be passed through via VFIO
212*d00eb4aaSRob Bradford  (#3078 #3113)
213*d00eb4aaSRob Bradford* Live migration with large blocks of memory was buggy due to an in issue in
214*d00eb4aaSRob Bradford  the underlying crate (#3157)
215*d00eb4aaSRob Bradford
216*d00eb4aaSRob Bradford### Contributors
217*d00eb4aaSRob Bradford
218*d00eb4aaSRob BradfordMany thanks to everyone who has contributed to our release:
219*d00eb4aaSRob Bradford
220*d00eb4aaSRob Bradford* Alyssa Ross <hi@alyssa.is>
221*d00eb4aaSRob Bradford* Bo Chen <chen.bo@intel.com>
222*d00eb4aaSRob Bradford* Henry Wang <Henry.Wang@arm.com>
223*d00eb4aaSRob Bradford* Hui Zhu <teawater@antfin.com>
224*d00eb4aaSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
225*d00eb4aaSRob Bradford* Li Yu <liyu.yukiteru@bytedance.com>
226*d00eb4aaSRob Bradford* Michael Zhao <michael.zhao@arm.com>
227*d00eb4aaSRob Bradford* Muminul Islam <muislam@microsoft.com>
228*d00eb4aaSRob Bradford* Rob Bradford <robert.bradford@intel.com>
229*d00eb4aaSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
230*d00eb4aaSRob Bradford* Wei Liu <liuwe@microsoft.com>
231*d00eb4aaSRob Bradford* William Douglas <william.douglas@intel.com>
232*d00eb4aaSRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
233*d00eb4aaSRob Bradford
2342c4f8d22SRob Bradford# v18.0
2352c4f8d22SRob Bradford
2362c4f8d22SRob BradfordThis release has been tracked through the [v18.0
2372c4f8d22SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/21).
2382c4f8d22SRob Bradford
2392c4f8d22SRob Bradford### Experimental User Device (`vfio-user`) support
2402c4f8d22SRob Bradford
2412c4f8d22SRob BradfordExperimental support for running PCI devices in userspace via `vfio-user`
2422c4f8d22SRob Bradfordhas been included. This allows the use of the SPDK NVMe `vfio-user` controller
2432c4f8d22SRob Bradfordwith Cloud Hypervisor. This is enabled by `--user-device` on the command line.
2442c4f8d22SRob Bradford
2452c4f8d22SRob Bradford### Migration support for `vhost-user` devices
2462c4f8d22SRob Bradford
2472c4f8d22SRob BradfordDevices exposed into the VM via `vhost-user` can now be migrated using the live
2482c4f8d22SRob Bradfordmigration support. This requires support from the backend however the commonly
2492c4f8d22SRob Bradfordused DPDK `vhost-user` backend does support this.
2502c4f8d22SRob Bradford
2512c4f8d22SRob Bradford### VHDX disk image support
2522c4f8d22SRob Bradford
2532c4f8d22SRob BradfordImages using the VHDX disk image format can now be used with Cloud Hypervisor.
2542c4f8d22SRob Bradford
2552c4f8d22SRob Bradford### Device pass through on MSHV hypervisor
2562c4f8d22SRob Bradford
2572c4f8d22SRob BradfordWhen running on the MSHV hypervisor it is possible to pass through devices from
2582c4f8d22SRob Bradfordthe host through to the guest (e.g with `--device`)
2592c4f8d22SRob Bradford
2602c4f8d22SRob Bradford### AArch64 for support `virtio-mem`
2612c4f8d22SRob Bradford
2622c4f8d22SRob BradfordThe reference Linux kernel we recommend for using with Cloud Hypervisor now supports `virtio-mem` on AArch64.
2632c4f8d22SRob Bradford
2642c4f8d22SRob Bradford### Live migration on MSHV hypervisor
2652c4f8d22SRob Bradford
2662c4f8d22SRob BradfordLive migration is now supported when running on the MSHV hypervisor including
2672c4f8d22SRob Bradfordefficient tracking of dirty pages.
2682c4f8d22SRob Bradford
2692c4f8d22SRob Bradford### AArch64 CPU topology support
2702c4f8d22SRob Bradford
2712c4f8d22SRob BradfordThe CPU topology (as configured through `--cpu topology=`) can now be
2722c4f8d22SRob Bradfordconfigured on AArch64 platforms and is conveyed through either ACPI or device
2732c4f8d22SRob Bradfordtree.
2742c4f8d22SRob Bradford
2752c4f8d22SRob Bradford### Power button support on AArch64
2762c4f8d22SRob Bradford
2772c4f8d22SRob BradfordUse of the ACPI power button (e.g `ch-remote --api-socket=<API socket> power-button`)
2782c4f8d22SRob Bradfordis now supported when running on AArch64.
2792c4f8d22SRob Bradford
2802c4f8d22SRob Bradford### Notable bug fixes
2812c4f8d22SRob Bradford
2822c4f8d22SRob Bradford* Using two PTY outputs e.g. `--serial pty --console pty` now works correctly (#3012)
2832c4f8d22SRob Bradford* TTY input is now always sent to the correct destination (#3005)
2842c4f8d22SRob Bradford* The boot is no longer blocked when using a unattached PTY on the serial console (#3004)
2852c4f8d22SRob Bradford* Live migration is now supported on AArch64 (#3049)
2862c4f8d22SRob Bradford* Ensure signal handlers are run on the correct thread (#3069)
2872c4f8d22SRob Bradford
2882c4f8d22SRob Bradford### Contributors
2892c4f8d22SRob Bradford
2902c4f8d22SRob BradfordMany thanks to everyone who has contributed to our release:
2912c4f8d22SRob Bradford
2922c4f8d22SRob Bradford* Alyssa Ross <hi@alyssa.is>
2932c4f8d22SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
2942c4f8d22SRob Bradford* Arafatms <arafatms@outlook.com>
2952c4f8d22SRob Bradford* Bo Chen <chen.bo@intel.com>
2962c4f8d22SRob Bradford* Fazla Mehrab <akm.fazla.mehrab@vt.edu>
2972c4f8d22SRob Bradford* Henry Wang <Henry.Wang@arm.com>
2982c4f8d22SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
2992c4f8d22SRob Bradford* Jiaqi Gao <jiaqi.gao@intel.com>
3002c4f8d22SRob Bradford* Markus Theil <markus.theil@tu-ilmenau.de>
3012c4f8d22SRob Bradford* Muminul Islam <muislam@microsoft.com>
3022c4f8d22SRob Bradford* Rob Bradford <robert.bradford@intel.com>
3032c4f8d22SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
3042c4f8d22SRob Bradford* Wei Liu <liuwe@microsoft.com>
3052c4f8d22SRob Bradford* Yu Li <liyu.yukiteru@bytedance.com>
306e6db5999SRob Bradford
307e6db5999SRob Bradford# v17.0
308e6db5999SRob Bradford
309e6db5999SRob BradfordThis release has been tracked through the [v17.0
310e6db5999SRob Bradfordproject](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/20).
311e6db5999SRob Bradford
312e6db5999SRob Bradford### ARM64 NUMA support using ACPI
313e6db5999SRob Bradford
314e6db5999SRob BradfordThe support for ACPI on ARM64 has been enhanced to include support for
315e6db5999SRob Bradfordspecifying a NUMA configuration using the existing control options.
316e6db5999SRob Bradford
317e6db5999SRob Bradford### `Seccomp` support for MSHV backend
318e6db5999SRob Bradford
319e6db5999SRob BradfordThe `seccomp` rules have now been extended to support running against the MSHV
320e6db5999SRob Bradfordhypervisor backend.
321e6db5999SRob Bradford
322e6db5999SRob Bradford### Hotplug of `macvtap` devices
323e6db5999SRob Bradford
324e6db5999SRob BradfordHotplug of `macvtap` devices is now supported with the file descriptor for the
325e6db5999SRob Bradfordnetwork device if opened by the user and passed to the VMM. The `ch-remote`
326e6db5999SRob Bradfordtool supports this functionality when adding a network device.
327e6db5999SRob Bradford
328e6db5999SRob Bradford### Improved SGX support
329e6db5999SRob Bradford
330e6db5999SRob BradfordThe SGX support has been updated to match the latest Linux kernel support and
331e6db5999SRob Bradfordnow supports SGX provisioning and associating EPC sections to NUMA nodes.
332e6db5999SRob Bradford
333e6db5999SRob Bradford### Inflight tracking for `vhost-user` devices
334e6db5999SRob Bradford
335e6db5999SRob BradfordSupport for handling inflight tracking of I/O requests has been added to the
336e6db5999SRob Bradford`vhost-user` devices allowing recovery after device reconnection.
337e6db5999SRob Bradford
338e6db5999SRob Bradford### Notable bug fixes
339e6db5999SRob Bradford
340e6db5999SRob Bradford* VFIO PCI BAR calculation code now correctly handles I/O BARs (#2821).
341e6db5999SRob Bradford* The VMM side of `vhost-user` devices no longer advertise the
342e6db5999SRob Bradford  `VIRTIO_F_RING_PACKED` feature as they are not yet supported in the VMM
343e6db5999SRob Bradford(#2833).
344e6db5999SRob Bradford* On ARM64 VMs can be created with more than 16 vCPUs (#2763).
345e6db5999SRob Bradford
346e6db5999SRob Bradford### Contributors
347e6db5999SRob Bradford
348e6db5999SRob BradfordMany thanks to everyone who has contributed to our release:
349e6db5999SRob Bradford
350e6db5999SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
351e6db5999SRob Bradford* Arafatms <arafatms@outlook.com>
352e6db5999SRob Bradford* Bo Chen <chen.bo@intel.com>
353e6db5999SRob Bradford* Fei Li <lifei.shirley@bytedance.com>
354e6db5999SRob Bradford* Henry Wang <Henry.Wang@arm.com>
355e6db5999SRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
356e6db5999SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
357e6db5999SRob Bradford* Li Hangjing <lihangjing@bytedance.com>
358e6db5999SRob Bradford* Michael Zhao <michael.zhao@arm.com>
359e6db5999SRob Bradford* Muminul Islam <muislam@microsoft.com>
360e6db5999SRob Bradford* Rob Bradford <robert.bradford@intel.com>
361e6db5999SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
362e6db5999SRob Bradford* Wei Liu <liuwe@microsoft.com>
363e6db5999SRob Bradford* Yukiteru <wfly1998@sina.com>
364e6db5999SRob Bradford
3655ed8e01fSRob Bradford# v16.0
3665ed8e01fSRob Bradford
3675ed8e01fSRob BradfordThis release has been tracked through the [v16.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/19).
3685ed8e01fSRob Bradford
3695ed8e01fSRob Bradford### Improved live migration support
3705ed8e01fSRob Bradford
3715ed8e01fSRob 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.
3725ed8e01fSRob Bradford
3735ed8e01fSRob Bradford### Improved `vhost-user` support
3745ed8e01fSRob Bradford
3755ed8e01fSRob 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.
3765ed8e01fSRob Bradford
3775ed8e01fSRob Bradford### ARM64 ACPI and UEFI support
3785ed8e01fSRob Bradford
3795ed8e01fSRob 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.
3805ed8e01fSRob Bradford
3815ed8e01fSRob Bradford### Notable bug fixes
3825ed8e01fSRob Bradford
3835ed8e01fSRob Bradford* Activating fewer `virtio-net` queues than advertised is now supported. This appeared when using OVMF with an MQ enabled device (#2578).
3845ed8e01fSRob 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).
3855ed8e01fSRob Bradford* The KVM clock is now correctly handled during live migration / snapshot & restore.
3865ed8e01fSRob Bradford
3875ed8e01fSRob Bradford### Removed functionality
3885ed8e01fSRob Bradford
3895ed8e01fSRob BradfordThe following formerly deprecated features have been removed:
3905ed8e01fSRob Bradford
3915ed8e01fSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
3925ed8e01fSRob Bradford  binaries has been deprecated. When using direct boot users should configure
3935ed8e01fSRob Bradford  their kernel with `CONFIG_PVH=y`.
3945ed8e01fSRob Bradford
3955ed8e01fSRob Bradford### Contributors
3965ed8e01fSRob Bradford
3975ed8e01fSRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
3985ed8e01fSRob Bradford
3995ed8e01fSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
4005ed8e01fSRob Bradford* Bo Chen <chen.bo@intel.com>
4015ed8e01fSRob Bradford* Dayu Liu <liu.dayu@zte.com.cn>
4025ed8e01fSRob Bradford* Henry Wang <Henry.Wang@arm.com>
4035ed8e01fSRob Bradford* Jiachen Zhang <zhangjiachen.jaycee@bytedance.com>
4045ed8e01fSRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
4055ed8e01fSRob Bradford* Michael Zhao <michael.zhao@arm.com>
4065ed8e01fSRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
4075ed8e01fSRob Bradford* Muminul Islam <muislam@microsoft.com>
4085ed8e01fSRob Bradford* Ren Lei <ren.lei4@zte.com.cn>
4095ed8e01fSRob Bradford* Rob Bradford <robert.bradford@intel.com>
4105ed8e01fSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
4115ed8e01fSRob Bradford* Wei Liu <liuwe@microsoft.com>
4125ed8e01fSRob Bradford* Yi Wang <wang.yi59@zte.com.cn>
4135ed8e01fSRob Bradford
41430a01277SRob Bradford# v15.0
41530a01277SRob Bradford
41630a01277SRob BradfordThis release has been tracked through the [v15.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/18).
41730a01277SRob Bradford
41830a01277SRob BradfordHighlights for `cloud-hypervisor` version v15.0 include:
41930a01277SRob Bradford
42030a01277SRob Bradford### Version numbering and stability guarantees
42130a01277SRob Bradford
42230a01277SRob BradfordThis release is the first in a new version numbering scheme to represent that
42330a01277SRob Bradfordwe believe Cloud Hypervisor is maturing and entering a period of stability.
42430a01277SRob BradfordWith this new release we are beginning our new stability guarantees:
42530a01277SRob Bradford
42630a01277SRob Bradford* The API (including command line options) will not be removed or changed in a
42730a01277SRob Bradford  breaking way without a minimum of 2 releases notice. Where possible warnings
42830a01277SRob Bradford  will be given about the use of deprecated functionality and the deprecations
42930a01277SRob Bradford  will be documented in the release notes.
43030a01277SRob Bradford* Point releases will be made between individual releases where there are
43130a01277SRob Bradford  substantial bug fixes or security issues that need to be fixed.
43230a01277SRob Bradford
43330a01277SRob BradfordCurrently the following items are **not** guaranteed across updates:
43430a01277SRob Bradford
43530a01277SRob Bradford* Snapshot/restore is not supported across different versions
43630a01277SRob Bradford* Live migration is not supported across different versions
43730a01277SRob Bradford* The following features are considered experimental and may change
43830a01277SRob Bradford  substantially between releases: TDX, SGX.
43930a01277SRob Bradford
44030a01277SRob Bradford### Network device rate limiting
44130a01277SRob Bradford
44230a01277SRob BradfordBuilding on our existing support for rate limiting block activity the network
44330a01277SRob Bradforddevice also now supports rate limiting. Full details of the controls are in the
44430a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
44530a01277SRob Bradford
44630a01277SRob Bradford### Support for runtime control of `virtio-net` guest offload
44730a01277SRob Bradford
44830a01277SRob BradfordThe guest is now able to change the offload settings for the `virtio-net`
44930a01277SRob Bradforddevice. As well as providing a useful control this mitigates an issue in the
45030a01277SRob BradfordLinux kernel where the guest will attempt to reprogram the offload settings
45130a01277SRob Bradfordeven if they are not advertised as configurable (#2528).
45230a01277SRob Bradford
45330a01277SRob Bradford### `--api-socket` supports file descriptor parameter
45430a01277SRob Bradford
45530a01277SRob BradfordThe `--api-socket` can now take an `fd=` parameter to specify an existing file
45630a01277SRob Bradforddescriptor to use. This is particularly beneficial for frameworks that need to
45730a01277SRob Bradfordprogrammatically control Cloud Hypervisor.
45830a01277SRob Bradford
45930a01277SRob Bradford### Bug fixes
46030a01277SRob Bradford
46130a01277SRob Bradford* A workaround has been put in place to mitigate a Linux kernel issues that
46230a01277SRob Bradford  results in the CPU thread spinning at 100% when using `virtio-pmem` (#2277).
46330a01277SRob Bradford* PCI BARs are now correctly aligned removing the need for the guest to
46430a01277SRob Bradford  reprogram them (#1797,#1798)
46530a01277SRob Bradford* Handle TAP interface not being writable within virtio-net (due to the buffer
46630a01277SRob Bradford  exhaustion on the host) (#2517)
46730a01277SRob Bradford* The recommended Linux kernel is now v5.12.0 as it contains a fix that
46830a01277SRob Bradford  prevents snapshot & restore working (#2535)
46930a01277SRob Bradford
47030a01277SRob Bradford### Deprecations
47130a01277SRob Bradford
47230a01277SRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
47330a01277SRob Bradford
47430a01277SRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
47530a01277SRob Bradford  binaries has been deprecated. When using direct boot users should configure
47630a01277SRob Bradford  their kernel with `CONFIG_PVH=y`. Will be removed in v16.0.
47730a01277SRob Bradford
47830a01277SRob Bradford### Contributors
47930a01277SRob Bradford
48030a01277SRob BradfordMany thanks to everyone who has contributed to our release including some new faces.
48130a01277SRob Bradford
48230a01277SRob Bradford* Alyssa Ross <hi@alyssa.is>
48330a01277SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
48430a01277SRob Bradford* Bo Chen <chen.bo@intel.com>
48530a01277SRob Bradford* Gaelan Steele <gbs@canishe.com>
48630a01277SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
48730a01277SRob Bradford* Michael Zhao <michael.zhao@arm.com>
48830a01277SRob Bradford* Muminul Islam <muislam@microsoft.com>
48930a01277SRob Bradford* Rob Bradford <robert.bradford@intel.com>
49030a01277SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
49130a01277SRob Bradford* Wei Liu <liuwe@microsoft.com>
49230a01277SRob Bradford* William Douglas <william.douglas@intel.com>
49330a01277SRob Bradford
49430a01277SRob Bradford# v0.14.1
49530a01277SRob Bradford
49630a01277SRob BradfordBug fix release branched off the v0.14.0 release. The following bugs were fixed
49730a01277SRob Bradfordin this release:
49830a01277SRob Bradford
49930a01277SRob Bradford* CPU hotplug on Windows failed due to misreported CPU state information and
50030a01277SRob Bradford  the lack of HyperV CPUID bit enabled (#2437, #2449, #2436)
50130a01277SRob Bradford* A seccomp rule was missing that was triggered on CPU unplug (#2455)
50230a01277SRob Bradford* A bounds check in VIRTIO queue validation was erroneously generating
50330a01277SRob Bradford  DescriptorChainTooShort errors in certain circumstances (#2450, #2424)
50430a01277SRob Bradford
50540c63dcfSRob Bradford# v0.14.0
50640c63dcfSRob Bradford
50740c63dcfSRob BradfordThis release has been tracked through the [0.14.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/17).
50840c63dcfSRob Bradford
50940c63dcfSRob BradfordHighlights for `cloud-hypervisor` version 0.14.0 include:
51040c63dcfSRob Bradford
51140c63dcfSRob Bradford### Structured event monitoring
51240c63dcfSRob Bradford
51340c63dcfSRob BradfordA new option was added to the VMM `--event-monitor` which reports structured
51440c63dcfSRob Bradfordevents (JSON) over a file or file descriptor at key events in the lifecycle of
51540c63dcfSRob Bradfordthe VM. The list of events is limited at the moment but will be further
51640c63dcfSRob Bradfordextended over subsequent releases. The events exposed form part of the Cloud
51740c63dcfSRob BradfordHypervisor API surface.
51840c63dcfSRob Bradford
51940c63dcfSRob Bradford### MSHV improvements
52040c63dcfSRob Bradford
52140c63dcfSRob BradfordBasic support has been added for running Windows guests atop the MSHV
52240c63dcfSRob Bradfordhypervisor as an alternative to KVM and further improvements have been made to
52340c63dcfSRob Bradfordthe MSHV support.
52440c63dcfSRob Bradford
52540c63dcfSRob Bradford### Improved aarch64 platform
52640c63dcfSRob Bradford
52740c63dcfSRob BradfordThe aarch64 platform has been enhanced with more devices exposed to the running
52840c63dcfSRob BradfordVM including an enhanced serial UART.
52940c63dcfSRob Bradford
53040c63dcfSRob Bradford### Updated hotplug documentation
53140c63dcfSRob Bradford
53240c63dcfSRob BradfordThe documentation for the hotplug support has been updated to reflect the use
53340c63dcfSRob Bradfordof the `ch-remote` tool and to include details of `virtio-mem` based hotplug as
53440c63dcfSRob Bradfordwell as documenting hotplug of paravirtualised and VFIO devices.
53540c63dcfSRob Bradford
53640c63dcfSRob Bradford### PTY control for serial and `virtio-console`
53740c63dcfSRob Bradford
53840c63dcfSRob BradfordThe `--serial` and `--console` parameters can now direct the console to a PTY
53940c63dcfSRob Bradfordallowing programmatic control of the console from another process through the
54040c63dcfSRob BradfordPTY subsystem.
54140c63dcfSRob Bradford
54240c63dcfSRob Bradford### Block device rate limiting
54340c63dcfSRob Bradford
54440c63dcfSRob BradfordThe block device performance can now be constrained as part of the VM
54540c63dcfSRob Bradfordconfiguration allowing rate limiting. Full details of the controls are in the
54630a01277SRob Bradford[IO throttling documentation.](docs/io_throttling.md)
54740c63dcfSRob Bradford
54840c63dcfSRob Bradford
54940c63dcfSRob Bradford### Deprecations
55040c63dcfSRob Bradford
55140c63dcfSRob BradfordDeprecated features will be removed in a subsequent release and users should plan to use alternatives
55240c63dcfSRob Bradford
55340c63dcfSRob Bradford* Support for booting with the "LinuxBoot" protocol for ELF and `bzImage`
55440c63dcfSRob Bradford  binaries has been deprecated. When using direct boot users should configure
55540c63dcfSRob Bradford  their kernel with `CONFIG_PVH=y`.
55640c63dcfSRob Bradford
55740c63dcfSRob Bradford
55840c63dcfSRob Bradford### Contributors
55940c63dcfSRob Bradford
56040c63dcfSRob BradfordMany thanks to everyone who has contributed to our 0.14.0 release including
56140c63dcfSRob Bradfordsome new faces.
56240c63dcfSRob Bradford
56340c63dcfSRob BradfordBo Chen <chen.bo@intel.com>
56440c63dcfSRob BradfordHenry Wang <Henry.Wang@arm.com>
56540c63dcfSRob BradfordIggy Jackson <iggy@theiggy.com>
56640c63dcfSRob BradfordJiachen Zhang <zhangjiachen.jaycee@bytedance.com>
56740c63dcfSRob BradfordMichael Zhao <michael.zhao@arm.com>
56840c63dcfSRob BradfordMuminul Islam <muislam@microsoft.com>
56940c63dcfSRob BradfordPenny Zheng <Penny.Zheng@arm.com>
57040c63dcfSRob BradfordRob Bradford <robert.bradford@intel.com>
57140c63dcfSRob BradfordSebastien Boeuf <sebastien.boeuf@intel.com>
57240c63dcfSRob BradfordVineeth Pillai <viremana@linux.microsoft.com>
57340c63dcfSRob BradfordWei Liu <liuwe@microsoft.com>
57440c63dcfSRob BradfordWilliam Douglas <william.r.douglas@gmail.com>
57540c63dcfSRob BradfordZide Chen <zide.chen@intel.com>
57640c63dcfSRob Bradford
577f58b6f84SRob Bradford# v0.13.0
578f58b6f84SRob Bradford
579f58b6f84SRob BradfordThis release has been tracked through the [0.13.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/16).
580f58b6f84SRob Bradford
581f58b6f84SRob BradfordHighlights for `cloud-hypervisor` version 0.13.0 include:
582f58b6f84SRob Bradford
583f58b6f84SRob Bradford### Wider VFIO device support
584f58b6f84SRob Bradford
585f58b6f84SRob BradfordIt is now possible to use Cloud Hypervisor's VFIO support to passthrough PCI
586f58b6f84SRob Bradforddevices that do not support MSI or MSI-X and instead rely on INTx interrupts.
587f58b6f84SRob BradfordMost notably this widens the support to most NVIDIA cards with the proprietary
588f58b6f84SRob Bradforddrivers.
589f58b6f84SRob Bradford
59040c63dcfSRob Bradford### Improved huge page support
591f58b6f84SRob Bradford
592f58b6f84SRob BradfordThrough the addition of `hugepage_size` on `--memory` it is now possible to
593f58b6f84SRob Bradfordspecify the desired size of the huge pages used when allocating the guest
594f58b6f84SRob Bradfordmemory. The user is required to ensure they have sufficient pages of the
595f58b6f84SRob Bradforddesired size in their pool.
596f58b6f84SRob Bradford
597f58b6f84SRob Bradford### MACvTAP support
598f58b6f84SRob Bradford
599f58b6f84SRob BradfordIt is now possible to provide file descriptors using the `fd` parameter to
600f58b6f84SRob Bradford`--net` which point at TAP devices that have already been opened by the user.
601f58b6f84SRob BradfordThis aids integration with `libvirt` but also permits the use of MACvTAP
602f58b6f84SRob Bradfordsupport. This is documented in dedicated [macvtap documentation](docs/macvtap-bridge.md).
603f58b6f84SRob Bradford
604f58b6f84SRob Bradford### VHD disk image support
605f58b6f84SRob Bradford
606f58b6f84SRob BradfordIt is now possible to use VHD (fixed) disk images as well as QCOWv2 and raw
607f58b6f84SRob Bradforddisk image with Cloud Hypervisor.
608f58b6f84SRob Bradford
609f58b6f84SRob Bradford### Improved Virtio device threading
610f58b6f84SRob Bradford
611f58b6f84SRob BradfordDevice threads are now derived from the main VMM thread which allows more
612f58b6f84SRob Bradfordrestrictive seccomp filters to be applied to them. The threads also have a
613f58b6f84SRob Bradfordpredictable name derived from the device id.
614f58b6f84SRob Bradford
615f58b6f84SRob Bradford### Clean shutdown support via synthetic power button
616f58b6f84SRob Bradford
617f58b6f84SRob BradfordIt is now possible to request that the guest VM shut itself down by triggering
618f58b6f84SRob Bradforda synthetic ACPI power button press from the VMM. If the guest is listening for
619f58b6f84SRob Bradfordsuch an event (e.g. using systemd) then it will process the event and cleanly
620f58b6f84SRob Bradfordshut down. This functionality is exposed through the HTTP API and can be
621f58b6f84SRob Bradfordtriggered via `ch-remote --api-socket=<API socket> power-button`.
622f58b6f84SRob Bradford
623f58b6f84SRob Bradford### Contributors
624f58b6f84SRob Bradford
625f58b6f84SRob BradfordMany thanks to everyone who has contributed to our 0.13.0 release including
626f58b6f84SRob Bradfordsome new faces.
627f58b6f84SRob Bradford
628f58b6f84SRob Bradford* Bo Chen <chen.bo@intel.com>
629f58b6f84SRob Bradford* Mikko Ylinen <mikko.ylinen@intel.com>
630f58b6f84SRob Bradford* Muminul Islam <muislam@microsoft.com>
631f58b6f84SRob Bradford* Rob Bradford <robert.bradford@intel.com>
632f58b6f84SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
633f58b6f84SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
634f58b6f84SRob Bradford* Vineeth Pillai <viremana@linux.microsoft.com>
635f58b6f84SRob Bradford* Wei Liu <liuwe@microsoft.com>
636f58b6f84SRob Bradford* William Douglas <william.r.douglas@gmail.com>
637f58b6f84SRob Bradford* Xie Yongji <xieyongji@bytedance.com>
638f58b6f84SRob Bradford
639d42b5084SRob Bradford# v0.12.0
640d42b5084SRob Bradford
641d42b5084SRob BradfordThis release has been tracked through the [0.12.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/15).
642d42b5084SRob Bradford
643d42b5084SRob BradfordHighlights for `cloud-hypervisor` version 0.12.0 include:
644d42b5084SRob Bradford
645d42b5084SRob Bradford### ARM64 enhancements
646d42b5084SRob Bradford
647d42b5084SRob BradfordThe use of `--watchdog` is now fully supported as is the ability to reboot the
648d42b5084SRob BradfordVM from within the guest when running Cloud Hypervisor on an ARM64 system.
649d42b5084SRob Bradford
650d42b5084SRob Bradford### Removal of `vhost-user-net` and `vhost-user-block` self spawning
651d42b5084SRob Bradford
652d42b5084SRob BradfordIn order to use `vhost-user-net` or `vhost-user-block` backends the user is now
653d42b5084SRob Bradfordresponsible for starting the backend and providing the socket for the VMM to
654d42b5084SRob Bradforduse. This functionality was deprecated in the last release and how now been
655d42b5084SRob Bradfordremoved.
656d42b5084SRob Bradford
657d42b5084SRob Bradford### Migration of `vhost-user-fs` backend
658d42b5084SRob Bradford
659d42b5084SRob BradfordThe `vhost-user-fs` backend is no longer included in Cloud Hypervisor and it is
660d42b5084SRob Bradfordinstead hosted in [it's own
661d42b5084SRob Bradfordrepository](https://gitlab.com/virtio-fs/virtiofsd-rs)
662d42b5084SRob Bradford
663d42b5084SRob Bradford### Enhanced "info" API
664d42b5084SRob Bradford
665d42b5084SRob BradfordThe `vm.info` HTTP API endpoint has been extended to include the details of the
666d42b5084SRob Bradforddevices used by the VM including any VFIO devices used.
667d42b5084SRob Bradford
668d42b5084SRob Bradford### Contributors
669d42b5084SRob Bradford
670d42b5084SRob BradfordMany thanks to everyone who has contributed to our 0.12.0 release:
671d42b5084SRob Bradford
672d42b5084SRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
673d42b5084SRob Bradford* Julio Montes <julio.montes@intel.com>
674d42b5084SRob Bradford* Michael Zhao <michael.zhao@arm.com>
675d42b5084SRob Bradford* Muminul Islam <muislam@microsoft.com>
676d42b5084SRob Bradford* Rob Bradford <robert.bradford@intel.com>
677d42b5084SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
678d42b5084SRob Bradford* Wei Liu <liuwe@microsoft.com>
679d42b5084SRob Bradford
6807dcd3affSRob Bradford# v0.11.0
6817dcd3affSRob Bradford
6827dcd3affSRob BradfordThis release has been tracked through the [0.11.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/14).
6837dcd3affSRob Bradford
6847dcd3affSRob BradfordHighlights for `cloud-hypervisor` version 0.11.0 include:
6857dcd3affSRob Bradford
6867dcd3affSRob Bradford### `io_uring` support by default for `virtio-block`
6877dcd3affSRob Bradford
6887dcd3affSRob BradfordProvided that the host OS supports it (Linux kernel 5.8+) then `io_uring` will
6897dcd3affSRob Bradfordbe used for a significantly higher performance block device.
6907dcd3affSRob Bradford
6917dcd3affSRob Bradford### Windows Guest Support
6927dcd3affSRob Bradford
6937dcd3affSRob BradfordThis is the first release where we officially support Windows running as a
6947dcd3affSRob Bradfordguest. Full details of how to setup the image and run Cloud Hypervisor with a
6957dcd3affSRob BradfordWindows guest can be found in the dedicated [Windows
6967dcd3affSRob Bradforddocumentation](docs/windows.md).
6977dcd3affSRob Bradford
6987dcd3affSRob Bradford### `vhost-user` "Self Spawning" Deprecation
6997dcd3affSRob Bradford
7007dcd3affSRob BradfordAutomatically spawning a `vhost-user-net` or `vhost-user-block` backend is now
7017dcd3affSRob Bradforddeprecated. Users of this functionality will receive a warning and should make
7027dcd3affSRob Bradfordadjustments. The functionality will be removed in the next release.
7037dcd3affSRob Bradford
704*d00eb4aaSRob Bradford### `virtio-mmio` Removal
7057dcd3affSRob Bradford
7067dcd3affSRob BradfordSupport for using the `virtio-mmio` transport, rather than using PCI, has been
7077dcd3affSRob Bradfordremoved. This has been to simplify the code and significantly
7087dcd3affSRob Bradfordreduce the testing burden of the project.
7097dcd3affSRob Bradford
7107dcd3affSRob Bradford### Snapshot/Restore support for ARM64
7117dcd3affSRob Bradford
7127dcd3affSRob BradfordWhen running on the ARM64 architecture snapshot and restore has now been
7137dcd3affSRob Bradfordimplemented.
7147dcd3affSRob Bradford
7157dcd3affSRob Bradford### Improved Linux Boot Time
7167dcd3affSRob Bradford
7177dcd3affSRob BradfordThe time to boot the Linux kernel has been significantly improved by the
7187dcd3affSRob Bradfordidentifying some areas of delays around PCI bus probing, IOAPIC programming and
7197dcd3affSRob BradfordMPTABLE issues. Full details can be seen in #1728.
7207dcd3affSRob Bradford
7217dcd3affSRob Bradford### `SIGTERM/SIGINT` Interrupt Signal Handling
7227dcd3affSRob Bradford
7237dcd3affSRob BradfordWhen the VMM process receives the `SIGTERM` or `SIGINT` signals then it will
7247dcd3affSRob Bradfordtrigger the VMM process to cleanly deallocate resources before exiting. The
7257dcd3affSRob Bradfordguest VM will not be cleanly shutdown but the VMM process will clean up its
7267dcd3affSRob Bradfordresources.
7277dcd3affSRob Bradford
7287dcd3affSRob Bradford### Default Log Level Changed
7297dcd3affSRob Bradford
7307dcd3affSRob BradfordThe default logging level was changed to include warnings which should make it
7317dcd3affSRob Bradfordeasier to see potential issues. New [logging
7327dcd3affSRob Bradforddocumentation](docs/logging) was also added.
7337dcd3affSRob Bradford
7347dcd3affSRob Bradford### New `--balloon` Parameter Added
7357dcd3affSRob Bradford
7367dcd3affSRob BradfordControl of the setup of `virtio-balloon` has been moved from `--memory` to its
7377dcd3affSRob Bradfordown dedicated parameter. This makes it easier to add more balloon specific
7387dcd3affSRob Bradfordcontrols without overloading `--memory`.
7397dcd3affSRob Bradford
7407dcd3affSRob Bradford### Experimental `virtio-watchdog` Support
7417dcd3affSRob Bradford
7427dcd3affSRob BradfordSupport for using a new `virtio-watchdog` has been added which can be used to
7437dcd3affSRob Bradfordhave the VMM reboot the guest if the guest userspace fails to ping the
7447dcd3affSRob Bradfordwatchdog. This is enabled with `--watchdog` and requires kernel support.
7457dcd3affSRob Bradford
7467dcd3affSRob Bradford### Notable Bug Fixes
7477dcd3affSRob Bradford
7487dcd3affSRob Bradford* MTRR bit was missing from CPUID advertised to guest
7497dcd3affSRob Bradford* "Return" key could not be used under `CMD.EXE` under Windows SAC (#1170)
7507dcd3affSRob Bradford* CPU identification string is now exposed to the guest
7517dcd3affSRob Bradford* `virtio-pmem` with`discard_writes=on` no longer marks the guest memory as
7527dcd3affSRob Bradford  read only so avoids excessive VM exits (#1795)
7537dcd3affSRob Bradford* PCI device hotplug after an unplug was fixed (#1802)
7547dcd3affSRob Bradford* When using the ACPI method to resize the guest memory the full reserved size
7557dcd3affSRob Bradford  can be used (#1803)
7567dcd3affSRob Bradford* Snapshot and restore followed by a second snapshot and restore now works
7577dcd3affSRob Bradford  correctly
7587dcd3affSRob Bradford* Snapshot and restore of VMs with more than 2GiB in one region now work
7597dcd3affSRob Bradford  correctly
7607dcd3affSRob Bradford
7617dcd3affSRob Bradford### Contributors
7627dcd3affSRob Bradford
7637dcd3affSRob BradfordMany thanks to everyone who has contributed to our 0.11.0 release including some new faces.
7647dcd3affSRob Bradford
7657dcd3affSRob Bradford* Anatol Belski <anbelski@linux.microsoft.com>
7667dcd3affSRob Bradford* Bo Chen <chen.bo@intel.com>
7677dcd3affSRob Bradford* Daniel Verkamp <dverkamp@chromium.org>
7687dcd3affSRob Bradford* Henry Wang <Henry.Wang@arm.com>
7697dcd3affSRob Bradford* Hui Zhu <teawater@antfin.com>
7707dcd3affSRob Bradford* Jiangbo Wu <jiangbo.wu@intel.com>
7717dcd3affSRob Bradford* Josh Soref <jsoref@users.noreply.github.com>
7727dcd3affSRob Bradford* Julio Montes <julio.montes@intel.com>
7737dcd3affSRob Bradford* Michael Zhao <michael.zhao@arm.com>
7747dcd3affSRob Bradford* Muminul Islam <muislam@microsoft.com>
7757dcd3affSRob Bradford* pierwill <19642016+pierwill@users.noreply.github.com>
7767dcd3affSRob Bradford* Praveen Paladugu <prapal@microsoft.com>
7777dcd3affSRob Bradford* Rob Bradford <robert.bradford@intel.com>
7787dcd3affSRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
7797dcd3affSRob Bradford* Wei Liu <liuwe@microsoft.com>
7807dcd3affSRob Bradford
7817dcd3affSRob Bradford
782198bd551SRob Bradford# v0.10.0
783198bd551SRob Bradford
784198bd551SRob BradfordThis release has been tracked through the [0.10.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/13).
785198bd551SRob Bradford
786198bd551SRob BradfordHighlights for `cloud-hypervisor` version 0.10.0 include:
787198bd551SRob Bradford
788198bd551SRob Bradford### `virtio-block` Support for Multiple Descriptors
789198bd551SRob Bradford
790198bd551SRob BradfordSome `virtio-block` device drivers may generate requests with multiple descriptors and support has been added for those drivers.
791198bd551SRob Bradford
792198bd551SRob Bradford### Memory Zones
793198bd551SRob Bradford
794198bd551SRob BradfordSupport has been added for fine grained control of memory allocation for the guest. This includes controlling the backing of sections of guest memory, assigning to specific host NUMA nodes and assigning memory and vCPUs to specific memory nodes inside the guest. Full details of this can be found in the [memory documentation](docs/memory.md).
795198bd551SRob Bradford
796198bd551SRob Bradford### `Seccomp` Sandbox Improvements
797198bd551SRob Bradford
798198bd551SRob 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`.
799198bd551SRob Bradford
800198bd551SRob Bradford### Preliminary KVM HyperV Emulation Control
801198bd551SRob Bradford
802198bd551SRob 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.
803198bd551SRob Bradford
804198bd551SRob Bradford### Notable Bug Fixes
805198bd551SRob Bradford
806198bd551SRob Bradford- When using `ch-remote` to resize the VM parameter now accepts the standard sizes suffices (#1596)
807198bd551SRob Bradford- `cloud-hypervisor` no longer panics when started with `--memory hotplug_method=virtio-mem` and no `hotplug_size` (#1564)
808198bd551SRob Bradford- After a reboot memory can remove when using `--memory hotplug_method=virtio-mem` (#1593)
809198bd551SRob Bradford- `--version` shows the version for released binaries (#1669)
810198bd551SRob Bradford- Errors generated by worker threads for `virtio` devices are now printed out (#1551)
811198bd551SRob Bradford
812198bd551SRob Bradford### Contributors
813198bd551SRob Bradford
814198bd551SRob BradfordMany thanks to everyone who has contributed to our 0.10.0 release including some new faces.
815198bd551SRob Bradford
816198bd551SRob Bradford* Alyssa Ross <hi@alyssa.is>
817198bd551SRob Bradford* Amey Narkhede <ameynarkhede02@gmail.com>
818198bd551SRob Bradford* Anatol Belski <ab@php.net>
819198bd551SRob Bradford* Bo Chen <chen.bo@intel.com>
820198bd551SRob Bradford* Hui Zhu <teawater@antfin.com>
821198bd551SRob Bradford* Michael Zhao <michael.zhao@arm.com>
822198bd551SRob Bradford* Muminul Islam <muislam@microsoft.com>
823198bd551SRob Bradford* Rob Bradford <robert.bradford@intel.com>
824198bd551SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
825198bd551SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
826198bd551SRob Bradford* Wei Liu <liuwe@microsoft.com>
827198bd551SRob Bradford
828d714cf81SRob Bradford# v0.9.0
829d714cf81SRob Bradford
830d714cf81SRob BradfordThis release has been tracked through the [0.9.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/12).
831d714cf81SRob Bradford
832d714cf81SRob BradfordHighlights for `cloud-hypervisor` version 0.9.0 include:
833d714cf81SRob Bradford
834d714cf81SRob Bradford### `io_uring` Based Block Device Support
835d714cf81SRob Bradford
836d714cf81SRob 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.
837d714cf81SRob Bradford
838d714cf81SRob Bradford### Block and Network Device Statistics
839d714cf81SRob Bradford
840d714cf81SRob 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.
841d714cf81SRob Bradford
842d714cf81SRob Bradford### HTTP API Responses
843d714cf81SRob Bradford
844d714cf81SRob BradfordThe HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
845d714cf81SRob Bradford
846d714cf81SRob Bradford### CPU Topology
847d714cf81SRob Bradford
848d714cf81SRob 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.
849d714cf81SRob Bradford
850d714cf81SRob Bradford### Release Build Optimization
851d714cf81SRob Bradford
852d714cf81SRob BradfordOur release build is now built with LTO (*Link Time Optimization*) which results in a ~20% reduction in the binary size.
853d714cf81SRob Bradford
854d714cf81SRob Bradford### Hypervisor Abstraction
855d714cf81SRob Bradford
856d714cf81SRob BradfordA new abstraction has been introduced, in the form of a `hypervisor` crate so as to enable the support of additional hypervisors beyond `KVM`.
857d714cf81SRob Bradford
858d714cf81SRob Bradford### Snapshot/Restore Improvements
859d714cf81SRob Bradford
860d714cf81SRob 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.
861d714cf81SRob Bradford
862d714cf81SRob Bradford### Virtio Memory Ballooning Support
863d714cf81SRob Bradford
864d714cf81SRob 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.
865d714cf81SRob Bradford
866d714cf81SRob Bradford### Enhancements to ARM64 Support
867d714cf81SRob Bradford
868d714cf81SRob 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.
869d714cf81SRob Bradford
870d714cf81SRob Bradford### Intel SGX Support
871d714cf81SRob Bradford
872d714cf81SRob 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).
873d714cf81SRob Bradford
874d714cf81SRob Bradford### `Seccomp` Sandbox Improvements
875d714cf81SRob Bradford
876d714cf81SRob 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.
877d714cf81SRob Bradford
878d714cf81SRob Bradford### Notable Bug Fixes
879d714cf81SRob Bradford
880d714cf81SRob Bradford* Our `virtio-vsock` implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
881d714cf81SRob Bradford* CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
882d714cf81SRob 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).
883d714cf81SRob Bradford* `virtio-mmio` based devices are now more widely tested (#275).
884d714cf81SRob Bradford* Multiple issues have been fixed with virtio device configuration (#1217)
885d714cf81SRob Bradford* Console input was wrongly consumed by both `virtio-console` and the serial. (#1521)
886d714cf81SRob Bradford
887d714cf81SRob Bradford### Contributors
888d714cf81SRob Bradford
889d714cf81SRob BradfordMany thanks to everyone who has contributed to our 0.9.0 release including some new faces.
890d714cf81SRob Bradford
891d714cf81SRob Bradford* Anatol Belski <ab@php.net>
892d714cf81SRob Bradford* Bo Chen <chen.bo@intel.com>
893d714cf81SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
894d714cf81SRob Bradford* Henry Wang <Henry.Wang@arm.com>
895d714cf81SRob Bradford* Howard Zhang <howard.zhang@arm.com>
896d714cf81SRob Bradford* Hui Zhu <teawater@antfin.com>
897d714cf81SRob Bradford* Jianyong Wu <jianyong.wu@arm.com>
898d714cf81SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
899d714cf81SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
900d714cf81SRob Bradford* Michael Zhao <michael.zhao@arm.com>
901d714cf81SRob Bradford* Muminul Islam <muislam@microsoft.com>
902d714cf81SRob Bradford* Praveen Paladugu <prapal@microsoft.com>
903d714cf81SRob Bradford* Ricardo Koller <ricarkol@gmail.com>
904d714cf81SRob Bradford* Rob Bradford <robert.bradford@intel.com>
905d714cf81SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
906d714cf81SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
907d714cf81SRob Bradford* Stefano Garzarella <sgarzare@redhat.com>
908d714cf81SRob Bradford* Wei Liu <liuwe@microsoft.com>
909d714cf81SRob Bradford
910d714cf81SRob Bradford
91152b83969SRob Bradford# v0.8.0
91252b83969SRob Bradford
91352b83969SRob BradfordThis release has been tracked through the [0.8.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/10).
91452b83969SRob Bradford
91552b83969SRob BradfordHighlights for `cloud-hypervisor` version 0.8.0 include:
91652b83969SRob Bradford
91752b83969SRob Bradford### Experimental Snapshot and Restore Support
91852b83969SRob Bradford
91952b83969SRob BradfordThis release includes the first version of the snapshot and restore feature.
92052b83969SRob BradfordThis allows a VM to be paused and then subsequently snapshotted. At a later
92152b83969SRob Bradfordpoint that snapshot may be restored into a new running VM identical to the
92252b83969SRob Bradfordoriginal VM at the point it was paused.
92352b83969SRob Bradford
92452b83969SRob BradfordThis feature can be used for offline migration from one VM host to another, to
92552b83969SRob Bradfordallow the upgrading or rebooting of the host machine transparently to the guest
92652b83969SRob Bradfordor for templating the VM. This is an experimental feature and cannot be used on
92752b83969SRob Bradforda VM using passthrough (VFIO) devices. Issues with SMP have also been observed
92852b83969SRob Bradford(#1176).
92952b83969SRob Bradford
93052b83969SRob Bradford### Experimental ARM64 Support
93152b83969SRob Bradford
93252b83969SRob BradfordIncluded in this release is experimental support for running on ARM64.
93352b83969SRob BradfordCurrently only `virtio-mmio` devices and a serial port are supported. Full
93452b83969SRob Bradforddetails can be found in the [ARM64 documentation](docs/arm64.md).
93552b83969SRob Bradford
93652b83969SRob Bradford### Support for Using 5-level Paging in Guests
93752b83969SRob Bradford
93852b83969SRob BradfordIf the host supports it the guest is now enabled for 5-level paging (aka LA57).
93952b83969SRob BradfordThis works when booting the Linux kernel with a vmlinux, bzImage or firmware
94052b83969SRob Bradfordbased boot. However booting an ELF kernel built with `CONFIG_PVH=y` does not
94152b83969SRob Bradfordwork due to current limitations in the PVH boot process.
94252b83969SRob Bradford
94352b83969SRob Bradford### Virtio Device Interrupt Suppression for Network Devices
94452b83969SRob Bradford
94552b83969SRob BradfordWith `virtio-net` and `vhost-user-net` devices the guest can suppress
94652b83969SRob Bradfordinterrupts from the VMM by using the `VIRTIO_RING_F_EVENT_IDX` feature. This
94752b83969SRob Bradfordcan lead to an improvement in performance by reducing the number of interrupts
94852b83969SRob Bradfordthe guest must service.
94952b83969SRob Bradford
95052b83969SRob Bradford### `vhost_user_fs` Improvements
95152b83969SRob Bradford
95252b83969SRob BradfordThe implementation in Cloud Hypervisor of the VirtioFS server now supports sandboxing itself with `seccomp`.
95352b83969SRob Bradford
95452b83969SRob Bradford
95552b83969SRob Bradford### Notable Bug Fixes
95652b83969SRob Bradford
95752b83969SRob Bradford* VMs that have not yet been booted can now be deleted (#1110).
95852b83969SRob Bradford* By creating the `tap` device ahead of creating the VM it is not required to
95952b83969SRob Bradford  run the `cloud-hypervisor` binary with `CAP_NET_ADMIN` (#1273).
96052b83969SRob Bradford* Block I/O via `virtio-block` or `vhost-user-block` now correctly adheres to
96152b83969SRob Bradford  the specification and synchronizes to the underlying filesystem as required
96252b83969SRob Bradford  based on guest feature negotiation. This avoids potential data loss (#399,
96352b83969SRob Bradford  #1216).
96452b83969SRob Bradford* When booting with a large number of vCPUs then the ACPI table would be
96552b83969SRob Bradford  overwritten by the SMP `MPTABLE`. When compiled with the `acpi` feature the
96652b83969SRob Bradford  `MPTABLE` will no longer be generated (#1132).
96752b83969SRob Bradford* Shutting down VMs that have been paused is now supported (#816).
96852b83969SRob Bradford* Created socket files are deleted on shutdown (#1083).
96952b83969SRob Bradford* Trying to use passthrough devices (VFIO) will be rejected on `mmio` builds
97052b83969SRob Bradford  (#751).
97152b83969SRob Bradford
97252b83969SRob Bradford### Command Line and API Changes
97352b83969SRob Bradford
97452b83969SRob BradfordThis is non exhaustive list of HTTP API and command line changes:
97552b83969SRob Bradford
97652b83969SRob Bradford* All user visible socket parameters are now consistently called `socket`
97752b83969SRob Bradford  rather than `sock` in some cases.
97852b83969SRob Bradford* The `ch-remote` tool now shows any error message generated by the VMM
97952b83969SRob Bradford* The `wce` parameter has been removed from `--disk` as the feature is always
98052b83969SRob Bradford  offered for negotiation.
98152b83969SRob Bradford* `--net` has gained a `host_mac` option that allows the setting of the MAC
98252b83969SRob Bradford  address for the `tap` device on the host.
98352b83969SRob Bradford
98452b83969SRob Bradford### Contributors
98552b83969SRob Bradford
98652b83969SRob BradfordMany thanks to everyone who has contributed to our 0.8.0 release including some new faces.
98752b83969SRob Bradford
98852b83969SRob Bradford* Anatol Belski <ab@php.net>
98952b83969SRob Bradford* Arron Wang <arron.wang@intel.com>
99052b83969SRob Bradford* Bo Chen <chen.bo@intel.com>
99152b83969SRob Bradford* Dr. David Alan Gilbert <dgilbert@redhat.com>
99252b83969SRob Bradford* Henry Wang <Henry.Wang@arm.com>
99352b83969SRob Bradford* Hui Zhu <teawater@antfin.com>
99452b83969SRob Bradford* LiYa'nan <oliverliyn@gmail.com>
99552b83969SRob Bradford* Michael Zhao <michael.zhao@arm.com>
99652b83969SRob Bradford* Rob Bradford <robert.bradford@intel.com>
99752b83969SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
99852b83969SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
99952b83969SRob Bradford* Sergio Lopez <slp@redhat.com>
100052b83969SRob Bradford
100196be8229SRob Bradford# v0.7.0
100296be8229SRob Bradford
100396be8229SRob BradfordThis release has been tracked through the [0.7.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
100496be8229SRob Bradford
100596be8229SRob BradfordHighlights for `cloud-hypervisor` version 0.7.0 include:
100696be8229SRob Bradford
100796be8229SRob Bradford### Block, Network, Persistent Memory (PMEM), VirtioFS and Vsock hotplug
100896be8229SRob Bradford
100996be8229SRob BradfordFurther to our effort to support modifying a running guest we now support
101096be8229SRob Bradfordhotplug and unplug of the following virtio backed devices: block, network,
101196be8229SRob Bradfordpmem, virtio-fs and vsock. This functionality is available on the (default) PCI
10125c3f4dbeSJosh Sorefbased transport and is exposed through the HTTP API. The `ch-remote` utility
101396be8229SRob Bradfordprovides a CLI for adding or removing these device types after the VM has
101496be8229SRob Bradfordbooted. User can use the `id` parameter on the devices to choose names for
101596be8229SRob Bradforddevices to ease their removal.
101696be8229SRob Bradford
101796be8229SRob Bradford### Alternative `libc` Support
101896be8229SRob Bradford
101996be8229SRob BradfordCloud Hypervisor can now be compiled with the `musl` C library and this release
102096be8229SRob Bradfordcontains a static binary compiled using that toolchain.
102196be8229SRob Bradford
102296be8229SRob Bradford### Multithreaded Multi Queued `vhost-user` Backends
102396be8229SRob Bradford
102496be8229SRob BradfordThe `vhost-user` backends for network and block support that are shipped by
102596be8229SRob BradfordCloud Hypervisor have been enhanced to support multiple threads and queues to
102696be8229SRob Bradfordimprove throughput. These backends are used automatically if `vhost_user=true`
102796be8229SRob Bradfordis passed when the devices are created.
102896be8229SRob Bradford
102996be8229SRob Bradford### Initial RamFS Support
103096be8229SRob Bradford
103196be8229SRob BradfordBy passing the `--initramfs` command line option the user can specify a file to
103296be8229SRob Bradfordbe loaded into the guest memory to be used as the kernel initial filesystem.
103396be8229SRob BradfordThis is usually used to allow the loading of drivers needed to be able to
103496be8229SRob Bradfordaccess the real root filesystem but it can also be used standalone for a very
103596be8229SRob Bradfordminimal image.
103696be8229SRob Bradford
103796be8229SRob Bradford### Alternative Memory Hotplug: `virtio-mem`
103896be8229SRob Bradford
103996be8229SRob BradfordAs well as supporting ACPI based hotplug Cloud Hypervisor now supports using
104096be8229SRob Bradfordthe `virtio-mem` hotplug alternative. This can be controlled by the
104196be8229SRob Bradford`hotplug_method` parameter on the `--memory` command line option. It currently
104296be8229SRob Bradfordrequires kernel patches to be able to support it.
104396be8229SRob Bradford
104496be8229SRob Bradford### `Seccomp` Sandboxing
104596be8229SRob Bradford
104696be8229SRob BradfordCloud Hypervisor now has support for restricting the system calls that the
104796be8229SRob Bradfordprocess can use via the `seccomp` security API. This on by default and is
104896be8229SRob Bradfordcontrolled by the `--seccomp` command line option.
104996be8229SRob Bradford
105096be8229SRob Bradford### Updated Distribution Support
105196be8229SRob Bradford
105296be8229SRob BradfordWith the release of Ubuntu 20.04 we have added that to the list of supported
105396be8229SRob Bradforddistributions and is part of our regular testing programme.
105496be8229SRob Bradford
105596be8229SRob Bradford### Command Line and API Changes
105696be8229SRob Bradford
105796be8229SRob BradfordThis is non exhaustive list of HTTP API and command line changes
105896be8229SRob Bradford
105996be8229SRob Bradford* New `id` fields added for devices to allow them to be named to ease removal.
106096be8229SRob Bradford  If no name is specified the VMM chooses one.
106196be8229SRob Bradford* Use `--memory`'s `shared` and `hugepages` controls for determining backing
106296be8229SRob Bradford  memory instead of providing a path.
106396be8229SRob Bradford* The `--vsock` parameter only takes one device as the Linux kernel only
106496be8229SRob Bradford  supports a single Vsock device. The REST API has removed the vector for this
106596be8229SRob Bradford  option and replaced it with a single optional field.
106696be8229SRob Bradford* There is enhanced validation of the command line and API provided
106796be8229SRob Bradford  configurations to ensure that the provided options are compatible e.g. that
106896be8229SRob Bradford  shared memory is in use if any attempt is made to used a `vhost-user` backed
106996be8229SRob Bradford  device.
107096be8229SRob Bradford* `ch-remote` has added `add-disk`, `add-fs`, `add-net`, `add-pmem` and
107196be8229SRob Bradford  `add-vsock` subcommands. For removal `remove-device` is used. The REST API
107296be8229SRob Bradford  has appropriate new HTTP endpoints too.
107396be8229SRob Bradford* Specifying a `size` with `--pmem` is no longer required and instead the size
107496be8229SRob Bradford  will be obtained from the file. A `discard_writes` option has also been added
107596be8229SRob Bradford  to provide the equivalent of a read-only file.
107696be8229SRob Bradford* The parameters to `--block-backend` have been changed to more closely align
107796be8229SRob Bradford  with those used by `--disk`.
107896be8229SRob Bradford
107996be8229SRob Bradford### Contributors
108096be8229SRob Bradford
108196be8229SRob BradfordMany thanks to everyone who has contributed to our 0.7.0 release including some new faces.
108296be8229SRob Bradford
108396be8229SRob Bradford* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
108496be8229SRob Bradford* Bo Chen <chen.bo@intel.com>
108596be8229SRob Bradford* Cathy Zhang <cathy.zhang@intel.com>
108696be8229SRob Bradford* Damjan Georgievski <gdamjan@gmail.com>
108796be8229SRob Bradford* Dean Sheather <dean@coder.com>
108896be8229SRob Bradford* Eryu Guan <eguan@linux.alibaba.com>
108996be8229SRob Bradford* Hui Zhu <teawater@antfin.com>
109096be8229SRob Bradford* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
109196be8229SRob Bradford* Martin Xu <martin.xu@intel.com>
109296be8229SRob Bradford* Muminul Islam <muislam@microsoft.com>
109396be8229SRob Bradford* Rob Bradford <robert.bradford@intel.com>
109496be8229SRob Bradford* Samuel Ortiz <sameo@linux.intel.com>
109596be8229SRob Bradford* Sebastien Boeuf <sebastien.boeuf@intel.com>
109696be8229SRob Bradford* Sergio Lopez <slp@redhat.com>
109796be8229SRob Bradford* Yang Zhong <yang.zhong@intel.com>
109896be8229SRob Bradford* Yi Sun <yi.y.sun@linux.intel.com>
109996be8229SRob Bradford
110003cb26ccSSamuel Ortiz# v0.6.0
110103cb26ccSSamuel Ortiz
110203cb26ccSSamuel OrtizThis release has been tracked through the [0.6.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/7).
110303cb26ccSSamuel Ortiz
110403cb26ccSSamuel OrtizHighlights for `cloud-hypervisor` version 0.6.0 include:
110503cb26ccSSamuel Ortiz
110603cb26ccSSamuel Ortiz### Directly Assigned Devices Hotplug
110703cb26ccSSamuel Ortiz
110803cb26ccSSamuel OrtizWe continued our efforts around supporting dynamically changing the guest
110903cb26ccSSamuel Ortizresources. After adding support for CPU and memory hotplug, Cloud Hypervisor
111003cb26ccSSamuel Ortiznow supports hot plugging and hot unplugging directly assigned (a.k.a. `VFIO`)
111103cb26ccSSamuel Ortizdevices into an already running guest. This closes the features gap for
111203cb26ccSSamuel Ortizproviding a complete Kata Containers workloads support with Cloud Hypervisor.
111303cb26ccSSamuel Ortiz
111403cb26ccSSamuel Ortiz### Shared Filesystem Improvements
111503cb26ccSSamuel Ortiz
111603cb26ccSSamuel OrtizWe enhanced our shared filesystem support through many `virtio-fs` improvements.
111703cb26ccSSamuel OrtizBy adding support for DAX, parallel processing of multiple requests, `FS_IO`,
111803cb26ccSSamuel Ortiz`LSEEK` and the `MMIO` virtio transport layer to our `vhost_user_fs` daemon, we
111903cb26ccSSamuel Ortizimproved our filesystem sharing performance, but also made it more stable and
112003cb26ccSSamuel Ortizcompatible with other `virtio-fs` implementations.
112103cb26ccSSamuel Ortiz
112203cb26ccSSamuel Ortiz### Block and Networking IO Self Offloading
112303cb26ccSSamuel Ortiz
112403cb26ccSSamuel OrtizWhen choosing to offload the paravirtualized block and networking I/O to an
112503cb26ccSSamuel Ortizexternal process (through the `vhost-user` protocol), Cloud Hypervisor now
112603cb26ccSSamuel Ortizautomatically spawns its default `vhost-user-blk` and `vhost-user-net` backends
112703cb26ccSSamuel Ortizinto their own, separate processes.
11285c3f4dbeSJosh SorefThis provides a seamless paravirtualized I/O user experience for those who want
112903cb26ccSSamuel Ortizto run their guest I/O into separate executions contexts.
113003cb26ccSSamuel Ortiz
113103cb26ccSSamuel Ortiz### Command Line Interface
113203cb26ccSSamuel Ortiz
113303cb26ccSSamuel OrtizMore and more Cloud Hypervisor services are exposed through the
113437a2c13aSAlyssa Ross[Rest API](vmm/src/api/openapi/cloud-hypervisor.yaml) and thus only
113537a2c13aSAlyssa Rossaccessible via relatively cumbersome HTTP calls. In order to abstract
113637a2c13aSAlyssa Rossthose calls into a more user friendly tool, we created a Cloud Hypervisor
113737a2c13aSAlyssa RossCommand Line Interface (CLI) called `ch-remote`.  The `ch-remote` binary
113837a2c13aSAlyssa Rossis created with each build and available e.g. at
113903cb26ccSSamuel Ortiz`cloud-hypervisor/target/debug/ch-remote` when doing a debug build.
114003cb26ccSSamuel Ortiz
114103cb26ccSSamuel OrtizPlease check `ch-remote --help` for a complete description of all available
114203cb26ccSSamuel Ortizcommands.
114303cb26ccSSamuel Ortiz
114403cb26ccSSamuel Ortiz### PVH Boot
114503cb26ccSSamuel Ortiz
114603cb26ccSSamuel OrtizIn addition to the traditional Linux boot protocol, Cloud Hypervisor now
114703cb26ccSSamuel Ortizsupports direct kernel booting through the [PVH ABI](https://xenbits.xen.org/docs/unstable/misc/pvh.html).
114803cb26ccSSamuel Ortiz
114903cb26ccSSamuel Ortiz### Contributors
115003cb26ccSSamuel Ortiz
115103cb26ccSSamuel OrtizWith the 0.6.0 release, we are welcoming a few new contributors. Many thanks
115203cb26ccSSamuel Ortizto them and to everyone that contributed to this release:
115303cb26ccSSamuel Ortiz
115403cb26ccSSamuel Ortiz* Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
115503cb26ccSSamuel Ortiz* Arron Wang <arron.wang@intel.com>
115603cb26ccSSamuel Ortiz* Bin Liu <liubin0329@gmail.com>
115703cb26ccSSamuel Ortiz* Bo Chen <chen.bo@intel.com>
115803cb26ccSSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
115903cb26ccSSamuel Ortiz* Eryu Guan <eguan@linux.alibaba.com>
116003cb26ccSSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
116103cb26ccSSamuel Ortiz* Liu Bo <bo.liu@linux.alibaba.com>
116203cb26ccSSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
116303cb26ccSSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
116403cb26ccSSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
116503cb26ccSSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
116603cb26ccSSamuel Ortiz* Sergio Lopez <slp@redhat.com>
116703cb26ccSSamuel Ortiz
116894f2fc33SRob Bradford# v0.5.1
116994f2fc33SRob Bradford
117094f2fc33SRob BradfordThis is a bugfix release branched off v0.5.0. It contains the following fixes:
117194f2fc33SRob Bradford
117294f2fc33SRob Bradford* Update DiskConfig to contain missing disk control features (#790) - Samuel Ortiz and Sergio Lopez
117394f2fc33SRob Bradford* Prevent memory overcommit via virtio-fs (#763) - Sebastien Boeuf
117494f2fc33SRob Bradford* Fixed error reporting for resize command - Samuel Ortiz
117594f2fc33SRob Bradford* Double reboot workaround (#783) - Rob Bradford
117694f2fc33SRob Bradford* Various CI and development tooling fixes - Sebastien Boeuf, Samuel Ortiz, Rob Bradford
11778e8a7b6dSSamuel Ortiz
11782f395e60SSamuel Ortiz# v0.5.0
11792f395e60SSamuel Ortiz
11802f395e60SSamuel OrtizThis release has been tracked through the [0.5.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/6).
11812f395e60SSamuel Ortiz
11822f395e60SSamuel OrtizHighlights for `cloud-hypervisor` version 0.5.0 include:
11832f395e60SSamuel Ortiz
11842f395e60SSamuel Ortiz### Virtual Machine Dynamic Resizing
11852f395e60SSamuel Ortiz
11862f395e60SSamuel OrtizWith 0.4.0 we added support for CPU hot plug, and 0.5.0 adds CPU hot unplug and
11872f395e60SSamuel Ortizmemory hot plug as well. This allows to dynamically resize Cloud Hypervisor
11882f395e60SSamuel Ortizguests which is needed for e.g. Kubernetes related use cases.
11892f395e60SSamuel OrtizThe memory hot plug implementation is based on the same framework as the CPU hot
11902f395e60SSamuel Ortizplug/unplug one, i.e. hardware-reduced ACPI notifications to the guest.
11912f395e60SSamuel Ortiz
11922f395e60SSamuel OrtizNext on our VM resizing roadmap is the PCI devices hotplug feature.
11932f395e60SSamuel Ortiz
11942f395e60SSamuel Ortiz### Multi-Queue, Multi-Threaded Paravirtualization
11952f395e60SSamuel Ortiz
11962f395e60SSamuel OrtizWe enhanced our virtio networking and block support by having both devices use
11972f395e60SSamuel Ortizmultiple I/O queues handled by multiple threads. This improves our default
11982f395e60SSamuel Ortizparavirtualized networking and block devices throughput.
11992f395e60SSamuel Ortiz
12002f395e60SSamuel Ortiz### New Interrupt Management Framework
12012f395e60SSamuel Ortiz
12022f395e60SSamuel OrtizWe improved our interrupt management implementation by introducing an Interrupt
12032f395e60SSamuel OrtizManager framework, based on the currently on-going [rust-vmm vm-device](https://github.com/rust-vmm/vm-device)
12042f395e60SSamuel Ortizcrates discussions. This move made the code significantly cleaner, and allowed
12052f395e60SSamuel Ortizus to remove several KVM related dependencies from crates like the PCI and
12062f395e60SSamuel Ortizvirtio ones.
12072f395e60SSamuel Ortiz
12082f395e60SSamuel Ortiz### Development Tools
12092f395e60SSamuel Ortiz
12102f395e60SSamuel OrtizIn order to provide a better developer experience, we worked on improving our
12112f395e60SSamuel Ortizbuild, development and testing tools.
12122f395e60SSamuel OrtizSomehow similar to the excellent
12132f395e60SSamuel Ortiz[Firecracker's devtool](https://github.com/firecracker-microvm/firecracker/blob/master/tools/devtool),
121437a2c13aSAlyssa Rosswe now provide a [dev_cli script](scripts/dev_cli.sh).
12152f395e60SSamuel Ortiz
12162f395e60SSamuel OrtizWith this new tool, our users and contributors will be able to build and test
12172f395e60SSamuel OrtizCloud Hypervisor through a containerized environment.
12182f395e60SSamuel Ortiz
12192f395e60SSamuel Ortiz### Kata Containers Integration
12202f395e60SSamuel Ortiz
12212f395e60SSamuel OrtizWe spent some significant time and efforts debugging and fixing our integration
12222f395e60SSamuel Ortizwith the [Kata Containers](https://github.com/kata-containers) project. Cloud
12232f395e60SSamuel OrtizHypervisor is now a fully supported Kata Containers hypervisor, and is
12242f395e60SSamuel Ortizintegrated into the project's CI.
12252f395e60SSamuel Ortiz
12262f395e60SSamuel Ortiz### Contributors
12272f395e60SSamuel Ortiz
12282f395e60SSamuel OrtizMany thanks to everyone that contributed to the 0.5.0 release:
12292f395e60SSamuel Ortiz
12302f395e60SSamuel Ortiz* Bo Chen <chen.bo@intel.com>
12312f395e60SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
12322f395e60SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
12332f395e60SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
12342f395e60SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
12352f395e60SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
12362f395e60SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
12372f395e60SSamuel Ortiz* Yang Zhong <yang.zhong@intel.com>
12382f395e60SSamuel Ortiz
1239cec884e8SSamuel Ortiz# v0.4.0
1240cec884e8SSamuel Ortiz
1241cec884e8SSamuel OrtizThis release has been tracked through the [0.4.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/4).
1242cec884e8SSamuel Ortiz
1243cec884e8SSamuel OrtizHighlights for `cloud-hypervisor` version 0.4.0 include:
1244cec884e8SSamuel Ortiz
1245cec884e8SSamuel Ortiz### Dynamic virtual CPUs addition
1246cec884e8SSamuel Ortiz
1247cec884e8SSamuel OrtizAs a way to vertically scale Cloud-Hypervisor guests, we now support dynamically
1248cec884e8SSamuel Ortizadding virtual CPUs to the guests, a mechanism also known as CPU hot plug.
1249cec884e8SSamuel OrtizThrough hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs
1250cec884e8SSamuel Ortizto an already running guest and the high level operations for that process are
125137a2c13aSAlyssa Rossdocumented [here](docs/hotplug.md)
1252cec884e8SSamuel Ortiz
1253cec884e8SSamuel OrtizDuring the next release cycles we are planning to extend Cloud Hypervisor
1254cec884e8SSamuel Ortizhot plug framework to other resources, namely PCI devices and memory.
1255cec884e8SSamuel Ortiz
1256cec884e8SSamuel Ortiz### Programmatic firmware tables generation
1257cec884e8SSamuel Ortiz
1258cec884e8SSamuel OrtizAs part of the CPU hot plug feature enablement, and as a requirement for hot
1259cec884e8SSamuel Ortizplugging other resources like devices or RAM, we added support for
1260cec884e8SSamuel Ortizprogrammatically generating the needed ACPI tables. Through a dedicated
1261cec884e8SSamuel Ortiz`acpi-tables` crate, we now have a flexible and clean way of generating those
1262cec884e8SSamuel Ortiztables based on the VMM device model and topology.
1263cec884e8SSamuel Ortiz
1264cec884e8SSamuel Ortiz### Filesystem and block devices vhost-user backends
1265cec884e8SSamuel Ortiz
1266cec884e8SSamuel OrtizOur objective of running all Cloud Hypervisor paravirtualized I/O to a
1267cec884e8SSamuel Ortizvhost-user based framework is getting closer as we've added Rust based
1268cec884e8SSamuel Ortizimplementations for vhost-user-blk and virtiofs backends. Together with the
1269cec884e8SSamuel Ortizvhost-user-net backend that came with the 0.3.0 release, this will form the
1270cec884e8SSamuel Ortizdefault Cloud Hypervisor I/O architecture.
1271cec884e8SSamuel Ortiz
1272cec884e8SSamuel Ortiz### Guest pause and resume
1273cec884e8SSamuel Ortiz
12745c3f4dbeSJosh SorefAs an initial requirement for enabling live migration, we added support for
1275cec884e8SSamuel Ortizpausing and resuming any VMM components. As an intermediate step towards live
1276cec884e8SSamuel Ortizmigration, the upcoming guest snapshotting feature will be based on the pause
1277cec884e8SSamuel Ortizand resume capabilities.
1278cec884e8SSamuel Ortiz
1279cec884e8SSamuel Ortiz### Userspace IOAPIC by default
1280cec884e8SSamuel Ortiz
1281cec884e8SSamuel OrtizAs a way to simplify our device manager implementation, but also in order to
1282cec884e8SSamuel Ortizstay away from privileged rings as often as possible, any device that relies on
1283cec884e8SSamuel Ortizpin based interrupts will be using the userspace IOAPIC implementation by
1284cec884e8SSamuel Ortizdefault.
1285cec884e8SSamuel Ortiz
1286cec884e8SSamuel Ortiz### PCI BAR reprogramming
1287cec884e8SSamuel Ortiz
1288cec884e8SSamuel OrtizIn order to allow for a more flexible device model, and also support guests
1289cec884e8SSamuel Ortizthat would want to move PCI devices, we added support for PCI devices BAR
1290cec884e8SSamuel Ortizreprogramming.
1291cec884e8SSamuel Ortiz
1292cec884e8SSamuel Ortiz### New `cloud-hypervisor` organization
1293cec884e8SSamuel Ortiz
1294cec884e8SSamuel OrtizAs we wanted to be more flexible on how we manage the Cloud Hypervisor project,
1295cec884e8SSamuel Ortizwe decided to move it under a [dedicated GitHub organization](https://github.com/cloud-hypervisor).
1296cec884e8SSamuel OrtizTogether with the [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor)
1297cec884e8SSamuel Ortizproject, this new organization also now hosts our [kernel](https://github.com/cloud-hypervisor/linux)
1298cec884e8SSamuel Ortizand [firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1299cec884e8SSamuel Ortizrepositories. We may also use it to host any rust-vmm that we'd need to
1300cec884e8SSamuel Ortiztemporarily fork.
1301cec884e8SSamuel OrtizThanks to GitHub's seamless repository redirections, the move is completely
1302cec884e8SSamuel Ortiztransparent to all Cloud Hypervisor contributors, users and followers.
1303cec884e8SSamuel Ortiz
1304cec884e8SSamuel Ortiz### Contributors
1305cec884e8SSamuel Ortiz
1306cec884e8SSamuel OrtizMany thanks to everyone that contributed to the 0.4.0 release:
1307cec884e8SSamuel Ortiz
1308cec884e8SSamuel Ortiz* Cathy Zhang <cathy.zhang@intel.com>
1309cec884e8SSamuel Ortiz* Emin Ghuliev <drmint80@gmail.com>
1310cec884e8SSamuel Ortiz* Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
1311cec884e8SSamuel Ortiz* Qiu Wenbo <qiuwenbo@phytium.com.cn>
1312cec884e8SSamuel Ortiz* Rob Bradford <robert.bradford@intel.com>
1313cec884e8SSamuel Ortiz* Samuel Ortiz <sameo@linux.intel.com>
1314cec884e8SSamuel Ortiz* Sebastien Boeuf <sebastien.boeuf@intel.com>
1315cec884e8SSamuel Ortiz* Sergio Lopez <slp@redhat.com>
1316cec884e8SSamuel Ortiz* Wu Zongyong <wuzongyong@linux.alibaba.com>
1317cec884e8SSamuel Ortiz
13188e8a7b6dSSamuel Ortiz# v0.3.0
13198e8a7b6dSSamuel Ortiz
13208ec89bc8SRob BradfordThis release has been tracked through the [0.3.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/3).
13218e8a7b6dSSamuel Ortiz
13228e8a7b6dSSamuel OrtizHighlights for `cloud-hypervisor` version 0.3.0 include:
13238e8a7b6dSSamuel Ortiz
13248e8a7b6dSSamuel Ortiz### Block device offloading
13258e8a7b6dSSamuel Ortiz
13268e8a7b6dSSamuel OrtizWe continue to work on offloading paravirtualized I/O to external processes,
13278e8a7b6dSSamuel Ortizand we added support for
13288e8a7b6dSSamuel Ortiz[vhost-user-blk](https://access.redhat.com/solutions/3394851) backends.
13298e8a7b6dSSamuel OrtizThis enables `cloud-hypervisor` users to plug a `vhost-user` based block device
13308e8a7b6dSSamuel Ortizlike [SPDK](https://spdk.io)) into the VMM as their paravirtualized storage
13318e8a7b6dSSamuel Ortizbackend.
13328e8a7b6dSSamuel Ortiz
13338e8a7b6dSSamuel Ortiz### Network device backend
13348e8a7b6dSSamuel Ortiz
13358e8a7b6dSSamuel OrtizThe previous release provided support for
13368e8a7b6dSSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. Now we
13378e8a7b6dSSamuel Ortizalso provide a TAP based vhost-user-net backend, implemented in Rust. Together
13388e8a7b6dSSamuel Ortizwith the vhost-user-net device implementation, this will eventually become the
13398e8a7b6dSSamuel OrtizCloud Hypervisor default paravirtualized networking architecture.
13408e8a7b6dSSamuel Ortiz
13418e8a7b6dSSamuel Ortiz### Virtual sockets
13428e8a7b6dSSamuel Ortiz
13438e8a7b6dSSamuel OrtizIn order to more efficiently and securely communicate between host and guest,
13448e8a7b6dSSamuel Ortizwe added an hybrid implementation of the
13458e8a7b6dSSamuel Ortiz[VSOCK](http://man7.org/linux/man-pages/man7/vsock.7.html) socket address
13468e8a7b6dSSamuel Ortizfamily over virtio. Credits go to the
13478e8a7b6dSSamuel Ortiz[Firecracker](https://github.com/firecracker-microvm/firecracker/blob/master/docs/vsock.md)
13488e8a7b6dSSamuel Ortizproject as our implementation is a copy of theirs.
13498e8a7b6dSSamuel Ortiz
13508e8a7b6dSSamuel Ortiz### HTTP based API
13518e8a7b6dSSamuel Ortiz
13528e8a7b6dSSamuel OrtizIn anticipation of the need to support asynchronous operations to Cloud
13538e8a7b6dSSamuel OrtizHypervisor guests (e.g. resources hotplug and guest migration), we added a HTTP
13548e8a7b6dSSamuel Ortizbased API to the VMM. The API will be more extensively documented during the
13558e8a7b6dSSamuel Ortiznext release cycle.
13568e8a7b6dSSamuel Ortiz
13578e8a7b6dSSamuel Ortiz### Memory mapped virtio transport
13588e8a7b6dSSamuel Ortiz
13598e8a7b6dSSamuel OrtizIn order to support potential PCI-free use cases, we added support for the
13608e8a7b6dSSamuel Ortiz[virtio MMIO](https://docs.oasis-open.org/virtio/virtio/v1.1/cs01/virtio-v1.1-cs01.html#x1-1440002)
13618e8a7b6dSSamuel Ortiztransport layer. This will allow us to support simple, minimal guest
13628e8a7b6dSSamuel Ortizconfigurations that do not require a PCI bus emulation.
13638e8a7b6dSSamuel Ortiz
13648e8a7b6dSSamuel Ortiz### Paravirtualized IOMMU
13658e8a7b6dSSamuel Ortiz
13668e8a7b6dSSamuel OrtizAs we want to improve our nested guests support, we added support for exposing
136737a2c13aSAlyssa Rossa [paravirtualized IOMMU](docs/iommu.md) device through virtio. This allows
136837a2c13aSAlyssa Rossfor a safer nested virtio and directly assigned devices support.
13698e8a7b6dSSamuel Ortiz
13708e8a7b6dSSamuel OrtizTo add the IOMMU support, we had to make some CLI changes for Cloud Hypervisor
13718e8a7b6dSSamuel Ortizusers to be able to specify if devices had to be handled through this virtual
13728e8a7b6dSSamuel OrtizIOMMU or not. In particular, the `--disk` option now expects disk paths to be
13738e8a7b6dSSamuel Ortizprefixed with a `path=` string, and supports an optional `iommu=[on|off]`
13748e8a7b6dSSamuel Ortizsetting.
13758e8a7b6dSSamuel Ortiz
13768e8a7b6dSSamuel Ortiz### Ubuntu 19.10
13778e8a7b6dSSamuel Ortiz
13788ec89bc8SRob BradfordWith the latest [hypervisor firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware),
13798e8a7b6dSSamuel Ortizwe can now support the latest
13808e8a7b6dSSamuel Ortiz[Ubuntu 19.10 (Eoan Ermine)](http://releases.ubuntu.com/19.10/) cloud images.
13818e8a7b6dSSamuel Ortiz
13828e8a7b6dSSamuel Ortiz### Large memory guests
13838e8a7b6dSSamuel Ortiz
13848e8a7b6dSSamuel OrtizAfter simplifying and changing our guest address space handling, we can now
13858e8a7b6dSSamuel Ortizsupport guests with large amount of memory (more than 64GB).
13867688e6e2SSamuel Ortiz
1387d784ac29SSamuel Ortiz# v0.2.0
1388d784ac29SSamuel Ortiz
13898ec89bc8SRob BradfordThis release has been tracked through the [0.2.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/2).
1390d784ac29SSamuel Ortiz
1391d784ac29SSamuel OrtizHighlights for `cloud-hypervisor` version 0.2.0 include:
1392d784ac29SSamuel Ortiz
1393d784ac29SSamuel Ortiz### Network device offloading
1394d784ac29SSamuel Ortiz
1395d784ac29SSamuel OrtizAs part of our general effort to offload paravirtualized I/O to external
1396d784ac29SSamuel Ortizprocesses, we added support for
1397d784ac29SSamuel Ortiz[vhost-user-net](https://access.redhat.com/solutions/3394851) backends. This
1398d784ac29SSamuel Ortizenables `cloud-hypervisor` users to plug a `vhost-user` based networking device
1399d784ac29SSamuel Ortiz(e.g. [DPDK](https://dpdk.org)) into the VMM as their virtio network backend.
1400d784ac29SSamuel Ortiz
1401d784ac29SSamuel Ortiz### Minimal hardware-reduced ACPI
1402d784ac29SSamuel Ortiz
1403d784ac29SSamuel OrtizIn order to properly implement and guest reset and shutdown, we implemented
1404d784ac29SSamuel Ortiza minimal version of the hardware-reduced ACPI specification. Together with
1405d784ac29SSamuel Ortiza tiny I/O port based ACPI device, this allows `cloud-hypervisor` guests to
1406d784ac29SSamuel Ortizcleanly reboot and shutdown.
1407d784ac29SSamuel Ortiz
1408d784ac29SSamuel OrtizThe ACPI implementation is a `cloud-hypervisor` build time option that is
1409d784ac29SSamuel Ortizenabled by default.
1410d784ac29SSamuel Ortiz
1411d784ac29SSamuel Ortiz### Debug I/O port
1412d784ac29SSamuel Ortiz
1413d784ac29SSamuel OrtizBased on the Firecracker idea of using a dedicated I/O port to measure guest
1414d784ac29SSamuel Ortizboot times, we added support for logging guest events through the
1415d784ac29SSamuel Ortiz[0x80](https://www.intel.com/content/www/us/en/support/articles/000005500/boards-and-kits.html)
1416d784ac29SSamuel OrtizPC debug port. This allows, among other things, for granular guest boot time
141737a2c13aSAlyssa Rossmeasurements. See our [debug port documentation](docs/debug-port.md) for more
141837a2c13aSAlyssa Rossdetails.
1419d784ac29SSamuel Ortiz
1420d784ac29SSamuel Ortiz### Improved direct device assignment
1421d784ac29SSamuel Ortiz
1422d784ac29SSamuel OrtizWe fixed a major performance issue with our initial VFIO implementation: When
1423d784ac29SSamuel Ortizenabling VT-d through the KVM and VFIO APIs, our guest memory writes and reads
1424d784ac29SSamuel Ortizwere (in many cases) not cached. After correctly tagging the guest memory from
1425d784ac29SSamuel Ortiz`cloud-hypervisor` we're now able to reach the expected performance from
1426d784ac29SSamuel Ortizdirectly assigned devices.
1427d784ac29SSamuel Ortiz
1428d784ac29SSamuel Ortiz### Improved shared filesystem
1429d784ac29SSamuel Ortiz
1430d784ac29SSamuel OrtizWe added shared memory region with [DAX](https://www.kernel.org/doc/Documentation/filesystems/dax.txt)
1431d784ac29SSamuel Ortizsupport to our [virtio-fs](https://virtio-fs.gitlab.io/) shared file system.
1432d784ac29SSamuel OrtizThis provides better shared filesystem IO performance with a smaller guest
1433d784ac29SSamuel Ortizmemory footprint.
1434d784ac29SSamuel Ortiz
1435d784ac29SSamuel Ortiz### Ubuntu bionic based CI
1436d784ac29SSamuel Ortiz
14378ec89bc8SRob BradfordThanks to our [simple KVM firmware](https://github.com/cloud-hypervisor/rust-hypervisor-firmware)
1438d784ac29SSamuel Ortizimprovements, we are now able to boot Ubuntu bionic images. We added those to
1439d784ac29SSamuel Ortizour CI pipeline.
1440d784ac29SSamuel Ortiz
144193b77530SSamuel Ortiz# v0.1.0
144293b77530SSamuel Ortiz
14438ec89bc8SRob BradfordThis release has been tracked through the [0.1.0 project](https://github.com/cloud-hypervisor/cloud-hypervisor/projects/1).
144493b77530SSamuel Ortiz
144593b77530SSamuel OrtizHighlights for `cloud-hypervisor` version 0.1.0 include:
144693b77530SSamuel Ortiz
144793b77530SSamuel Ortiz### Shared filesystem
144893b77530SSamuel Ortiz
144993b77530SSamuel OrtizWe added support for the [virtio-fs](https://virtio-fs.gitlab.io/) shared file
145093b77530SSamuel Ortizsystem, allowing for an efficient and reliable way of sharing a filesystem
145193b77530SSamuel Ortizbetween the host and the `cloud-hypervisor` guest.
145293b77530SSamuel Ortiz
145337a2c13aSAlyssa RossSee our [filesystem sharing](docs/fs.md) documentation for more details on how
145437a2c13aSAlyssa Rossto use virtio-fs with `cloud-hypervisor`.
145593b77530SSamuel Ortiz
145693b77530SSamuel Ortiz### Initial direct device assignment support
145793b77530SSamuel Ortiz
145893b77530SSamuel OrtizVFIO (Virtual Function I/O) is a kernel framework that exposes direct device
145993b77530SSamuel Ortizaccess to userspace. `cloud-hypervisor` uses VFIO to directly assign host
146093b77530SSamuel Ortizphysical devices into its guest.
146193b77530SSamuel Ortiz
146237a2c13aSAlyssa RossSee our [VFIO](docs/vfio.md) documentation for more detail on how to directly
146337a2c13aSAlyssa Rossassign host devices to `cloud-hypervisor` guests.
146493b77530SSamuel Ortiz
146593b77530SSamuel Ortiz### Userspace IOAPIC
146693b77530SSamuel Ortiz
146793b77530SSamuel Ortiz`cloud-hypervisor` supports a so-called split IRQ chip implementation by
146893b77530SSamuel Ortizimplementing support for the [IOAPIC](https://wiki.osdev.org/IOAPIC).
146993b77530SSamuel OrtizBy moving part of the IRQ chip implementation from kernel space to user space,
147093b77530SSamuel Ortizthe IRQ chip emulation does not always run in a fully privileged mode.
147193b77530SSamuel Ortiz
147293b77530SSamuel Ortiz### Virtual persistent memory
147393b77530SSamuel Ortiz
147493b77530SSamuel OrtizThe `virtio-pmem` implementation emulates a virtual persistent memory device
147593b77530SSamuel Ortizthat `cloud-hypervisor` can e.g. boot from. Booting from a `virtio-pmem` device
147693b77530SSamuel Ortizallows to bypass the guest page cache and improve the guest memory footprint.
147793b77530SSamuel Ortiz
147893b77530SSamuel Ortiz### Linux kernel bzImage
147993b77530SSamuel Ortiz
148093b77530SSamuel OrtizThe `cloud-hypervisor` linux kernel loader now supports direct kernel boot from
148193b77530SSamuel Ortiz`bzImage` kernel images, which is usually the format that Linux distributions
148293b77530SSamuel Ortizuse to ship their kernels. For example, this allows for booting from the host
148393b77530SSamuel Ortizdistribution kernel image.
148493b77530SSamuel Ortiz
148593b77530SSamuel Ortiz### Console over virtio
148693b77530SSamuel Ortiz
148793b77530SSamuel Ortiz`cloud-hypervisor` now exposes a `virtio-console` device to the guest. Although
148893b77530SSamuel Ortizusing this device as a guest console can potentially cut some early boot
148993b77530SSamuel Ortizmessages, it can reduce the guest boot time and provides a complete console
149093b77530SSamuel Ortizimplementation.
149193b77530SSamuel Ortiz
149293b77530SSamuel OrtizThe `virtio-console` device is enabled by default for the guest console.
149393b77530SSamuel OrtizSwitching back to the legacy serial port is done by selecting
149493b77530SSamuel Ortiz`--serial tty --console off` from the command line.
149593b77530SSamuel Ortiz
149693b77530SSamuel Ortiz### Unit testing
149793b77530SSamuel Ortiz
149893b77530SSamuel OrtizWe now run all unit tests from all our crates directly from our CI.
149993b77530SSamuel Ortiz
150093b77530SSamuel Ortiz### Integration tests parallelization
150193b77530SSamuel Ortiz
150293b77530SSamuel OrtizThe CI cycle run time has been significantly reduced by refactoring our
150393b77530SSamuel Ortizintegration tests; allowing them to all be run in parallel.
1504