Tags: cloud-hypervisor/cloud-hypervisor
Tags
v53.0 This release has been tracked in [v53.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/6?filterQuery=release%3A%22Release+53%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). Snapshot/Restore and Live Migration Improvements ---------------- --- ---- --------- ------------ * An offloaded snapshot/restore daemon has been introduced, allowing snapshot and restore to be carried out by an external process. The live migration protocol has been extended so page faults can be serviced from the source. This enables *postcopy* for remote live migration and *on-demand paging* for the offload daemon, both built on `userfaultfd`, bringing the offload daemon to parity with the internal snapshot/restore implementation (#8403, #8264, #8556). * Snapshot pages can now be prefaulted in the background after a `userfaultfd`-based restore, combining a fast restore-to-resume with fully faulted-in memory shortly afterwards. The number of prefault threads scales with the available parallelism (#8150, #8538, #8484). * Live migration data can now be encrypted using mutual TLS (#8053). * VFIO migration v2 is now supported for same-host snapshot and restore of migratable VFIO devices (for example ConnectX VFs bound to `mlx5_vfio_pci`) (#8303). * Migrated guests now issue post-migration network announcements so that connectivity on the new host is refreshed within milliseconds rather than taking up to 20 seconds to recover (#8263). * The `vm.send-migration` API endpoint now returns immediately rather than blocking for the duration of the migration (#8021). Nested Hyper-V (Windows Guest) Support ------ ------- --------------- ------- Windows guests can now run nested Hyper-V as used by WSL2 on the KVM backend (#8481). `virtio-rtc` Device Support ------------ ------ ------- Support for `virtio-rtc` devices has been added (via `--rtc`), providing a Real Time Clock to the guest. This is primarily useful for, and only enabled by default on, MSHV guests that do not have access to `kvmclock` (#7795). Guest Clock Updates Across Snapshot/Restore and Migration ----- ----- ------- ------ ---------------- --- --------- The guest clock is now advanced to account for the elapsed wall-clock time when a VM is resumed after a snapshot-restore or a live migration so the guest sees the correct time of day immediately rather than lagging behind by the downtime. On x86 the kvmclock realtime flag is preserved so that the kernel adjusts the clock automatically (#8256). On ARM64 the guest counter is advanced using the `KVM_REG_ARM_TIMER_CNT` interface (#8343). vCPU TSC offsets are also re-synchronized on restore (#8437). Buffered Serial Output for Late-Connecting Clients -------- ------ ------ --- --------------- ------- In socket serial mode (`--serial socket=...`) the output produced before a client connects is now buffered so a console client that attaches after boot sees the earlier output (#8322). New Command-Line and API Options --- ------------ --- --- ------- * A `reserve=on|off` option has been added to `--memory` and `--memory-zone` (default `off`). When enabled, guest RAM is mapped without `MAP_NORESERVE` so an overcommitted configuration fails cleanly at VM creation with `ENOMEM` (#8350). * The SMBIOS/DMI fields exposed via `--platform` have been extended and scoped to specific SMBIOS structures, for workloads that consume this data for licensing, inventory, or host identification (#8259). * The VMM can now consume pre-opened VFIO `cdev` and `iommufd` file descriptors supplied by the caller, letting a privileged orchestrator open the device nodes once and hand the FDs to an unprivileged VMM at boot or at runtime. This is also a prerequisite for live migration of VMs using VFIO devices (#8287). * A "glog style" log format has been added, with a single-character level and local or UTC timestamps (#8265). * A new `--seccomp=errno` option has been added that will result in filtered syscalls to set `errno` to `EPERM`. This can be used when the killing of the process with `SIGSYS` is not desired (#8578). Deprecations ------------ * The legacy `--platform` SMBIOS keys `serial_number` and `uuid` are deprecated in favor of the new SMBIOS-structure-scoped keys. The legacy keys continue to be accepted, with a warning, and will be removed in a future release (#8259). * The generic `vhost-user` device's `virtio_id` command-line parameter is deprecated in favor of `device_type`, matching the API and configuration naming. `virtio_id` is retained as an alias that logs a warning and will be removed in a later release (#8564). Notable Bug Fixes ------- --- ----- * Revert `create memfd for private mappings`, which caused a serious memory consumption regression without hugepages or `shared=on` (#8246). * Advertise the mandatory Hyper-V partition privileges so Windows guests enable the reference TSC page instead of taking a VM exit on every clock read (#8380). * Correctly save and restore ARM64 SVE registers (#8268). * Set the guest physical address space size correctly on AMD (#8291). * Sparse align the initial PCI BAR placement to avoid a Windows rebalancing deadlock (#8205). * Various TPM fixes, including for Windows guests (#8305, #8312). * Preserve `WRITE_ZEROES` on QCOW2 images with backing files (#8245) and fix `WriteZeroes` sector arithmetic overflow (#8388). * Improve `O_DIRECT` handling so that `direct=on` is usable on hosts requiring 4K alignment, including opening fixed VHD images (#8335). * Resolve relative QCOW2 backing file paths correctly (#8196). * Drain block I/O before the device is paused (#8356) and retry locking when interrupted by `EINTR` (#8402). * Fix VHDX region-table overlap detection (#8483) and an incomplete bounds check in the VHDX synchronous I/O worker (#8529). * Fix a guest deadlock by signalling `DEVICE_NEEDS_RESET` and releasing the activation barrier when a virtio device fails to activate (#8295). * Handle short and misaligned MMIO/PIO accesses without panicking: validate the MMIO access size (#8506), return all-ones for unregistered MMIO/PIO reads (#8237), correct `fw_cfg` short and long reads (#8507), respect the PCI CFG capability length for BAR access (#8272, #8238), and reject incorrect MSI-X table and PBA reads (#8417). * Translate virtio-iommu buffers that span adjacent mappings (#8520), and add centralized virtio descriptor-range validation (#8232). * Handle a guest/host half-close on vsock connections (#8372). * Avoid a guest-triggerable VMM panic by replacing asserts on ACPI device accesses with checks (#8405). * Emit a complete ACPI `_S5_` sleep package, fixing an early-boot fault on OpenBSD guests (#8426). * Transfer post-snapshot guest memory changes during live migration to avoid corruption with `vhost-user` devices (#8361). * Improve configuration validation to return errors instead of panicking on malformed input (#8511), require the `ch-remote` snapshot/restore config arguments instead of panicking (#8331), reject resizing below the boot memory size (#8428), reject removal of an already-removed device (#8559), and fix generic `vhost-user` parsing (#8564). * Don't leak a file descriptor when ejecting a VFIO device (#8367), and fix a PCI device hotplug race by deferring device visibility (#8369). * Fix PCI segment ID validation (#8377) and make the PCI BDF configurable for the balloon and ivshmem devices (#8310). * Return HTTP 404 for API requests against a VM that has not been created (#8320), and omit unset optional fields from API responses so that strict client generators accept them (#8321). * Clean up a stale API socket under a lock before binding (#8325). * Cache the local timezone before installing seccomp filters (#8327). * Enhance the ACPI PPTT with cache topology information (#7893). * Correct several OpenAPI specification entries: the `iommu_address_width` field name (#8244), integer schema formats (#8278), `GenericVhostUserConfig` properties (#8543), a parameter name (#8544), and the `vmm.nmi` to `vm.nmi` endpoint (#8571). * Deduplicate `VmConfig::preserved_fds` (#8271). Contributors ------------ Many thanks to everyone who has contributed to our release: * Aastha Rawat <[email protected]> * Adel-Ayoub <[email protected]> * Alexander Lvov <[email protected]> * Alyssa Ross <[email protected]> * Anatol Belski <[email protected]> * Andrei Vagin <[email protected]> * Anirudh Rayabharam <[email protected]> * Atish Patra <[email protected]> * Bo Chen <[email protected]> * Cameron Baird <[email protected]> * Chris Webb <[email protected]> * CMGS <[email protected]> * Damian Barabonkov <[email protected]> * Daniel Verkamp <[email protected]> * doge <[email protected]> * Dylan Reid <[email protected]> * Gauthier Jolly <[email protected]> * Henry Hrvoje Tonkovac <[email protected]> * Ian Klemm <[email protected]> * Julian Schindel <[email protected]> * Leander Kohler <[email protected]> * Max Makarov <[email protected]> * Meng Zhuo <[email protected]> * Muminul Islam <[email protected]> * Nikolas Kyx <[email protected]> * Oliver Anderson <[email protected]> * Pascal Scholz <[email protected]> * Philipp Schuster <[email protected]> * Rob Bradford <[email protected]> * Roman <[email protected]> * Rowen-Ye <[email protected]> * Ruben Hakobyan <[email protected]> * Saravanan D <[email protected]> * Sayed Kaif <[email protected]> * Sebastian Eydam <[email protected]> * Sebastien Boeuf <[email protected]> * tchaton <[email protected]> * Thomas Prescher <[email protected]> * tonic <[email protected]> * Tushar Khatri <[email protected]> * wangyf0611 <[email protected]> * Wei Liu <[email protected]> * wuxinyue <[email protected]> * yanjianqing <[email protected]>
v52.0 This release has been tracked in [v52.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/6?filterQuery=release%3A%22Release+52%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). Security Fixes -------------- This release fixes a use-after-free vulnerability in the `virtio-block` async I/O completion path (#8220). Details can be found in GHSA-f47p-p25q-83rh (CVE-2026-45782). Confidential VM Support: KVM SEV-SNP ------------------------------------ AMD SEV-SNP confidential VMs can now be launched on KVM in addition to MSHV. Cloud Hypervisor uses `guest_memfd` to back private memory and loads an IGVM-packaged firmware (e.g. Oak stage0) to bring up an SEV-SNP guest on real hardware (#7942). Measured-boot support has been completed for KVM SEV-SNP guests, bringing parity with the QEMU launch flow: the kernel, command line, and initrd are reflected in the launch measurement, and a signed SNP ID block can be passed so the guest (or a remote attestor) can verify the launch (#8123). VFIO Device Passthrough via `iommufd` and `vfio-cdev` ---------------------------------------------------- Cloud Hypervisor now supports the modern Linux VFIO device-access model based on the `iommufd` subsystem and per-device `vfio-cdev` character devices (available since Linux v6.6). This unlocks the advanced IOMMU features exposed by modern hardware and enables fully accelerated IOMMU support inside the guest. The legacy `container/group`-based path continues to be supported (#7981). In addition, several VFIO/PCI improvements have landed: * A new `host_mmap_bars` option allows selective mapping of VFIO BARs into the guest, so devices that expose registers that should not be fast-pathed can be selectively trapped (#7991). * Sub-page VFIO BARs are now expanded to a full page for `mmap()`, avoiding spurious failures on devices with small BARs (#7939). * `VfioMsix::cap` and `VfioMsix::bar` are now kept synchronized to avoid stale MSI-X state (#7993). * VFIO MMIO regions are now reliably cleared in `DeviceManager::drop` (#8063). * Deferred PCI BAR reprogramming state is now part of the saved device state (#7945). * GSIs for MSI/MSI-X interrupt vectors are now allocated lazily, reducing GSI consumption for VMs with many devices (#7940). Multi-Connection TCP Live Migration ----------------------------------- The `send-migration` HTTP command now accepts a `connections` parameter (defaults to `1`) that controls how many parallel TCP connections are used for the live migration data transfer. On servers with high-bandwidth (e.g. 100G) network links, multiple connections significantly increase migration throughput (#7669). Userfaultfd Demand-Paged Snapshot Restore ----------------------------------------- A new `memory_restore_mode` option on the restore path allows guest memory to be populated lazily via `userfaultfd` instead of reading the entire memory snapshot before the VM resumes. This dramatically reduces restore-to-resume latency for large guests, at the cost of faulting pages in on demand after resume (#7800). Configurable PCI BDFs for Devices ---------------------------------- Users now can configure the PCI slot/device number, the middle part of the PCI BDF, through the CLI and API; bus and function remain fixed at `0`. This covers virtio devices (except balloon), VFIO devices, vfio-user device, and generic vhost-user devices (#8175, #7965, #8174, #8163). AIO Block Backend `write_zeroes` and `punch_hole` Support --------------------------------------------------------- The AIO block backend now implements `write_zeroes` and `punch_hole`, fixing a v51.0 regression that affected guests on hosts with `io_uring` disabled (e.g. RHEL 9 / CentOS Stream 9, where `kernel.io_uring_disabled=2` is a common hardening default) (#7817). Asynchronous QCOW2 Backend with `io_uring` ----------------------------------------- A new `QcowDiskAsync` backend uses `io_uring` for data I/O on QCOW2 images and is automatically selected when `io_uring` is available (falling back to the synchronous backend otherwise). Each virtio queue gets its own ring and its own duplicated file descriptor, enabling parallel data I/O across queues; QCOW2 metadata is shared behind an `Arc<RwLock<_>>` (#7882). Generic `vhost-user` Device Support ----------------------------------- A new generic `vhost-user-generic` device type has been added. All information about the device (number of queues, queue size, feature bits, etc.) is provided to Cloud Hypervisor via the command line or API, allowing arbitrary vhost-user backends to be attached without device-type-specific support in the VMM (#7221). Core Scheduling for vCPU Threads -------------------------------- A new `core_scheduling` option on `--cpus` controls how vCPU threads are placed on SMT siblings via the kernel's core-scheduling feature, which is useful for mitigating cross-thread side-channel attacks without disabling SMT outright. Three modes are supported: `vm` (default — all vCPU threads share one cookie), one-cookie-per-vCPU, and a configurable grouping mode (#7747). Snapshot/Restore and Live Migration Improvements ----------------------------------------------- * Snapshot and restore now treat the memory backing file as a sparse file: on snapshot the backing FD is sought with `SEEK_DATA`/`SEEK_HOLE` to skip unallocated regions, and on restore the on-disk file is read as sparse. Pages the guest never touched remain as holes in the backing file, substantially reducing both snapshot size and restore time (#8113). * Paused VMs can now be migrated (#8099). * User-configurable downtime and timeout parameters for live migration (#7835), and improved downtime observability (#7979). * A new option to automatically resume the VM on restore, useful when restoring from the VMM command line without an API socket (#7857). * Snapshot/restore support for `vhost-user` devices has been filled out (#7908), including migration support for `virtio-fs` (#7937). * Vsock connections are now reset on snapshot restore to avoid stale half-open connections on the guest side (#7958). * The KVM clock is now restored before vCPUs are resumed (#7932), and `notify_guest_clock_paused` is called for Hyper-V guests (#7933), eliminating clock jumps observed after restore. * `vhost-user` devices receive a guest interrupt on resume so that in-flight I/O is not stalled across pause/resume (#7851), and activated queue eventfds are signaled on resume for all virtio devices (#8004). * `UFFDIO_WAKE` and `UFFD_FEATURE_MISSING_HUGETLBFS` are now handled correctly (#8016). New Command-Line and API Options -------------------------------- * `--no-shutdown` keeps the VMM process running when the guest triggers a shutdown. This is useful for higher-level management layers that need full control over the VMM process (#8025). * fw_cfg now supports inline string items via `--fw-cfg name=...,string=...`, matching QEMU's syntax (#7825). * A new per-zone `mergeable` option on `--memory-zone` lets KSM merging be controlled per memory zone instead of only globally (#7983). * Disk lock granularity is now configurable via `--disk` (#7763). * `--cpus threads_per_core` is now enforced to be at most two (#8078), matching the hardware constraint. * `--log-format` controls the log output format, complementing existing log-level controls (#8172). Wallclock log timestamps now use UTC (#8193). * The HTTP API now logs error responses (#8181), and the `user_devices` configuration is included in the OpenAPI spec (#8072). MSHV Support Improvements ------------------------- * `SVM_EXIT_CPUID`, `SVM_EXIT_MSR`, and `GHCB_MSR_TERM_REQ` handlers have been added to the SEV-SNP exit path (#7934). * Guest MTRR MSRs are now preserved on KVM (#7944). * Nested-virtualization control fixes on AMD (#7783). Deprecations ------------ Auto-detection of disk image types is now deprecated and will be removed in a future release. Specify the image type explicitly via the `--disk image_type=...` CLI option or the `image_type` field on `DiskConfig` in the HTTP/D-Bus API to avoid the deprecation warning (#8219). Notable Bug Fixes ----------------- * Fix a guest-triggerable VMM panic via an out-of-bounds `queue_select` in the MSI-X vector access path on the virtio PCI common config (#7918). * Saturate instead of underflowing on a malformed balloon `actual` value reported by the guest (#7903). * IOMMU address translation now returns errors instead of panicking on malformed guest input (#8023). * Several virtio device error paths now reset queues instead of panicking or exiting the worker (#8128); additional device manager paths avoid guest-induced panics (#8186). * Virtio barriers are now sized from the number of queues actually activated by the guest, fixing pause hangs (#7881). * Spec compliance fixes for virtio device config layouts (#7805). and other small spec deviations (#8066). Console descriptor-chain processing has been fixed (#7802). dword writes to the MSI-X control register are now handled (#7956). * PCI segment ACPI `_UID` values now match the segment ID (#7992). * Fix VHDX multiqueue data corruption (#7746). * Fix block-device resize-disk (#7948) and the writeback-mode update flow (#7949). * Fix vdpa RX failure after device reset by always using base 0 (#7964). * Fix rebooting with landlock and a pty console (#7911). * Reject rate limiting with `vhost-user` (#8135). * Fix a deadlock between `CpuManager::pause()` and MMIO writes to the ACPI CPU hotplug controller (#7990, #8092). * Cancel `vhost-user` reconnection if the device has been unplugged (#8182). * Remove the API socket path when `start_vmm` fails (#8018). * Add missing ID validation for the virtio-rng device (#9a46affc3). * Fix UB in `MemoryRangeTable::read_from` (#7828) and `load_igvm()` (#8129). * `memory_actual_size` reflects hot-plug state, removing a slow recomputation path (#7969). * DIO alignment is now queried directly from the underlying file rather than assumed (#7767). * QCOW2 metadata access is now thread-safe with `num_queues > 1` (#7744). * Block devices unconditionally assume sparse support, matching QEMU and avoiding a non-existent probe ioctl (#7757). * Multi-value CLI options now use `.action(ArgAction::Append)` so that repeating an option appends rather than replacing (#7778). * AIO completions are batched in `next_completed_request` for the block backend, reducing per-completion overhead (#7864). * Roll back the PCI BAR address on a failed `move_bar` so that an out-of-range MMIO address programmed by the guest leaves the device functional rather than crashing the VMM (#7950). * Fix O_DIRECT writes failing with `EINVAL` on the synchronous QCOW2 backend (#8012). * Fix O_DIRECT reads failing with `EINVAL` on the async `io_uring` QCOW2 read path (#8051). * Move QCOW2 compressed-cluster decompression out of the metadata lock, removing a bottleneck for compressed images (#8061). * Clamp the balloon's reported range to its region before processing unused pages (#8098). * Validate the requested balloon size against total guest RAM (#8116). * Reject `--memory-zone` configurations that set both `mergeable` and `shared` (#8126). * Disable sector 0 writes for autodetected VHD images (#8218). Contributors ------------ Many thanks to everyone who has contributed to our release: * Alyssa Ross <[email protected]> * Anatol Belski <[email protected]> * Andrei Vagin <[email protected]> * Anirudh Rayabharam <[email protected]> * Bo Chen <[email protected]> * CMGS <[email protected]> * Changyuan Lyu <[email protected]> * Chinmoy <[email protected]> * Damian Barabonkov <[email protected]> * Demi Marie Obenour <[email protected]> * Dylan Reid <[email protected]> * Dylan Reid <[email protected]> * Emir Beganovic <[email protected]> * JP Kobryn <[email protected]> * Jared White <[email protected]> * Julian Schindel <[email protected]> * Julian Schindel <[email protected]> * Keith Adler <[email protected]> * Kevin Hui <[email protected]> * Leander Kohler <[email protected]> * Max Makarov <[email protected]> * Muminul Islam <[email protected]> * Nguyen Dinh Phi <[email protected]> * Pascal Scholz <[email protected]> * Peter Oskolkov <[email protected]> * Philipp Schuster <[email protected]> * Rob Bradford <[email protected]> * Roberto Campesato <[email protected]> * Ruben Hakobyan <[email protected]> * Saravanan D <[email protected]> * Sebastian Eydam <[email protected]> * Sebastian Walz <[email protected]> * Shayon Mukherjee <[email protected]> * Souradeep <[email protected]> * Souradeep Chakrabarti <[email protected]> * Stepan Rabotkin <[email protected]> * Thomas Prescher <[email protected]> * Tobias Kässer <[email protected]> * Victor Vieux <[email protected]> * Vincent Thomas <[email protected]> * Wei Liu <[email protected]> * Zhiheng Tao <[email protected]> * dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * sohakpt <[email protected]> * wuxinyue <[email protected]>
v51.0 This release has been tracked in [v51.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/6?filterQuery=release%3A%22Release+51%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). Security Fixes -------------- This release fixes a security vulnerability in disk image handling. Details can be found in [GHSA-jmr4-g2hv-mjj6](GHSA-jmr4-g2hv-mjj6). * A new `backing_files=on|off` option has been added to `--disk` to explicitly control whether QCOW2 backing files are permitted. This defaults to `off` to prevent the loading of backing files entirely. (#7685) * Explicit image type specification via the user interface, removing reliance on format autodetection (#7728). * Prevent sector-zero writes for autodetected raw images (#7728). Significant QCOW2 v3 Improvements --------------------------------- A large number of QCOW2 v3 specification features have been implemented: * RAW backing file support for QCOW2 overlays (#7570) * Zero bit in L2 entries (#7627) * Incompatible feature bit validation (#7612) * Dirty bit support (#7636) * Variable refcount widths (1 to 64-bit) (#7633) * Corrupt bit detection and marking (#7639) * Autoclear feature bits handling (#7648) * Thread safety fix for multiple virtio queues (`num_queues > 1`) (#7661) * Correct zero-fill for reads beyond backing file size (#7678) * Live disk resize support (#7687) ACPI Generic Initiator Support ------------------------------ ACPI Generic Initiator Affinity (SRAT Type 5) support has been added to associate VFIO-PCI devices with dedicated memory/CPU-less NUMA nodes. This enables the guest OS to make NUMA-aware memory allocation decisions for device workloads. A new `device_id` parameter has been added to `--numa` for specifying VFIO devices. (#7626) Block Device DISCARD and WRITE_ZEROES Support --------------------------------------------- The `virtio-blk` device now supports `DISCARD` and `WRITE_ZEROES` operations for QCOW2 and RAW image formats. This enables thin provisioning and efficient space reclamation when guests trim filesystems. A new `sparse=on|off` option has been added to `--disk` to control disk space management: `sparse=on` (default) enables thin provisioning with space reclamation, while `sparse=off` provides thick provisioning with consistent I/O latency. (#7666) Notable Performance Improvements -------------------------------- * Transparent Huge Pages (THP) support has been extended to cover anonymous shared memory (`shared=on`) via `madvise`. Previously, THP was only used for non-shared memory. (#7646) * The `vhost-user-net` device now uses the default set of vhost-user virtio features, including `VIRTIO_F_RING_INDIRECT_DESC`, which provides a performance improvement. (#7653) MSHV Support Improvements ------------------------- * Optimize CPU state update after emulation by only updating special registers when changed (#7603) * Enable SMT for guests with `threads_per_core > 1` (#7668) * Stub `save_data_tables()` to unblock VM pause/resume (#7692) * Handle `GHCB_INFO_SPECIAL_DBGPRINT` VMG exit in SEV-SNP guest exit handler (#7703) * Fix CVM boot failure on MSHV (#7548) * Fix CPU topology detection for multithreaded configurations (#7576) Notable Bug Fixes ----------------- * Fix VFIO device hot-remove leaving group and container file descriptors open, preventing re-add (#7676) * Fix snapshot restore when backing file is on read-only storage with `shared=false` (#7674) * Enforce `VIRTIO_BLK_F_RO` even if guest does not negotiate it (#7705) * Fix read-only block device FLUSH requests from OVMF preventing VMs from booting (#7706) * Fix vhost-user device not properly dropping unowned file descriptors (#7679) * Fix `vhost-user-block` `get_config` interoperability (#7617) * Fix vsock TOCTOU race condition by copying packet header from guest memory before processing (#7530) * Fix vsock handling of large TX packets spanning multiple data descriptors (#7680) * Add `gettid()` to all seccomp filters (#7596) * Fix MAC address parsing that wrongly allowed `+` instead of hex characters (#7579) * Improve UUID parse error message and `--net` fd help text (#7702) * Fix various inconsistencies in our OpenAPI specification file (#7716, #7726) * Various documentation fixes (#7602, #7606) Contributors ------------ Many thanks to everyone who has contributed to our release: * Aastha Rawat <[email protected]> * Alyssa Ross <[email protected]> * Anatol Belski <[email protected]> * Anirudh Rayabharam <[email protected]> * Bo Chen <[email protected]> * Champ-Goblem <[email protected]> * Changyuan Lyu <[email protected]> * Damian Barabonkov <[email protected]> * Demi Marie Obenour <[email protected]> * Leander Kohler <[email protected]> * Muminul Islam <[email protected]> * Philipp Schuster <[email protected]> * Rob Bradford <[email protected]> * Rowen-Ye <[email protected]> * Saravanan D <[email protected]> * Stanislav Kinsburskii <[email protected]> * Thomas Leroy <[email protected]> * Wei Liu <[email protected]> * Yi Wang <[email protected]> * Zhibin Li <[email protected]> * stevenhorsman <[email protected]>
v50.1 This is a point release containing security fixes and bug fixes. Security Fixes -------------- This release fixes a security vulnerability in disk image handling. Details can be found in [GHSA-jmr4-g2hv-mjj6](GHSA-jmr4-g2hv-mjj6). * A new `backing_files=on|off` option has been added to `--disk` to explicitly control whether QCOW2 backing files are permitted. This defaults to `off` to prevent the loading of backing files entirely. (#7685) * Explicit image type specification via the user interface, removing reliance on format autodetection (#7728). * Prevent sector-zero writes for autodetected raw images (#7728). Bug Fixes --------- * Fix various inconsistencies in our OpenAPI specification file (#7716, #7726) * Fix QCOW2 thread safety for multiple virtio queues (`num_queues > 1`) (#7661)
v50.0 This release has been tracked in [v50.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/6?filterQuery=release%3A%22Release+50%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). Configurable Nested Virtualization Option on x86_64 --------------------------------------------------- The `nested=on|off` option has been added to `--cpu` to allow users to configure nested virtualization support in the guest on x86_64 hosts (for both KVM and MSHV). The default value is `on` to maintain consistency with existing behavior. (#7408) Compression Support for QCOW2 ----------------------------- QCOW2 support has been extended to handle compression clusters based on zlib and zstd. (#7462) Notable Performance Improvements -------------------------------- Performance of live migration has been improved via an optimized implementation of dirty bitmap maintenance. (#7468) Live Disk Resizing Support for Raw Images ----------------------------------------- The `/vm.resize-disk` API has been introduced to allow users to resize block devices backed by raw images while a guest is running. (#7476) Developer Experience Improvements --------------------------------- Significant improvements have been made to developer experience and productivity. These include a simplified root manifest, codified and tightened Clippy lints, and streamlined workflows for `cargo clippy` and `cargo test`. (#7489) Improved File-level Locking Support ----------------------------------- Block devices now use byte-range advisory locks instead of whole-file locks. While both approaches prevent multiple Cloud Hypervisor instances from simultaneously accessing the same disk image with write permissions, byte-range locks provide better compatibility with network storage backends. (#7494) Logging Improvements -------------------- Logs now include event information generated by the event-monitor module. (#7512) Notable Bug Fixes ----------------- * Fix several issues around CPUID in the guest (#7485, #7495, #7508) * Fix snapshot/restore for Windows Guest (#7492) * Respect queue size in block performance tests (#7515) * Fix several Serial Manager issues (#7502) * Fix several seccomp violation issues (#7477, #7497, #7518) * Fix various issues around block and qcow (#7526, #7528, #7537, #7546, #7549) * Retrieve MSRs list correctly on MSHV (#7543) * Fix live migration (and snapshot/restore) with AMX state (#7534) Contributors ------------ Many thanks to everyone who has contributed to our release: * Anatol Belski <[email protected]> * Anirudh Rayabharam <[email protected]> * Bo Chen <[email protected]> * Changyuan Lyu <[email protected]> * Chengyu Fu <[email protected]> * Connor Brewster <[email protected]> * Demi Marie Obenour <[email protected]> * Eugene Korenevsky <[email protected]> * Julian Stecklina <[email protected]> * Matt Moriarity <[email protected]> * Muminul Islam <[email protected]> * Oliver Anderson <[email protected]> * Pascal Scholz <[email protected]> * Philipp Schuster <[email protected]> * Praveen K Paladugu <[email protected]> * Rob Bradford <[email protected]> * Sebastien Boeuf <[email protected]> * Songqian Li <[email protected]> * Stefan Nürnberger <[email protected]> * Thomas Prescher <[email protected]> * Wei Liu <[email protected]>
v49.0 This release has been tracked in [v49.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+49%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). MSHV Support Improvements ------------------------- On AArch64 with MSHV, firmware boot (#7391) and graceful guest shutdown (#7354) are now supported, and CI coverage has been added (#7381). Logging Improvements -------------------- Logs now use an improved timestamp format (#7355), emit an explicit message on graceful shutdown (#7346), and reduce noisy warnings with newer guest kernels (#7423). Removed Default IP and Mask for `virtio-net` Devices ---------------------------------------------------- The implicit default IP (192.168.249.1) and netmask (255.255.255.0) for `virtio-net` devices have been removed, as previously announced in the deprecation notice two releases ago (#7365). Users now can create `virtio-net` devices with no IP and netmask assigned. Notable Bug Fixes ----------------- * Prevent crash on malformed vsock connect requests (#7310) * Fix vCPU hotplug when the vCPU count exceeds 255 (#7349) * Drop the VFIO container when no VFIO devices are active (#7364) * Gracefully close preserved file descriptors on hot device removal (#7371) * Fix race condition in pause–resume cycles (#7397) * Add NetConfig offload parameters to the OpenAPI spec file (#7445) * Fix seccomp filter violation from the http-server thread (#7454) Contributors ------------ Many thanks to everyone who has contributed to our release: * Aastha Rawat <[email protected]> * Alyssa Ross <[email protected]> * Anirudh Rayabharam <[email protected]> * Ariel Chenet <[email protected]> * Bo Chen <[email protected]> * Can Zhang <[email protected]> * Eugene Korenevsky <[email protected]> * Maximilian Güntner <[email protected]> * Muminul Islam <[email protected]> * Oliver Anderson <[email protected]> * Philipp Schuster <[email protected]> * Rob Bradford <[email protected]> * Ruoqing He <[email protected]> * Wei Liu <[email protected]> * Yi Wang <[email protected]>
v48.0 This release has been tracked in [v48.0 group](https://github.com/orgs/cloud-hypervisor/projects/6/views/4?filterQuery=release%3A%22Release+48%22) of our [roadmap project](https://github.com/orgs/cloud-hypervisor/projects/6/). Experimental `fw_cfg` Device Support ------------------------------------ This feature enables passing configuration data and files, such as VM boot configurations (kernel, kernel cmdline, e820 memory map, and ACPI tables), from the host to the guest. (#7117) Experimental `ivshmem` Device Support ------------------------------------- Support for inter-VM shared memory has been added. For more information, please refer to the [ivshmem documentation](docs/ivshmem.md). (#6703) Firmware Boot Support on `riscv64` --------------------------------- In addition to direct kernel boot, firmware boot support has been added on `riscv64` hosts. (#7249) Increased vCPU Limit on x86_64/kvm ---------------------------------- The maximum number of supported vCPUs on x86_64 hosts using KVM has been raised from 254 to 8192. (#7299) Improved Block Performance with Small Block Sizes ------------------------------------------------- Performance for `virtio-blk` with small block sizes (16KB and below) is enhanced via submitting async IO requests in batches. (#7146) Faster VM Pause Operation ------------------------- The VM pause operation now is significantly faster particularly for VMs with a large number of vCPUs. (#7290) Updated Documentation on Windows Guest Support ---------------------------------------------- Our Windows documentation now includes instructions to run Windows 11 guests, in addition to Windows Server guests. (#7218) Policy on AI Generated Code --------------------------- We will decline any contributions known to contain contents generated or derived from using Large Language Models (LLMs). Details can be found in our [contributing documentation](CONTRIBUTING.md). (#7162) Removed SGX Support ------------------- The SGX support has been removed, as announced in the deprecation notice two release cycles ago. (#7093) Notable Bug Fixes ----------------- * Seccomp filter fixes with glibc v2.42 (#7327) * Various fixes related to (#7331, #7334, #7335)
PreviousNext