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.
Highlights for 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.
New cloud-hypervisor
organization
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.
Contributors
Many thanks to everyone that contributed to the 0.4.0 release:
- Cathy Zhang cathy.zhang@intel.com
- Emin Ghuliev drmint80@gmail.com
- Jose Carlos Venegas Munoz jose.carlos.venegas.munoz@intel.com
- Qiu Wenbo qiuwenbo@phytium.com.cn
- Rob Bradford robert.bradford@intel.com
- Samuel Ortiz sameo@linux.intel.com
- Sebastien Boeuf sebastien.boeuf@intel.com
- Sergio Lopez slp@redhat.com
- Wu Zongyong wuzongyong@linux.alibaba.com
Download
See the GitHub Release for the release assets.