Cloud Hypervisor v0.4.0 Released!
Posted December 13, 2019 by Cloud Hypervisor Team ‐ 3 min read
This release has been tracked through the 0.4.0 project.
cloud-hypervisor version 0.4.0 include:
Dynamic virtual CPUs addition
As a way to vertically scale Cloud-Hypervisor guests, we now support dynamically adding virtual CPUs to the guests, a mechanism also known as CPU hot plug. Through hardware-reduced ACPI notifications, Cloud Hypervisor can now add CPUs to an already running guest and the high level operations for that process are documented here
During the next release cycles we are planning to extend Cloud Hypervisor hot plug framework to other resources, namely PCI devices and memory.
Programmatic firmware tables generation
As part of the CPU hot plug feature enablement, and as a requirement for hot
plugging other resources like devices or RAM, we added support for
programmatically generating the needed ACPI tables. Through a dedicated
acpi-tables crate, we now have a flexible and clean way of generating those
tables based on the VMM device model and topology.
Filesystem and block devices vhost-user backends
Our objective of running all Cloud Hypervisor paravirtualized I/O to a vhost-user based framework is getting closer as we’ve added Rust based implementations for vhost-user-blk and virtiofs backends. Together with the vhost-user-net backend that came with the 0.3.0 release, this will form the default Cloud Hypervisor I/O architecture.
Guest pause and resume
As an initial requiremnt for enabling live migration, we added support for pausing and resuming any VMM components. As an intermediate step towards live migration, the upcoming guest snapshotting feature will be based on the pause and resume capabilities.
Userspace IOAPIC by default
As a way to simplify our device manager implementation, but also in order to stay away from privileged rings as often as possible, any device that relies on pin based interrupts will be using the userspace IOAPIC implementation by default.
PCI BAR reprogramming
In order to allow for a more flexible device model, and also support guests that would want to move PCI devices, we added support for PCI devices BAR reprogramming.
As we wanted to be more flexible on how we manage the Cloud Hypervisor project, we decided to move it under a dedicated GitHub organization. Together with the cloud-hypervisor project, this new organization also now hosts our kernel and firmware repositories. We may also use it to host any rust-vmm that we’d need to temporarily fork. Thanks to GitHub’s seamless repository redirections, the move is completely transparent to all Cloud Hypervisor contributors, users and followers.
Many thanks to everyone that contributed to the 0.4.0 release:
- Cathy Zhang firstname.lastname@example.org
- Emin Ghuliev email@example.com
- Jose Carlos Venegas Munoz firstname.lastname@example.org
- Qiu Wenbo email@example.com
- Rob Bradford firstname.lastname@example.org
- Samuel Ortiz email@example.com
- Sebastien Boeuf firstname.lastname@example.org
- Sergio Lopez email@example.com
- Wu Zongyong firstname.lastname@example.org
See the GitHub Release for the release assets.