Cloud Hypervisor Versions Save

A Virtual Machine Monitor for modern Cloud workloads. Features include CPU, memory and device hotplug, support for running Windows and Linux guests, device offload with vhost-user and a minimal compact footprint. Written in Rust with a strong focus on security.

v32.1

10 months ago

This is a bug fix release. The following issues have been addressed:

  • Report errors explicitly to users when VM failed to boot (#5453)
  • Fix VFIO on platforms with non-4k page size (#5450, #5469)
  • Fix TDX initialization (#5454)
  • Ensure all guest memory regions are page-size aligned (#5496)
  • Fix seccomp filter lists related to virtio-console, serial and pty (#5506, #5524)
  • Populate APIC ID properly (#5512)
  • Ignore and warn TAP FDs in more situations (#5522)

v31.2

10 months ago

This is a bug fix release. The following issues have been addressed:

  • The number of vCPUs is capped at the hypervisor maximum (#5357)
  • Fixes for TTY reset (#5414)
  • CPU topology fixes on MSHV (#5325)
  • Seccomp fixes for older distributions (#5397)
  • Report errors explicitly to users when VM failed to boot (#5453)
  • Fix VFIO on platforms with non-4k page size (#5450, #5469)
  • Fix TDX initialization (#5454)
  • Ensure all guest memory regions are page-size aligned (#5496)
  • Fix seccomp filter lists related to virtio-console, serial and pty (#5506, #5524)
  • Populate APIC ID properly (#5512)
  • Ignore and warn TAP FDs in more situations (#5522)

v33.0

10 months ago

This release has been tracked in our roadmap project as iteration v33.0. The following user visible changes have been made:

D-Bus based API

A D-Bus based API has been added as an alternative to the existing REST API. This feature is gated by the dbus_api feature. Details can be found in the API documentation.

Expose Host CPU Cache Details for AArch64

Now the CPU cache information on the host is properly exposed to the guest on AArch64.

Notable Bug Fixes

  • Report errors explicitly to users when VM failed to boot (#5453)
  • Fix VFIO on platforms with non-4k page size (#5450, #5469)
  • Fix TDX initialization (#5454)
  • Ensure all guest memory regions are page-size aligned (#5496)
  • Fix seccomp filter lists related to virtio-console, serial and pty (#5506, #5524)
  • Populate APIC ID properly (#5512)
  • Ignore and warn TAP FDs in more situations (#5522)

Contributors

Many thanks to everyone who has contributed to our release:

v32.0

1 year ago

This release has been tracked in our roadmap project as iteration v32.0. The following user visible changes have been made:

Increased PCI Segment Limit

The maximum number of PCI segments that can be used is now 96 (up from 16).

API Changes

  • The VmmPingResponse now includes the PID as well as the build details. (#5348)

Notable Bug Fixes

  • Ignore and warn TAP FDs sent via the HTTP request body (#5350)
  • Properly preserve and close valid FDs for TAP devices (#5373)
  • Only use KVM_ARM_VCPU_PMU_V3 if available (#5360)
  • Only touch the tty flags if it's being used (#5343)
  • Fix seccomp filter lists for vhost-user devices (#5361)
  • The number of vCPUs is capped at the hypervisor maximum (#5357)
  • Fixes for TTY reset (#5414)
  • CPU topology fixes on MSHV (#5325)
  • Seccomp fixes for older distributions (#5397)

Contributors

Many thanks to everyone who has contributed to our release:

v28.3

1 year ago

This is a bug fix release. The following issues have been addressed:

  • Ignore and warn TAP FDs sent via the HTTP request body (#5350)
  • Properly preserve and close valid FDs for TAP devices (#5373)
  • Only use KVM_ARM_VCPU_PMU_V3 if available (#5360)
  • Fix seccomp filter lists for vhost-user devices (#5361)
  • Fix the offset setting while removing the entire mapping of vhost-user FS client (#5235)
  • Set vcpu thread status properly and signal exit_evt upon thread exit (#5211)
  • Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5179)
  • Bug fix to OpenAPI specification file (#5186)

v31.1

1 year ago

This is a bug fix release. The following issues have been addressed:

  • Ignore and warn TAP FDs sent via the HTTP request body (#5350)
  • Properly preserve and close valid FDs for TAP devices (#5373)
  • Only use KVM_ARM_VCPU_PMU_V3 if available (#5360)
  • Only touch the tty flags if it's being used (#5343)
  • Fix seccomp filter lists for vhost-user devices (#5361)

v30.1

1 year ago

This is a bug fix release. The following issues have been addressed:

  • Ignore and warn TAP FDs sent via the HTTP request body (#5350)
  • Properly preserve and close valid FDs for TAP devices (#5373)
  • Only use KVM_ARM_VCPU_PMU_V3 if available (#5360)
  • Only touch the tty flags if it's being used (#5343)
  • Fix seccomp filter lists for vhost-user devices (#5361)
  • Fix the offset setting while removing the entire mapping of vhost-user FS client (#5235)
  • Fix the ShutdownVmm and Shutdown commands to call the correct API endpoint (#5322)

v31.0

1 year ago

This release has been tracked in our roadmap project as iteration v31.0. The following user visible changes have been made:

Update to Latest acpi_tables

Adapted to the latest acpi_tables. There has been significant API changes in the crate.

Update Reference Kernel to 6.2

Updated the recommended guest kernel version from 6.1.6 to 6.2.

Improvements on Console SIGWINCH Handler

A separate thread had been created to capture the SIGWINCH signal and resize the guest console. Now the thread is skipped if the console is not resizable.

Two completely different code paths existed for handling console resizing, one for tty and the other for pty. That makes the understanding of the console handling code unnecessarily complicated. Now the code paths are unified. Both tty and pty are supported in single SIGWINCH handler. And the new handler can works with kernel versions earlier than v5.5.

Remove Directory Support from MemoryZoneConfig::file

Setting a directory to MemoryZoneConfig::file is no longer supported.

Before this change, user can set a directory to file of the --memory-zone option. In that case, a temporary file will be created as the backing file for the mmap(2) operation. This functionality has been unnecessary since we had the native support for hugepages and allocating anonymous shared memory.

Documentation Improvements

  • Various improvements in API document
  • Improvements in Doc comments
  • Updated Slack channel information in README

Notable Bug Fixes

  • Fixed the offset setting while removing the entire mapping of vhost-user FS client.
  • Fixed the ShutdownVmm and Shutdown commands to call the correct API endpoint.

Contributors

Many thanks to everyone who has contributed to our release:

v30.0

1 year ago

This release has been tracked in our roadmap project as iteration v30.0. The following user visible changes have been made:

Command Line Changes for Reduced Binary Size

The clap crate was replaced by the argh crate to create our command line, which reduced our release binary size from 3.6MB to 3.3MB. There were several syntax changes:

  • All --option=value commands now are --option value.
  • The --disk DISK1 DISK2 command now is --disk DISK1 --disk DISK2.
  • The -vvv command now is -v -v -v

Basic vfio-user Server Support

Our vfio-user crate is extended to provide basic server side support with an example of gpio vfio-user device. This crate now is moved to its own repository under the rust-vmm organization.

Heap Profiling Support

A new building target is added for profiling purposes with examples of heap profiling using dhat gated by the dhat-heap feature.

Documentation Improvements

The documentation on Intel TDX is expanded with details of the building and using TD-Shim, references to TDX Tools, and version information of guest/host kernel/TDVF/TDShim being tested. Also, a new 'heap profiling' documentation is added with improvements on the existing 'profiling' documentation.

Notable Bug Fixes

  • Close FDs for TAP devices that are provided to VM (#5199, #5206)
  • Set vcpu thread status properly and signal exit_evt upon thread exit (#5211)
  • Populate CPUID leaf 0x4000_0010 (TSC frequency) (#5178, #5179)
  • Inform the TPM guest driver upon failed TPM requests on the host (#5151)
  • Bug fix to OpenAPI specification file (#5186)

Contributors

Many thanks to everyone who has contributed to our release:

v28.2

1 year ago

This is a bug fix release. The following issues have been addressed:

  • Fix QCOW2 refcount table size (#5034)
  • Fix unpause support on MSHV in dual binary (#5037)
  • Threads inside virtio devices are now shutdown on reboot (#5095)