|
| 1 | +--- |
| 2 | +title: "Cloud Hypervisor v53.0 Released!" |
| 3 | +date: 2026-07-12T21:55:39Z |
| 4 | +draft: false |
| 5 | +contributors: [Cloud Hypervisor Team] |
| 6 | +--- |
| 7 | +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/). |
| 8 | + |
| 9 | +### Snapshot/Restore and Live Migration Improvements |
| 10 | + |
| 11 | +* An offloaded snapshot/restore daemon has been introduced, allowing snapshot |
| 12 | + and restore to be carried out by an external process. The live migration |
| 13 | + protocol has been extended so page faults can be serviced from the source. |
| 14 | + This enables *postcopy* for remote live migration and *on-demand paging* for |
| 15 | + the offload daemon, both built on `userfaultfd`, bringing the offload daemon |
| 16 | + to parity with the internal snapshot/restore implementation (#8403, #8264, |
| 17 | + #8556). |
| 18 | +* Snapshot pages can now be prefaulted in the background after a |
| 19 | + `userfaultfd`-based restore, combining a fast restore-to-resume with fully |
| 20 | + faulted-in memory shortly afterwards. The number of prefault threads scales |
| 21 | + with the available parallelism (#8150, #8538, #8484). |
| 22 | +* Live migration data can now be encrypted using mutual TLS (#8053). |
| 23 | +* VFIO migration v2 is now supported for same-host snapshot and restore of |
| 24 | + migratable VFIO devices (for example ConnectX VFs bound to `mlx5_vfio_pci`) |
| 25 | + (#8303). |
| 26 | +* Migrated guests now issue post-migration network announcements so that |
| 27 | + connectivity on the new host is refreshed within milliseconds rather than |
| 28 | + taking up to 20 seconds to recover (#8263). |
| 29 | +* The `vm.send-migration` API endpoint now returns immediately rather than |
| 30 | + blocking for the duration of the migration (#8021). |
| 31 | + |
| 32 | +### Nested Hyper-V (Windows Guest) Support |
| 33 | + |
| 34 | +Windows guests can now run nested Hyper-V as used by WSL2 on the KVM backend |
| 35 | +(#8481). |
| 36 | + |
| 37 | +### `virtio-rtc` Device Support |
| 38 | + |
| 39 | +Support for `virtio-rtc` devices has been added (via `--rtc`), providing a |
| 40 | +Real Time Clock to the guest. This is primarily useful for, and only enabled by |
| 41 | +default on, MSHV guests that do not have access to `kvmclock` (#7795). |
| 42 | + |
| 43 | +### Guest Clock Updates Across Snapshot/Restore and Migration |
| 44 | + |
| 45 | +The guest clock is now advanced to account for the elapsed wall-clock time when |
| 46 | +a VM is resumed after a snapshot-restore or a live migration so the guest sees |
| 47 | +the correct time of day immediately rather than lagging behind by the downtime. |
| 48 | +On x86 the kvmclock realtime flag is preserved so that the kernel adjusts the |
| 49 | +clock automatically (#8256). On ARM64 the guest counter is advanced using the |
| 50 | +`KVM_REG_ARM_TIMER_CNT` interface (#8343). vCPU TSC offsets are also |
| 51 | +re-synchronized on restore (#8437). |
| 52 | + |
| 53 | +### Buffered Serial Output for Late-Connecting Clients |
| 54 | + |
| 55 | +In socket serial mode (`--serial socket=...`) the output produced before a |
| 56 | +client connects is now buffered so a console client that attaches after boot |
| 57 | +sees the earlier output (#8322). |
| 58 | + |
| 59 | +### New Command-Line and API Options |
| 60 | + |
| 61 | +* A `reserve=on|off` option has been added to `--memory` and |
| 62 | + `--memory-zone` (default `off`). When enabled, guest RAM is mapped |
| 63 | + without `MAP_NORESERVE` so an overcommitted configuration fails cleanly at VM |
| 64 | + creation with `ENOMEM` (#8350). |
| 65 | +* The SMBIOS/DMI fields exposed via `--platform` have been extended and scoped |
| 66 | + to specific SMBIOS structures, for workloads that consume this data for |
| 67 | + licensing, inventory, or host identification (#8259). |
| 68 | +* The VMM can now consume pre-opened VFIO `cdev` and `iommufd` file descriptors |
| 69 | + supplied by the caller, letting a privileged orchestrator open the device |
| 70 | + nodes once and hand the FDs to an unprivileged VMM at boot or at runtime. |
| 71 | + This is also a prerequisite for live migration of VMs using VFIO devices |
| 72 | + (#8287). |
| 73 | +* A "glog style" log format has been added, with a single-character level and |
| 74 | + local or UTC timestamps (#8265). |
| 75 | +* A new `--seccomp=errno` option has been added that will result in filtered |
| 76 | + syscalls to set `errno` to `EPERM`. This can be used when the killing of the |
| 77 | + process with `SIGSYS` is not desired (#8578). |
| 78 | + |
| 79 | +### Deprecations |
| 80 | + |
| 81 | +* The legacy `--platform` SMBIOS keys `serial_number` and `uuid` are |
| 82 | + deprecated in favor of the new SMBIOS-structure-scoped keys. The |
| 83 | + legacy keys continue to be accepted, with a warning, and will be |
| 84 | + removed in a future release (#8259). |
| 85 | +* The generic `vhost-user` device's `virtio_id` command-line |
| 86 | + parameter is deprecated in favor of `device_type`, matching the API |
| 87 | + and configuration naming. `virtio_id` is retained as an alias that |
| 88 | + logs a warning and will be removed in a later release (#8564). |
| 89 | + |
| 90 | +### Notable Bug Fixes |
| 91 | + |
| 92 | +* Revert `create memfd for private mappings`, which caused a serious memory |
| 93 | + consumption regression without hugepages or `shared=on` (#8246). |
| 94 | +* Advertise the mandatory Hyper-V partition privileges so Windows |
| 95 | + guests enable the reference TSC page instead of taking a VM exit on |
| 96 | + every clock read (#8380). |
| 97 | +* Correctly save and restore ARM64 SVE registers (#8268). |
| 98 | +* Set the guest physical address space size correctly on AMD (#8291). |
| 99 | +* Sparse align the initial PCI BAR placement to avoid a Windows rebalancing |
| 100 | + deadlock (#8205). |
| 101 | +* Various TPM fixes, including for Windows guests (#8305, #8312). |
| 102 | +* Preserve `WRITE_ZEROES` on QCOW2 images with backing files (#8245) |
| 103 | + and fix `WriteZeroes` sector arithmetic overflow (#8388). |
| 104 | +* Improve `O_DIRECT` handling so that `direct=on` is usable on hosts |
| 105 | + requiring 4K alignment, including opening fixed VHD images (#8335). |
| 106 | +* Resolve relative QCOW2 backing file paths correctly (#8196). |
| 107 | +* Drain block I/O before the device is paused (#8356) and retry |
| 108 | + locking when interrupted by `EINTR` (#8402). |
| 109 | +* Fix VHDX region-table overlap detection (#8483) and an incomplete |
| 110 | + bounds check in the VHDX synchronous I/O worker (#8529). |
| 111 | +* Fix a guest deadlock by signalling `DEVICE_NEEDS_RESET` and |
| 112 | + releasing the activation barrier when a virtio device fails to |
| 113 | + activate (#8295). |
| 114 | +* Handle short and misaligned MMIO/PIO accesses without panicking: |
| 115 | + validate the MMIO access size (#8506), return all-ones for |
| 116 | + unregistered MMIO/PIO reads (#8237), correct `fw_cfg` short and long |
| 117 | + reads (#8507), respect the PCI CFG capability length for BAR access |
| 118 | + (#8272, #8238), and reject incorrect MSI-X table and PBA reads (#8417). |
| 119 | +* Translate virtio-iommu buffers that span adjacent mappings (#8520), |
| 120 | + and add centralized virtio descriptor-range validation (#8232). |
| 121 | +* Handle a guest/host half-close on vsock connections (#8372). |
| 122 | +* Avoid a guest-triggerable VMM panic by replacing asserts on ACPI |
| 123 | + device accesses with checks (#8405). |
| 124 | +* Emit a complete ACPI `_S5_` sleep package, fixing an early-boot |
| 125 | + fault on OpenBSD guests (#8426). |
| 126 | +* Transfer post-snapshot guest memory changes during live migration to |
| 127 | + avoid corruption with `vhost-user` devices (#8361). |
| 128 | +* Improve configuration validation to return errors instead of |
| 129 | + panicking on malformed input (#8511), require the `ch-remote` |
| 130 | + snapshot/restore config arguments instead of panicking (#8331), |
| 131 | + reject resizing below the boot memory size (#8428), reject removal of |
| 132 | + an already-removed device (#8559), and fix generic `vhost-user` |
| 133 | + parsing (#8564). |
| 134 | +* Don't leak a file descriptor when ejecting a VFIO device (#8367), |
| 135 | + and fix a PCI device hotplug race by deferring device visibility |
| 136 | + (#8369). |
| 137 | +* Fix PCI segment ID validation (#8377) and make the PCI BDF |
| 138 | + configurable for the balloon and ivshmem devices (#8310). |
| 139 | +* Return HTTP 404 for API requests against a VM that has not been |
| 140 | + created (#8320), and omit unset optional fields from API responses so |
| 141 | + that strict client generators accept them (#8321). |
| 142 | +* Clean up a stale API socket under a lock before binding (#8325). |
| 143 | +* Cache the local timezone before installing seccomp filters (#8327). |
| 144 | +* Enhance the ACPI PPTT with cache topology information (#7893). |
| 145 | +* Correct several OpenAPI specification entries: the |
| 146 | + `iommu_address_width` field name (#8244), integer schema formats |
| 147 | + (#8278), `GenericVhostUserConfig` properties (#8543), a parameter |
| 148 | + name (#8544), and the `vmm.nmi` to `vm.nmi` endpoint (#8571). |
| 149 | +* Deduplicate `VmConfig::preserved_fds` (#8271). |
| 150 | + |
| 151 | +### Contributors |
| 152 | + |
| 153 | +Many thanks to everyone who has contributed to our release: |
| 154 | + |
| 155 | +* Aastha Rawat <aastharawat@microsoft.com> |
| 156 | +* Adel-Ayoub <adelayoub.maaziz@gmail.com> |
| 157 | +* Alexander Lvov <alexander.lvov.git@gmail.com> |
| 158 | +* Alyssa Ross <hi@alyssa.is> |
| 159 | +* Anatol Belski <anbelski@linux.microsoft.com> |
| 160 | +* Andrei Vagin <avagin@google.com> |
| 161 | +* Anirudh Rayabharam <anrayabh@microsoft.com> |
| 162 | +* Atish Patra <atishp@meta.com> |
| 163 | +* Bo Chen <bchen@crusoe.ai> |
| 164 | +* Cameron Baird <cameronbaird@microsoft.com> |
| 165 | +* Chris Webb <chris@arachsys.com> |
| 166 | +* CMGS <ilskdw@gmail.com> |
| 167 | +* Damian Barabonkov <dbctl@pm.me> |
| 168 | +* Daniel Verkamp <drv@meta.com> |
| 169 | +* doge <me@crackerben.com> |
| 170 | +* Dylan Reid <dgreid@fb.com> |
| 171 | +* Gauthier Jolly <contact@gjolly.fr> |
| 172 | +* Henry Hrvoje Tonkovac <htonkovac@gmail.com> |
| 173 | +* Ian Klemm <hi@ianklemm.de> |
| 174 | +* Julian Schindel <julian.schindel@cyberus-technology.de> |
| 175 | +* Leander Kohler <leander.kohler@cyberus-technology.de> |
| 176 | +* Max Makarov <maxpain@linux.com> |
| 177 | +* Meng Zhuo <mengzhuo@iscas.ac.cn> |
| 178 | +* Muminul Islam <muislam@microsoft.com> |
| 179 | +* Nikolas Kyx <55556836+nyx191@users.noreply.github.com> |
| 180 | +* Oliver Anderson <oliver.anderson@cyberus-technology.de> |
| 181 | +* Pascal Scholz <pascal.scholz@cyberus-technology.de> |
| 182 | +* Philipp Schuster <philipp.schuster@cyberus-technology.de> |
| 183 | +* Rob Bradford <rbradford@meta.com> |
| 184 | +* Roman <roman@vanesyan.com> |
| 185 | +* Rowen-Ye <rowenye1@gmail.com> |
| 186 | +* Ruben Hakobyan <hruben@meta.com> |
| 187 | +* Saravanan D <saravanand@crusoe.ai> |
| 188 | +* Sayed Kaif <metsw24@gmail.com> |
| 189 | +* Sebastian Eydam <sebastian.eydam@cyberus-technology.de> |
| 190 | +* Sebastien Boeuf <sboeuf@meta.com> |
| 191 | +* tchaton <thomas.chaton.ai@gmail.com> |
| 192 | +* Thomas Prescher <thomas.prescher@cyberus-technology.de> |
| 193 | +* tonic <tonicbupt@gmail.com> |
| 194 | +* Tushar Khatri <hello@tusharkhatri.in> |
| 195 | +* wangyf0611 <wangyufeng@iscas.ac.cn> |
| 196 | +* Wei Liu <liuwe@microsoft.com> |
| 197 | +* wuxinyue <wuxinyue.wxy@antgroup.com> |
| 198 | +* yanjianqing <yanjianqing@kylinos.cn> |
| 199 | +### Download |
| 200 | + See the <a href="https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v53.0">GitHub Release</a> for the release assets. |
0 commit comments