Beat
Cloud Hypervisor
Cloud Hypervisor VMM news
Failed TCP live migration can hang Cloud Hypervisor
Live migration over TCP can hang Cloud Hypervisor when the transfer fails or is canceled. The source waits forever for its copy workers to exit, and the destination spins if the sender drops the connection mid-copy.
Cloud Hypervisor aborts on a VHDX header at the sequence max
Cloud Hypervisor's VHDX disk format stores a sequence number in the header and bumps it on write. A disk whose header already sat at the highest 64-bit value made the VMM abort on the first write.
Cloud Hypervisor can now read virtio-balloon statistics
A virtio balloon is the guest device Cloud Hypervisor uses to reclaim unused memory. The VMM can now pull the balloon's latest statistics over the host control API, and it caches the last sample so the call does not wait on the guest.
Cloud Hypervisor missed virtio-iommu when translating MSI
MSI interrupts need a guest address turned into a host address. With virtio-iommu that translation skipped the virtual IOMMU, so the interrupt could go to the wrong place.
Cloud Hypervisor could publish a QCOW table before it owned it
QCOW images keep a two-level map of guest disk blocks. A new second-level table could be pointed at from the first level before Cloud Hypervisor owned that table.
Cloud Hypervisor can restore memory copy-on-write
Restoring a snapshot used to write guest memory in place. A new restore mode maps the snapshot copy-on-write so the first write from the guest makes a private copy.
Cloud Hypervisor now kicks a vhost-user backend after reconnect
A vhost-user device talks to a helper process over a socket. After that socket reconnects, the backend was not always notified, so the device could sit idle.
Cloud Hypervisor reserves hugepage memory by default
Huge-page guests need the host to reserve that memory. If you did not set a reserve flag, Cloud Hypervisor now turns reserve on for hugepages.
Cloud Hypervisor now requires a disk image type
Opening a guest disk used to guess the image format. You now have to name the type, and an unspecified type is rejected.
Cloud Hypervisor VHDX flush did not actually hit disk
A guest flush on a VHDX disk only flushed userspace buffers. It did not sync the file the way raw, VHD, and VMDK already do.
Cloud Hypervisor put gaps back between boot and hotplug RAM
Cloud Hypervisor had stopped leaving a gap between boot RAM and hotplug RAM, so one access could span two host maps. The gap is back.
Cloud Hypervisor identity-maps Grace Blackwell GPU BARs
On NVIDIA Grace Blackwell GPUs, the high-bandwidth memory path skips the SMMU. The guest has to see the host physical BAR address or the GPU driver fails.
Cloud Hypervisor wrote PCI NUMA handles the wrong way
Cloud Hypervisor used to encode a PCI device's NUMA handle with the bus and function bytes repeated. A guest following ACPI 6.6 would not see that device on the node you asked for.
Cloud Hypervisor could die on a large HTTP API body
A large HTTP API request could kill Cloud Hypervisor when the allocator remapped memory. The HTTP thread's syscall filter now allows that remap.
Cloud Hypervisor told guests their L3 cache spanned every package
Cloud Hypervisor used to copy the host's last-level cache map into the guest. On a multi-package VM that map could cover every vCPU as one cache, so the guest kernel scheduled as if they all shared last-level cache.
Cloud Hypervisor used to crash when a VFIO DMA range crossed a mapping gap
Cloud Hypervisor used to abort if a pass-through DMA request sat inside a device BAR but spanned two separate host mappings. That is now a failed lookup, not a crash.
Cloud Hypervisor used to reject large VM configs over HTTP
Cloud Hypervisor's HTTP control API used to reject request bodies bigger than about 50 KB. A create for a big VM with lots of disks and per-queue CPU lists could hit that wall, so the cap is now 4 MiB.
Cloud Hypervisor extra PCI buses no longer reserve slot 0
A host bridge is the dummy device firmware expects at slot 0 of the first PCI bus. Extra buses used to get one too, so a real device could not sit at 00:00.0.
Cloud Hypervisor device-remove can be retried when the guest is busy
Under load the guest may miss the ACPI eject interrupt. A second remove then failed because the device was already gone from the config.
Cloud Hypervisor picked up mshv and VFIO crate 0.7.0 bugfixes
The Microsoft Hypervisor and VFIO helper crates are rust-vmm libraries Cloud Hypervisor uses to talk to the host. This bump lands their 0.7.0 bugfixes with no guest-facing feature.
Cloud Hypervisor could crash restoring a VM with an unused virtio device
Restore tried to read a virtio ring for a queue the guest never set up. On ARM that read hits unbacked memory and the VMM panics.
Cloud Hypervisor no longer dies when the host tap is not ready
Cloud Hypervisor sends guest packets through a host tap, a virtual ethernet pipe. If that pipe was not ready, one refused write used to shut the guest down.
Cloud Hypervisor now refuses a live migrate if the destination lacks the guest's matrix CPU features
Live migrate moves a running guest to another host. Main now refuses the move if the destination cannot offer the same Intel matrix CPU features the guest already saw.
Cloud Hypervisor ARM snapshots copied one CPU's interrupt state onto the others
On ARM, a Cloud Hypervisor snapshot of a multi-CPU guest saved every CPU's interrupt-controller state as a copy of CPU 0. After restore, pending interrupts could be lost.