GitHub / cloud-hypervisor / cloud-hypervisor
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.
JSON API: http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloud-hypervisor%2Fcloud-hypervisor
PURL: pkg:github/cloud-hypervisor/cloud-hypervisor
Stars: 4,717
Forks: 515
Open issues: 137
License: None
Language: Rust
Size: 26.4 MB
Dependencies parsed at: Pending
Created at: over 6 years ago
Updated at: 4 days ago
Pushed at: 4 days ago
Last synced at: 4 days ago
Topics: cloud-workloads, kvm, rust-vmm, virtualization
v47.0
v47.0
This release has been tracked in v47.0 group of our roadmap project.
Block Device Error Reporting to the Guest
Instead of exiting on I/O errors, the virtio-block
device now reports
errors to the guest using VIRTIO_BLK_S_IOERR
. It improves the user
experience particularly when the guest rootfs is not backed by the
affected block device. (#7107)
Nice Error Messages on Exit
We now have the chain of errors being reported and printed nicely, when
Cloud Hypervisor or ch-remote exits on errors. (#7066)
Alphabetically Sorted CLI Options for ch-remote
To improve readability, ch-remote now prints help information in
alphabetical order. (#7130)
Notable Bug Fixes
- Error out early when block device serial is too long (#7124)
- Fix partial commands being discarded for
virtio-vsock
(#7195) - Disable the broken interrupt support for the
rtc_pl031
device to
prevent spurious guest interrupts (#7199)
Deprecations
- A default IP (
192.168.249.1
) and mask (255.255.255.0
) are
currently assigned to thevirtio-net
device if no value is specified
by users. Such behavior is now deprecated. Users of this behavior will
receive a warning message and should make adjustments. The behavior
will be removed in two release cycles (v49.0).
Download
v46.0
v46.0
This release has been tracked in v46.0 group of our roadmap project.
--disk
File-level Locking Support with Now file-level locking is enforced for disk images, provided by users
with --disk
. This ensures that only a single Cloud Hypervisor instance
can obtain write access to a given disk image at any time, preventing
misconfiguration and avoiding potential data corruption. (#6974)
Improved Error Reporting with VM Resizing
Instead of returning a generic error 400
(e.g. BadRequest
), users
now get a more specific error 429
(e.g. TooManyRequests
) when a
pending VM resizing is not completed. This allows users to better handle
different errors, say retrying the request when applicable. (#7043)
--net
IPv6 Address Support with It is now possible to specify an IPv6 address and mask when creating a
network interface with --net
. (#7048)
Experimental AArch64 Support with the MSHV Hypervisor
It is now possible to start VMs on AArch64 platforms when using MSHV
hypervisor. (#7055)
Deprecated SGX Support
The SGX support now is deprecated with a warning message if it being
used, with the intention to remove its support from our code base in two
release cycles (e.g. v48.0). (#7090)
Notable Bug Fixes
- Remove
path
as required forDiskConfig
from the OpenAPI spec file
(#7017) - Properly parse PCI capabilities (#7018)
- Reprogram PCI device BAR when its MSE bit is set (#7063)
- Update IOMMU mappings of MMIO regions with BAR reprogram for VFIO
devices (#7064) - Avoid resizing VMs to zero vCPUs (#7086)
- Fix extended topology enumeration leaf exposed to the guest (#7087)
Contributors
Many thanks to everyone who has contributed to our release:
- Bingxin Li bl497@cam.ac.uk
- Bo Chen bchen@crusoe.ai
- Fabiano Fidêncio fidencio@northflank.com
- Gregory Anders ganders@cloudflare.com
- Jinank Jain jinankjain@microsoft.com
- Julian Stecklina julian.stecklina@cyberus-technology.de
- Muminul Islam muislam@microsoft.com
- Paolo Bonzini pbonzini@redhat.com
- Philipp Schuster philipp.schuster@cyberus-technology.de
- Rob Bradford rbradford@rivosinc.com
- Ruoqing He heruoqing@iscas.ac.cn
- Thomas Prescher thomas.prescher@cyberus-technology.de
- abm-77 andrewmiller77@protonmail.com
Download
v45.0
v45.0
This release has been tracked in v45.0 group of our roadmap project.
riscv64
Architecture Support
Experimental Cloud Hypervisor now has experimental riscv64
architecture
support. Details can be found from the riscv
documentation.
Alphabetically Sorted CLI Options
To improve the readability of CLI options, the output of the --help
now is alphabetically sorted. (#6988)
Improved Downtime of VM Live Migration
The downtime of VM live migration is reduced via delaying some of the
tearing down process of the source VM after the destination VM is up and
running. (#6987)
Notable Bug Fixes
- Fix seccomp filters related to http-api thread (#6967)
- Handle cross-page access in the emulator for mshv (#6968)
Contributors
Many thanks to everyone who has contributed to our release:
- Anatol Belski anbelski@linux.microsoft.com
- Andrew Consroe aconz2@gmail.com
- Bo Chen bchen@crusoe.ai
- Jinank Jain jinankjain@microsoft.com
- Jinrong Liang cloudliang@tencent.com
- Philipp Schuster philipp.schuster@cyberus-technology.de
- Ruoqing He heruoqing@iscas.ac.cn
- Stefan Kober stefan.kober@cyberus-technology.de
- Wei Liu liuwe@microsoft.com
Download
v44.0
v44.0
v44.0
This release has been tracked in our roadmap project as iteration
v44.0. The following user visible changes have been made:
virtio-iommu
Address Width
Configurable The iommu_address_width
option has been added to --platform
to allow users
to limit the virtio-iommu
address space in the guest. (#6900)
Notable Performance Improvements
The VIRTIO_BLK_F_SEG_MAX
feature has been enabled for virtio-block
devices,
which brings significant performance improvements on throughput. (#6885)
The io_uring
entries are no longer forced to use async helper workers,
delegating the decision to the kernel. This change resolved the issue of having
excessive amount of worker threads when io_uring
is being used, which is
expected to improve performance, such as reducing memory usage and reduce CPU
contention.
New Fuzzers
Our continuous fuzzing infrastructure is augmented with two new fuzzers to cover
x86 instruction emulator and virtio-vsock
.
Notable Bug Fixes
- Fix short read and short write that impact QCOW and VHDX support. (#6884)
- Various bug fixes on VHDX support. (#6890, #6899)
Contributors
Many thanks to everyone who has contributed to our release:
- Arvind Vasudev avasudev@crusoeenergy.com
- Bo Chen bo.arvin.chen@gmail.com
- Nikolay Edigaryev edigaryev@gmail.com
- Rob Bradford rbradford@rivosinc.com
- Ruoqing He heruoqing@iscas.ac.cn
- Wei Liu liuwe@microsoft.com
v43.0
This release has been tracked in our roadmap
project as iteration
v43.0. The following user visible changes have been made:
Live Migration over TCP Connections
Support has been added to enable direct live migration from two hosts via TCP
connections. This supplements the existing support for migrating over a UNIX
socket which can then be tunnelled as desired. The documentation has been
updated. (#6850)
Notable Performance Improvements
The VIRTIO_RING_F_INDIRECT_DESC
feature has been enabled for virtio-block
devices. This significantly increases the throughput of the devices with a
small negative impact on latency. (#6826)
Notable Bug Fixes
- Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64
architectures. Whether they function depends on the host PCI host bridge
support - previously they would be rejected even if the driver did not use
these BARs. (#6871) - Command line groups were adjusted to ensure that at least one payload
parameter was provided if any other VM parameters provided. (#6832)
Contributors
Many thanks to everyone who has contributed to our release:
- Alyssa Ross hi@alyssa.is
- Andrew Consroe aconz2@gmail.com
- Bo Chen bo.arvin.chen@gmail.com
- Jinrong Liang cloudliang@tencent.com
- Julian Stecklina julian.stecklina@cyberus-technology.de
- Muminul Islam muislam@microsoft.com
- Rob Bradford rbradford@rivosinc.com
- Ruoqing He heruoqing@iscas.ac.cn
- Wojtek Czekalski wczekalski@me.com
Download
v43.0
v43.0
This release has been tracked in our roadmap
project as iteration
v43.0. The following user visible changes have been made:
Live Migration over TCP Connections
Support has been added to enable direct live migration from two hosts via TCP
connections. This supplements the existing support for migrating over a UNIX
socket which can then be tunnelled as desired. The documentation has been
updated. (#6850)
Notable Performance Improvements
The VIRTIO_RING_F_INDIRECT_DESC
feature has been enabled for virtio-block
devices. This significantly increases the throughput of the devices with a
small negative impact on latency. (#6826)
Notable Bug Fixes
- Cloud Hypervisor now accepts VFIO devices that use I/O PCI BARs on non x86-64
architectures. Whether they function depends on the host PCI host bridge
support - previously they would be rejected even if the driver did not use
these BARs. (#6871) - Command line groups were adjusted to ensure that at least one payload
parameter was provided if any other VM parameters provided. (#6832)
Contributors
Many thanks to everyone who has contributed to our release:
- Alyssa Ross hi@alyssa.is
- Andrew Consroe aconz2@gmail.com
- Bo Chen bo.arvin.chen@gmail.com
- Jinrong Liang cloudliang@tencent.com
- Julian Stecklina julian.stecklina@cyberus-technology.de
- Muminul Islam muislam@microsoft.com
- Rob Bradford rbradford@rivosinc.com
- Ruoqing He heruoqing@iscas.ac.cn
- Wojtek Czekalski wczekalski@me.com
Download
v42.0
v42.0
This release has been tracked in our roadmap
project as iteration
v42.0. The following user visible changes have been made:
SVE/SVE2 Support on AArch64
The SVE and SVE2 feature bits are now propagated through to the guest on
AArch64. (#6678, #6691)
Notable Bug Fixes
- Reduce latency notification when rate limited (#6672)
- Fix
virtio-console
resizing (#6704) - Fix resizing when console uses TTY (#6754)
- Avoid deadlock in PCI BAR reprogramming that can occur when adding a new
virtio
device to a VM that has been restored (#6775) - Fix console resizing after VM restore (#6748)
- Fix memory resize error due to incorrect bounds checks (#6736)
Sponsorships
During this release cycle a new VFIO CI worker has been provided by Crusoe
Energy and a new ARM64 CI worker has been provided by Ubicloud.
Contributors
Many thanks to everyone who has contributed to our release:
- Alexandru Matei alexandru.matei@uipath.com
- Alyssa Ross hi@alyssa.is
- Anirudh Rayabharam anrayabh@microsoft.com
- BharatNarasimman bharatn@microsoft.com
- Bo Chen chen.bo@intel.com
- Jinank Jain jinankjain@microsoft.com
- Jonas Scholz Jonas.Scholz@bbscholz.de
- Nuno Das Neves nudasnev@microsoft.com
- Praveen K Paladugu prapal@linux.microsoft.com
- Purna Pavan Chandra paekkaladevi@microsoft.com
- Rob Bradford rbradford@rivosinc.com
- Ruoqing He heruoqing@iscas.ac.cn
- Songqian Li sionli@tencent.com
- Tom Dohrmann erbse.13@gmx.de
- Wei Liu liuwe@microsoft.com
- Wenyu Huang huangwenyuu@outlook.com
- Yuhong Zhong yz@cs.columbia.edu
- wuxinyue wuxinyue.wxy@antgroup.com
Download
v41.0
v41.0
This release has been tracked in our roadmap
project as iteration
v41.0. The following user visible changes have been made:
Experimental “Pvmemcontrol” Support
VMM support has been added for this experimental functionality (requires
currently out of tree Linux kernel patches) to allow guests to control its
physical memory properties to allow optimisations and security features.
(#6318, #6467)
Sandboxing With Landlock Support
Support for restricting the VMM process using the Linux kernel “Landlock” API
has been added - this can be used to restrict the files (and the read/write
permissions) that the VMM process can access. This adds another layer of
security alongside the existing sycall filters (seccomp
) - this can be
enabled with --landlock
and fully documentated. (#5170)
Notable Performance Improvements
- Reduced heap allocations in
virtio-net
via the use of a cache ofIovec
structures (#6636) - Notification suppression (“
EVENT_IDX
”) support has been added to
virtio-block
giving a 60% improvement in single queue block throughput and
IOPs performance (#6580) - Correct size used for
status
field invirtio-block
state (#6586)
Notable Bug Fixes
- Avoid panic on out-of-bounds PCI MSI-X access (#6657)
- Fix undefined behaviour on AArch64 leading to wrong optimisation on KVM API
access (#6647) - Rust v1.80.0 added use of
fcntl
syscall on debug assertions so this is now
included in the virtio-device seccomp filters for tests that use this (#6648) - Short reads are now handled correctly in the
virtio-vsock
device (#6621) - Fix undefined behaviour on TTY ioctl leading to wrong optimisation (#6568)
Contributors
Many thanks to everyone who has contributed to our release:
- Alyssa Ross hi@alyssa.is
- Bo Chen chen.bo@intel.com
- Changyuan Lyu changyuanl@google.com
- Jinank Jain jinankjain@microsoft.com
- Julian Stecklina julian.stecklina@cyberus-technology.de
- Muminul Islam muislam@microsoft.com
- Nuno Das Neves nudasnev@microsoft.com
- Praveen K Paladugu prapal@linux.microsoft.com
- Rob Bradford rbradford@rivosinc.com
- Songqian Li sionli@tencent.com
- Wei Liu liuwe@microsoft.com
- Yuanchu Xie yuanchu@google.com
- ihciah ihciah@gmail.com
- wuxinyue wuxinyue.wxy@antgroup.com
Download
v40.0
v40.0
This release has been tracked in our roadmap
project as iteration
v40.0. The following user visible changes have been made:
Support for Restoring File Descriptor Backed Network Devices
It is now possible to pass file descriptors over the HTTP API (and using
ch-remote
) when restoring to update the file descriptors for network devices.
This enables snapshot & restore functionality for guests using macvtap
or
other file descriptor backed network devices. (#6286)
Notable Bug Fixes
- Default values have been removed from required fields in the OpenAPI metadata
(#6495) - The help syntax of
ch-remote remove-device
has been improved (#6456) - A double close of file descriptors has been fixed when using
--serial
(#6486) - To prevent loops a limit on the nesting level for QCOW2 backing files has
been introduced (#6482) - Boot time performance has been improved with multiple cores by avoiding
cpuid
instructions and by seeding the in kernel file descriptor table
(#6498, #6478) - L1 cache details are more likely to be propagated into the guest (#6523)
- The default topology for guests now uses multiple cores rather than sockets
(#6504)
Contributors
Many thanks to everyone who has contributed to our release:
- Alexandru Matei alexandru.matei@uipath.com
- Bo Chen chen.bo@intel.com
- Jinank Jain jinankjain@microsoft.com
- Josh Soref 2119212+jsoref@users.noreply.github.com
- Muminul Islam muislam@microsoft.com
- Nuno Das Neves nudasnev@microsoft.com
- Omer Faruk Bayram omer.faruk@sartura.hr
- Praveen K Paladugu prapal@linux.microsoft.com
- Purna Pavan Chandra paekkaladevi@linux.microsoft.com
- Rob Bradford rbradford@rivosinc.com
- SamrutGadde samrut.gadde@gmail.com
- Sean Banko sbanko@crusoe.ai
- Songqian Li sionli@tencent.com
- Wei Liu liuwe@microsoft.com
- Yi Wang foxywang@tencent.com
- Yu Li liyu.yukiteru@bytedance.com
Download
v39.0
v39.0
This release has been tracked in our roadmap
project as iteration
v39.0. The following user visible changes have been made:
Variable Sizing of PCI Apertures for Segments
It is now possible to use --pci-segment
to adjust the aperture size that
devices 32-bit and 64-bit PCI device BARs will be allocated from. Previously
the address space was equally distributed across all the segments which may
leave insufficient space for devices that require a large 32-bit space. With
this change the weighting per segment can be adjusted. (#6387)
Direct Booting with bzImages
Support for directly booting Linux from bzImages has been added.(#6200)
Support for NVIDIA GPUDirect P2P Support
The x_nv_gpudirect_clique
option was added to --device
to allow the
configuration of device P2P support with NVIDIA GPUs. (#6235)
Guest NMI Injection Support
A new API endpoint and ch-remote
option added for injecting an NMI into the
guest. (#6047)
Notable Bug Fixes
- Workaround for kernel bug affecting guest IRQ masking on AMD (#6353)
- Correctly cleanup
sigwinch_listener
process (#6208) - Graceful shutdown of HTTP API thread (#6248, #6247)
- Fix
queue_affinity
option in OpenAPI metadata (#6268) - Fix documentation to indicate only stream mode is supported by
virtio-vsock
(#6306) - Fix
virtio-fs
tag validation (#6358, #6359) - Add missing
pvpanic
device to OpenAPI metadata (#6372) - Fixes for nested virtualization with VFIO devices (#6110, #6298, #6297,
#6319) - Fix for backing file for
virtio-mem
regions with snapshot/restore (#6337,
#6338) - Explicitly mark FDs used for network devices as invalid across
snapshot/restore (#6332, #6286) - Improve
event-monitor
events around reboot (#6277, #6274) - Fix potential deadlock around paused devices during live migration (#6293)
- Fix panic when running
ch-remote
with no subcommand (#6230) - Fix hotplug of
virtio
devices after snapshot/restore and live migration
(#6326, #6265)
Contributors
Many thanks to everyone who has contributed to our release:
- Alexandru Matei alexandru.matei@uipath.com
- Andrew Carp acarp@crusoeenergy.com
- Bo Chen chen.bo@intel.com
- Bouke van der Bijl i@bou.ke
- Chris Webb chris@arachsys.com
- Jinank Jain jinankjain@microsoft.com
- Lucas Jacques contact@lucasjacques.com
- Muminul Islam muislam@microsoft.com
- Nuno Das Neves nudasnev@microsoft.com
- Ravi kumar Veeramally ravikumar.veeramally@intel.com
- Rob Bradford rbradford@rivosinc.com
- Ruslan Mstoi ruslan.mstoi@intel.com
- Stefan Nuernberger stefan.nuernberger@cyberus-technology.de
- Thomas Barrett tbarrett@crusoeenergy.com
- Wei Liu liuwe@microsoft.com
- Yi Wang foxywang@tencent.com
Download
v37.1
v37.1
This is a bug fix release. The following issues have been addressed:
- Fix several security advisories from dependencies (#6134, #6141)
- Enable HTT flag to avoid crashing cpu topology enumeration software
such as hwloc in the guest (#6146) - Enable nested virtualization on AMD if supported (#6106)
- Handle non-power-of-two CPU topology properly (#6062)
- Various bug fixes around virtio-vsock(#6080, #6091, #6095)
- Align VFIO devices PCI BARs naturally (#6196)
Download