Ruben Hakobyan
24db5e1efd
hypervisor, vmm: Add support for KVM_SEV_SNP_LAUNCH_UPDATE
...
Implement the KVM_SEV_SNP_LAUNCH_UPDATE ioctl.
Extend Vm::import_isolated_pages() with a uaddrs parameter carrying
host virtual addresses, which KVM needs, unlike MSHV. Compute uaddrs
from guest memory mappings in the IGVM loader.
Add KVM_SEV_SNP_LAUNCH_UPDATE to the seccomp allowlist.
Co-authored-by: Keith Adler <kadler@cloudflare.com >
Signed-off-by: Keith Adler <kadler@cloudflare.com >
Co-authored-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Ruben Hakobyan <hruben@meta.com >
2026-04-17 12:28:55 +00:00
Ruben Hakobyan
2e004521e0
hypervisor, vmm: Add KVM SEV_{INIT2, SNP_LAUNCH_START} support
...
Introduce the SevFd abstraction that wraps /dev/sev and implements the
KVM_SEV_INIT2 and KVM_SEV_SNP_LAUNCH_START ioctls for SEV-SNP VM
initialization on KVM.
Key changes:
- Add sev.rs with KvmSevInit and KvmSevSnpLaunchStart ioctl structs
matching the kernel layout (linux/arch/x86/include/uapi/asm/kvm.h)
- Implement KVM_SEV_INIT2 and KVM_SEV_SNP_LAUNCH_START ioctls
- Set KVM_MEMORY_ATTRIBUTE_PRIVATE on newly created memory regions
when guest_memfd is supported
- Widen SevSnpPageAccessProxy cfg gates from mshv-only to all
sev_snp-enabled builds
- Make sev_snp_init a required trait method (remove default impl)
- Include KVM_SEV_SNP_LAUNCH_START in the seccomp allowlist
- Parse VMSA SEV features from IGVM and include them in the
KVM_SEV_INIT2 ioctl
Co-authored-by: Keith Adler <kadler@cloudflare.com >
Signed-off-by: Keith Adler <kadler@cloudflare.com >
Co-authored-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Alex Orozco <aorozco@google.com >
Co-authored-by: Rob Bradford <rbradford@meta.com >
Signed-off-by: Rob Bradford <rbradford@meta.com >
Signed-off-by: Ruben Hakobyan <hruben@meta.com >
2026-04-17 12:28:55 +00:00
Ruben Hakobyan
b545b2fc4e
hypervisor, vmm: pass SNP guest policy to sev_snp_init
...
The SNP guest policy (AMD SEV-SNP ABI bits controlling SMT, migration,
debug, etc.) was previously hardcoded inside the MSHV implementation.
Widen Vm::sev_snp_init() to accept an SnpPolicy parameter so each
hypervisor backend receives the policy at init time.
Add get_default_sev_snp_guest_policy() in the VMM to construct the
default policy.
Co-authored-by: Keith Adler <kadler@cloudflare.com >
Signed-off-by: Keith Adler <kadler@cloudflare.com >
Co-authored-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Ruben Hakobyan <hruben@meta.com >
2026-04-17 12:28:55 +00:00
Ruben Hakobyan
8ee0a07ab1
arch, hypervisor, vmm: skip vcpu setup when using igvm and kvm
...
When we use igvm + kvm, we setup the regs and sregs using the cpuid
page. We still need to setup the fpu in configure_vcpu.
Co-authored-by: Keith Adler <kadler@cloudflare.com >
Signed-off-by: Keith Adler <kadler@cloudflare.com >
Co-authored-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Ruben Hakobyan <hruben@meta.com >
2026-04-17 12:28:55 +00:00
Keith Adler
cdbe43f423
hypervisor: kvm: Add GUEST_MEMFD and KVM_SET_USER_MEMORY_REGION2 support
...
Add support for guest_memfd (available in Linux kernel v6.8+), which
enables private memory for confidential VMs.
Key changes:
- Introduce UserMemoryRegion abstraction with guest_memfd fields
- Add From impls between kvm_userspace_memory_region2 and UserMemoryRegion
- Convert all KVM memory region operations from kvm_userspace_memory_region
to kvm_userspace_memory_region2, with automatic fallback to v1 when
guest_memfd is not supported
- Add set_user_memory_region() wrapper that dispatches to v1/v2 based on
kvm_guest_memfd_supported capability
- Create guest_memfd via KVM_CREATE_GUEST_MEMFD ioctl when supported
- Extend KvmDirtyLogSlot to preserve region2 fields across dirty log
start/stop cycles
This is prerequisite infrastructure for KVM-based confidential computing
that requires private guest memory backed by guest_memfd.
Co-authored-by: Alex Orozco <aorozco@google.com >
Signed-off-by: Keith Adler <kadler@cloudflare.com >
Signed-off-by: Ruben Hakobyan <hruben@meta.com >
2026-04-17 12:28:55 +00:00
dependabot[bot]
de601c5eaa
build(deps): bump the non-rust-vmm group across 2 directories with 10 updates
...
Bumps the non-rust-vmm group with 9 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [libc](https://github.com/rust-lang/libc ) | `0.2.183` | `0.2.184` |
| [signal-hook](https://github.com/vorner/signal-hook ) | `0.4.3` | `0.4.4` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.9.0` | `1.9.1` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.58` | `1.2.59` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.13.0` | `2.13.1` |
| [libz-sys](https://github.com/rust-lang/libz-sys ) | `1.1.25` | `1.1.28` |
| [semver](https://github.com/dtolnay/semver ) | `1.0.27` | `1.0.28` |
| [toml_datetime](https://github.com/toml-rs/toml ) | `1.1.0+spec-1.1.0` | `1.1.1+spec-1.1.0` |
| [toml_edit](https://github.com/toml-rs/toml ) | `0.25.8+spec-1.1.0` | `0.25.10+spec-1.1.0` |
Bumps the non-rust-vmm group with 8 updates in the /fuzz directory:
| Package | From | To |
| --- | --- | --- |
| [libc](https://github.com/rust-lang/libc ) | `0.2.183` | `0.2.184` |
| [signal-hook](https://github.com/vorner/signal-hook ) | `0.4.3` | `0.4.4` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.9.0` | `1.9.1` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.58` | `1.2.59` |
| [indexmap](https://github.com/indexmap-rs/indexmap ) | `2.13.0` | `2.13.1` |
| [semver](https://github.com/dtolnay/semver ) | `1.0.27` | `1.0.28` |
| [toml_datetime](https://github.com/toml-rs/toml ) | `1.1.0+spec-1.1.0` | `1.1.1+spec-1.1.0` |
| [toml_edit](https://github.com/toml-rs/toml ) | `0.25.8+spec-1.1.0` | `0.25.10+spec-1.1.0` |
Updates `libc` from 0.2.183 to 0.2.184
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.184/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.183...0.2.184 )
Updates `signal-hook` from 0.4.3 to 0.4.4
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/v0.4.3...v0.4.4 )
Updates `arc-swap` from 1.9.0 to 1.9.1
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.9.0...v1.9.1 )
Updates `cc` from 1.2.58 to 1.2.59
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.58...cc-v1.2.59 )
Updates `indexmap` from 2.13.0 to 2.13.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.13.0...2.13.1 )
Updates `libz-sys` from 1.1.25 to 1.1.28
- [Release notes](https://github.com/rust-lang/libz-sys/releases )
- [Commits](https://github.com/rust-lang/libz-sys/compare/1.1.25...1.1.28 )
Updates `semver` from 1.0.27 to 1.0.28
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.27...1.0.28 )
Updates `toml_datetime` from 1.1.0+spec-1.1.0 to 1.1.1+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_datetime-v1.1.0...toml_datetime-v1.1.1 )
Updates `toml_edit` from 0.25.8+spec-1.1.0 to 0.25.10+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/v0.25.8...v0.25.10 )
Updates `toml_parser` from 1.1.0+spec-1.1.0 to 1.1.2+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.1.0...toml_parser-v1.1.2 )
Updates `libc` from 0.2.183 to 0.2.184
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.184/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.183...0.2.184 )
Updates `signal-hook` from 0.4.3 to 0.4.4
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/v0.4.3...v0.4.4 )
Updates `arc-swap` from 1.9.0 to 1.9.1
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.9.0...v1.9.1 )
Updates `cc` from 1.2.58 to 1.2.59
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.58...cc-v1.2.59 )
Updates `indexmap` from 2.13.0 to 2.13.1
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md )
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.13.0...2.13.1 )
Updates `semver` from 1.0.27 to 1.0.28
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.27...1.0.28 )
Updates `toml_datetime` from 1.1.0+spec-1.1.0 to 1.1.1+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_datetime-v1.1.0...toml_datetime-v1.1.1 )
Updates `toml_edit` from 0.25.8+spec-1.1.0 to 0.25.10+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/v0.25.8...v0.25.10 )
Updates `toml_parser` from 1.1.0+spec-1.1.0 to 1.1.2+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.1.0...toml_parser-v1.1.2 )
---
updated-dependencies:
- dependency-name: libc
dependency-version: 0.2.184
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook
dependency-version: 0.4.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.59
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: indexmap
dependency-version: 2.13.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libz-sys
dependency-version: 1.1.28
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: semver
dependency-version: 1.0.28
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_datetime
dependency-version: 1.1.1+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_edit
dependency-version: 0.25.10+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.1.2+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libc
dependency-version: 0.2.184
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook
dependency-version: 0.4.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.9.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.59
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: indexmap
dependency-version: 2.13.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: semver
dependency-version: 1.0.28
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_datetime
dependency-version: 1.1.1+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_edit
dependency-version: 0.25.10+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.1.2+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-04-10 18:12:11 +00:00
Leander Kohler
f7f9895d57
hypervisor: kvm: preserve guest MTRR MSRs
...
KVM_GET_MSR_INDEX_LIST does not consistently include all
guest-programmable MTRR MSRs.
During save/restore while booting, the VMM initially sets only
MSR_MTRRdefType, then guest firmware or other early boot code can
program additional MTRR state before the snapshot is taken. If those
MSRs are missing from the vCPU MSR buffer, snapshot omits part of the
guest's MTRR configuration and restore resumes with an incomplete
MTRR map.
Add the guest-programmable MTRR MSRs to the KVM MSR index list used
to build the vCPU MSR buffer so the existing snapshot/restore path
preserves the guest's MTRR state.
On-behalf-of: SAP leander.kohler@sap.com
Signed-off-by: Leander Kohler <leander.kohler@cyberus-technology.de >
2026-04-07 00:33:40 +00:00
Souradeep Chakrabarti
7832401816
hypervisor: Add GHCB CPUID, MSR and TERM_REQ handlers
...
When booting an SEV-SNP guest VM using IGVM with -pvalidate_opt 1 (lazy
page acceptance), the guest kernel's #VC exception handler may issue
VMGEXIT with SVM_EXIT_CPUID (0x72) or SVM_EXIT_MSR (0x7c) exit codes
via the GHCB page protocol. The hypervisor had no handlers for these
exit codes, causing the guest's #VC handler to fail and trigger
sev_es_terminate(), which sends GHCB_MSR_TERM_REQ (0x100). The
hypervisor then panicked on the unhandled 0x100 operation.
Add the following handlers to the GHCB VMGEXIT processing:
- SVM_EXIT_CPUID (0x72): Read function/index/xcr0/xss from the GHCB
page and return CPUID results via get_cpuid_values().
- SVM_EXIT_MSR (0x7c): Handle MSR read (RDMSR) and write (WRMSR)
requests from the guest via the GHCB page protocol.
- GHCB_MSR_TERM_REQ (0x100): Decode reason_set and reason_val from the
GHCB MSR and return an error instead of panicking, allowing graceful
error propagation.
Testing:
Reproducer (on Azure DC16as_cc_v5, /dev/mshv):
cloud-hypervisor --cpus boot=1,nested=off --memory size=512M \
--disk path=osdisk.img path=cloudinit \
--net "tap=,mac=12:34:56:78:90:06,ip=192.168.6.1,mask=255.255.255.128" \
--serial null --console pty \
--api-socket /tmp/ch.sock \
--igvm /igvm_files/linux-ttyS0.bin \
--host-data <hash> --platform sev_snp=on -v
Before fix:
thread 'vcpu0' panicked at hypervisor/src/mshv/mod.rs:1207:30:
Unsupported VMGEXIT operation: 100
After fix: VM boots successfully to login prompt with no panics.
All virtio devices (console, rng, disks) activate normally.
No regression risk for non-SEV-SNP: all new code is within the
HVMSG_X64_SEV_VMGEXIT_INTERCEPT handler which is only reached for
SEV-SNP guests.
Signed-off-by: Souradeep Chakrabarti <schakrabarti@microsoft.com >
2026-03-31 11:32:34 +00:00
dependabot[bot]
7e0f8f7163
build: Bump the non-rust-vmm group across 2 directories with 10 updates
...
Bumps the non-rust-vmm group with 6 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [env_logger](https://github.com/rust-cli/env_logger ) | `0.11.9` | `0.11.10` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.8.2` | `1.9.0` |
| [env_filter](https://github.com/rust-cli/env_logger ) | `1.0.0` | `1.0.1` |
| [terminal_size](https://github.com/eminence/terminal-size ) | `0.4.3` | `0.4.4` |
| [toml_datetime](https://github.com/toml-rs/toml ) | `1.0.1+spec-1.1.0` | `1.1.0+spec-1.1.0` |
| [toml_edit](https://github.com/toml-rs/toml ) | `0.25.5+spec-1.1.0` | `0.25.8+spec-1.1.0` |
Bumps the non-rust-vmm group with 3 updates in the /fuzz directory: [arc-swap](https://github.com/vorner/arc-swap ), [toml_datetime](https://github.com/toml-rs/toml ) and [toml_edit](https://github.com/toml-rs/toml ).
Updates `env_logger` from 0.11.9 to 0.11.10
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.9...v0.11.10 )
Updates `arc-swap` from 1.8.2 to 1.9.0
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.2...v1.9.0 )
Updates `anstream` from 0.6.21 to 1.0.0
- [Commits](https://github.com/rust-cli/anstyle/compare/anstream-v0.6.21...anstream-v1.0.0 )
Updates `anstyle-parse` from 0.2.7 to 1.0.0
- [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-parse-v0.2.7...anstyle-parse-v1.0.0 )
Updates `env_filter` from 1.0.0 to 1.0.1
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/env_filter-v1.0.0...env_filter-v1.0.1 )
Updates `terminal_size` from 0.4.3 to 0.4.4
- [Release notes](https://github.com/eminence/terminal-size/releases )
- [Commits](https://github.com/eminence/terminal-size/compare/v0.4.3...v0.4.4 )
Updates `toml_datetime` from 1.0.1+spec-1.1.0 to 1.1.0+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_datetime-v1.0.1...toml_datetime-v1.1.0 )
Updates `toml_edit` from 0.25.5+spec-1.1.0 to 0.25.8+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/v0.25.5...v0.25.8 )
Updates `toml_parser` from 1.0.10+spec-1.1.0 to 1.1.0+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.0.10...toml_parser-v1.1.0 )
Updates `windows-sys` from 0.60.2 to 0.61.2
- [Release notes](https://github.com/microsoft/windows-rs/releases )
- [Commits](https://github.com/microsoft/windows-rs/commits )
Updates `arc-swap` from 1.8.2 to 1.9.0
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.2...v1.9.0 )
Updates `toml_datetime` from 1.0.1+spec-1.1.0 to 1.1.0+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_datetime-v1.0.1...toml_datetime-v1.1.0 )
Updates `toml_edit` from 0.25.5+spec-1.1.0 to 0.25.8+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/v0.25.5...v0.25.8 )
Updates `toml_parser` from 1.0.10+spec-1.1.0 to 1.1.0+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.0.10...toml_parser-v1.1.0 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-version: 0.11.10
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: anstream
dependency-version: 1.0.0
dependency-type: indirect
update-type: version-update:semver-major
dependency-group: non-rust-vmm
- dependency-name: anstyle-parse
dependency-version: 1.0.0
dependency-type: indirect
update-type: version-update:semver-major
dependency-group: non-rust-vmm
- dependency-name: env_filter
dependency-version: 1.0.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: terminal_size
dependency-version: 0.4.4
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_datetime
dependency-version: 1.1.0+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: toml_edit
dependency-version: 0.25.8+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.1.0+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: windows-sys
dependency-version: 0.61.2
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.9.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: toml_datetime
dependency-version: 1.1.0+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: toml_edit
dependency-version: 0.25.8+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.1.0+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-03-24 01:06:16 +00:00
Rob Bradford
e05065f509
build: Bump rust-vmm dependencies
...
Bump to the released versions that are compatible wherever possible but
for the vhost and vfio crates they are git hashes as no releases with
compatible versions have yet been made.
Signed-off-by: Rob Bradford <rbradford@meta.com >
2026-03-23 10:04:07 +00:00
Julian Schindel
e265543e3c
misc: make MSRV workspace-wide for cloud-hypervisor dependencies
...
Moves the MSRV requirement to the workspace and expands it to all
cloud-hypervisor dependencies and dev-dependencies.
This improves discoverability for new contributors working on crates
other than the cloud-hypervisor itself and creates consistency regarding
the MSRV of cloud-hypervisor dependencies.
Functionally, this doesn't change anything for dependencies of the
cloud-hypervisor crate as the MSRV requirement is already enforced by CI
when building the cloud-hypervisor with the MSRV versioned compiler.
On-behalf-of: SAP julian.schindel@sap.com
Signed-off-by: Julian Schindel <julian.schindel@cyberus-technology.de >
2026-03-13 01:30:25 +00:00
Philipp Schuster
001adbe15a
hypervisor: mshv: cleanup unneeded Arc
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2026-03-13 01:20:25 +00:00
Philipp Schuster
a747e2b72a
hypervisor: kvm: cleanup unneeded Arc
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2026-03-13 01:20:25 +00:00
Anatol Belski
a94fa554c3
hypervisor: kvm: Fix nightly rustfmt import ordering
...
Nightly rustfmt now prefers `self` re-exports inline rather
than a separate 'pub use {kvm_bindings, kvm_ioctls}' line.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com >
2026-03-01 18:07:22 +00:00
Anirudh Rayabharam
68f746fbea
hypervisor: mshv: use the new default partition args function
...
The 0.6.7 version of the mshv crates introduced a new version of
make_default_partition_create_arg inside `struct Mshv`. This version
queries the available processor features on the host and gives the same
feature set to the guests.
Move Cloud Hypervisor to this new function.
Signed-off-by: Anirudh Rayabharam <anrayabh@microsoft.com >
2026-02-18 13:58:08 +00:00
dependabot[bot]
08f338bcf6
build: Bump the non-rust-vmm group across 2 directories with 27 updates
...
Bumps the non-rust-vmm group with 14 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [bitflags](https://github.com/bitflags/bitflags ) | `2.10.0` | `2.11.0` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.57` | `4.5.59` |
| [env_logger](https://github.com/rust-cli/env_logger ) | `0.11.8` | `0.11.9` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.181` | `0.2.182` |
| [uuid](https://github.com/uuid-rs/uuid ) | `1.20.0` | `1.21.0` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.8.1` | `1.8.2` |
| [futures](https://github.com/rust-lang/futures-rs ) | `0.3.31` | `0.3.32` |
| [async-executor](https://github.com/smol-rs/async-executor ) | `1.13.3` | `1.14.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.55` | `1.2.56` |
| [jiff](https://github.com/BurntSushi/jiff ) | `0.2.19` | `0.2.20` |
| [syn](https://github.com/dtolnay/syn ) | `2.0.114` | `2.0.116` |
| [toml_parser](https://github.com/toml-rs/toml ) | `1.0.6+spec-1.1.0` | `1.0.9+spec-1.1.0` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident ) | `1.0.23` | `1.0.24` |
| [zmij](https://github.com/dtolnay/zmij ) | `1.0.20` | `1.0.21` |
Bumps the non-rust-vmm group with 13 updates in the /fuzz directory:
| Package | From | To |
| --- | --- | --- |
| [bitflags](https://github.com/bitflags/bitflags ) | `2.10.0` | `2.11.0` |
| [clap](https://github.com/clap-rs/clap ) | `4.5.57` | `4.5.59` |
| [libc](https://github.com/rust-lang/libc ) | `0.2.181` | `0.2.182` |
| [uuid](https://github.com/uuid-rs/uuid ) | `1.20.0` | `1.21.0` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.8.1` | `1.8.2` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.55` | `1.2.56` |
| [futures-core](https://github.com/rust-lang/futures-rs ) | `0.3.31` | `0.3.32` |
| [futures-sink](https://github.com/rust-lang/futures-rs ) | `0.3.31` | `0.3.32` |
| [syn](https://github.com/dtolnay/syn ) | `2.0.114` | `2.0.116` |
| [toml_parser](https://github.com/toml-rs/toml ) | `1.0.6+spec-1.1.0` | `1.0.9+spec-1.1.0` |
| [unicode-ident](https://github.com/dtolnay/unicode-ident ) | `1.0.23` | `1.0.24` |
| [zmij](https://github.com/dtolnay/zmij ) | `1.0.20` | `1.0.21` |
| [libfuzzer-sys](https://github.com/rust-fuzz/libfuzzer ) | `0.4.10` | `0.4.12` |
Updates `bitflags` from 2.10.0 to 2.11.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.10.0...2.11.0 )
Updates `clap` from 4.5.57 to 4.5.59
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.57...clap_complete-v4.5.59 )
Updates `env_logger` from 0.11.8 to 0.11.9
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.11.8...v0.11.9 )
Updates `libc` from 0.2.181 to 0.2.182
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.182/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.181...0.2.182 )
Updates `uuid` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.20.0...v1.21.0 )
Updates `arc-swap` from 1.8.1 to 1.8.2
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.1...v1.8.2 )
Updates `futures` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `async-executor` from 1.13.3 to 1.14.0
- [Release notes](https://github.com/smol-rs/async-executor/releases )
- [Changelog](https://github.com/smol-rs/async-executor/blob/master/CHANGELOG.md )
- [Commits](https://github.com/smol-rs/async-executor/compare/v1.13.3...v1.14.0 )
Updates `cc` from 1.2.55 to 1.2.56
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.55...cc-v1.2.56 )
Updates `clap_builder` from 4.5.57 to 4.5.59
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.57...v4.5.59 )
Updates `clap_lex` from 0.7.7 to 1.0.0
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_lex-v0.7.7...clap_lex-v1.0.0 )
Updates `env_filter` from 0.1.4 to 1.0.0
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/env_filter-v0.1.4...env_filter-v1.0.0 )
Updates `futures-channel` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-core` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-executor` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-io` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-macro` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-sink` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-task` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-util` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `jiff` from 0.2.19 to 0.2.20
- [Release notes](https://github.com/BurntSushi/jiff/releases )
- [Changelog](https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.19...jiff-static-0.2.20 )
Updates `jiff-static` from 0.2.19 to 0.2.20
- [Release notes](https://github.com/BurntSushi/jiff/releases )
- [Changelog](https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.19...jiff-static-0.2.20 )
Updates `syn` from 2.0.114 to 2.0.116
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.114...2.0.116 )
Updates `toml_parser` from 1.0.6+spec-1.1.0 to 1.0.9+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.0.6...toml_parser-v1.0.9 )
Updates `unicode-ident` from 1.0.23 to 1.0.24
- [Release notes](https://github.com/dtolnay/unicode-ident/releases )
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.23...1.0.24 )
Updates `zmij` from 1.0.20 to 1.0.21
- [Release notes](https://github.com/dtolnay/zmij/releases )
- [Commits](https://github.com/dtolnay/zmij/compare/1.0.20...1.0.21 )
Updates `bitflags` from 2.10.0 to 2.11.0
- [Release notes](https://github.com/bitflags/bitflags/releases )
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md )
- [Commits](https://github.com/bitflags/bitflags/compare/2.10.0...2.11.0 )
Updates `clap` from 4.5.57 to 4.5.59
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.57...clap_complete-v4.5.59 )
Updates `libc` from 0.2.181 to 0.2.182
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.182/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.181...0.2.182 )
Updates `uuid` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.20.0...v1.21.0 )
Updates `arc-swap` from 1.8.1 to 1.8.2
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.1...v1.8.2 )
Updates `cc` from 1.2.55 to 1.2.56
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.55...cc-v1.2.56 )
Updates `clap_builder` from 4.5.57 to 4.5.59
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.57...v4.5.59 )
Updates `clap_lex` from 0.7.7 to 1.0.0
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_lex-v0.7.7...clap_lex-v1.0.0 )
Updates `futures-core` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `futures-sink` from 0.3.31 to 0.3.32
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.31...0.3.32 )
Updates `syn` from 2.0.114 to 2.0.116
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/2.0.114...2.0.116 )
Updates `toml_parser` from 1.0.6+spec-1.1.0 to 1.0.9+spec-1.1.0
- [Commits](https://github.com/toml-rs/toml/compare/toml_parser-v1.0.6...toml_parser-v1.0.9 )
Updates `unicode-ident` from 1.0.23 to 1.0.24
- [Release notes](https://github.com/dtolnay/unicode-ident/releases )
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.23...1.0.24 )
Updates `zmij` from 1.0.20 to 1.0.21
- [Release notes](https://github.com/dtolnay/zmij/releases )
- [Commits](https://github.com/dtolnay/zmij/compare/1.0.20...1.0.21 )
Updates `libfuzzer-sys` from 0.4.10 to 0.4.12
- [Changelog](https://github.com/rust-fuzz/libfuzzer/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-fuzz/libfuzzer/commits )
---
updated-dependencies:
- dependency-name: bitflags
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: clap
dependency-version: 4.5.59
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: env_logger
dependency-version: 0.11.9
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libc
dependency-version: 0.2.182
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: uuid
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures
dependency-version: 0.3.32
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: async-executor
dependency-version: 1.14.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.56
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_builder
dependency-version: 4.5.59
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_lex
dependency-version: 1.0.0
dependency-type: indirect
update-type: version-update:semver-major
dependency-group: non-rust-vmm
- dependency-name: env_filter
dependency-version: 1.0.0
dependency-type: indirect
update-type: version-update:semver-major
dependency-group: non-rust-vmm
- dependency-name: futures-channel
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-core
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-executor
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-io
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-macro
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-sink
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-task
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-util
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: jiff
dependency-version: 0.2.20
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: jiff-static
dependency-version: 0.2.20
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: syn
dependency-version: 2.0.116
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.0.9+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: unicode-ident
dependency-version: 1.0.24
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zmij
dependency-version: 1.0.21
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: bitflags
dependency-version: 2.11.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: clap
dependency-version: 4.5.59
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libc
dependency-version: 0.2.182
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: uuid
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.2
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.56
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_builder
dependency-version: 4.5.59
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_lex
dependency-version: 1.0.0
dependency-type: indirect
update-type: version-update:semver-major
dependency-group: non-rust-vmm
- dependency-name: futures-core
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: futures-sink
dependency-version: 0.3.32
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: syn
dependency-version: 2.0.116
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: toml_parser
dependency-version: 1.0.9+spec-1.1.0
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: unicode-ident
dependency-version: 1.0.24
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zmij
dependency-version: 1.0.21
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libfuzzer-sys
dependency-version: 0.4.12
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-17 01:03:53 +00:00
Muminul Islam
ff4c8f7480
hypervisor: mshv: handle Special Debug Print VMG exit
...
Add handling for GHCB_INFO_SPECIAL_DBGPRINT VMG exit in the SEV-SNP
guest exit handler. This exit occurs when the guest sends debug print
requests through the GHCB interface.
Without this handler, SEV-SNP guests fail to boot when debug output
is triggered, such as when a debugger is attached to the guest image.
The handler acknowledges the exit without printing to avoid performance
degradation from frequent debug print requests.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2026-02-13 22:22:00 +00:00
Anirudh Rayabharam
caa362c31f
hypervisor: mshv: stub implementation for save_data_tables()
...
Provide a stub implementation for save_data_tables() to unblock pause
functionality. Without this, pausing a VM causes Cloud Hypervisor to
panic due to the unimplemented!() macro. This unblocks the
test_api_http_pause_resume testcase. We don't need to save any state
just to pause and resume.
Signed-off-by: Anirudh Rayabharam <anrayabh@microsoft.com >
2026-02-11 15:57:21 +00:00
Wei Liu
2c49f4f4f3
hypervisor: Add an unreachable arm to get/set_x86_64_reg
...
This is useful when neither kvm nor mshv is defined.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2026-02-10 08:33:43 +00:00
Anatol Belski
a00189cf72
hypervisor: vmm: mshv: Enable SMT for guests with threads_per_core > 1
...
Set HV_PARTITION_CREATION_FLAG_SMT_ENABLED_GUEST when the guest
topology has more than one thread per core. This allows the
hypervisor to schedule guest VPs correctly on SMT-enabled hosts.
Without this flag, the hypervisor schedules guest VPs incorrectly,
causing SMT unusable.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com >
2026-02-07 09:55:17 +00:00
dependabot[bot]
57fd672db6
build: Bump the non-rust-vmm group across 2 directories with 14 updates
...
Bumps the non-rust-vmm group with 10 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.54` | `4.5.56` |
| [zerocopy](https://github.com/google/zerocopy ) | `0.8.34` | `0.8.37` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.8.0` | `1.8.1` |
| [getrandom](https://github.com/rust-random/getrandom ) | `0.3.4` | `0.4.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.54` | `1.2.55` |
| [openssl-src](https://github.com/alexcrichton/openssl-src-rs ) | `300.5.4+3.5.4` | `300.5.5+3.5.5` |
| [portable-atomic](https://github.com/taiki-e/portable-atomic ) | `1.13.0` | `1.13.1` |
| [portable-atomic-util](https://github.com/taiki-e/portable-atomic ) | `0.2.4` | `0.2.5` |
| [slab](https://github.com/tokio-rs/slab ) | `0.4.11` | `0.4.12` |
| [zmij](https://github.com/dtolnay/zmij ) | `1.0.17` | `1.0.19` |
Bumps the non-rust-vmm group with 5 updates in the /fuzz directory:
| Package | From | To |
| --- | --- | --- |
| [clap](https://github.com/clap-rs/clap ) | `4.5.54` | `4.5.56` |
| [zerocopy](https://github.com/google/zerocopy ) | `0.8.34` | `0.8.37` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.8.0` | `1.8.1` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.54` | `1.2.55` |
| [zmij](https://github.com/dtolnay/zmij ) | `1.0.17` | `1.0.19` |
Updates `clap` from 4.5.54 to 4.5.56
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.54...clap_complete-v4.5.56 )
Updates `zerocopy` from 0.8.34 to 0.8.37
- [Release notes](https://github.com/google/zerocopy/releases )
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google/zerocopy/compare/v0.8.34...v0.8.37 )
Updates `arc-swap` from 1.8.0 to 1.8.1
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.0...v1.8.1 )
Updates `getrandom` from 0.3.4 to 0.4.0
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/getrandom/compare/v0.3.4...v0.4.0 )
Updates `cc` from 1.2.54 to 1.2.55
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.54...cc-v1.2.55 )
Updates `clap_builder` from 4.5.54 to 4.5.56
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.54...v4.5.56 )
Updates `find-msvc-tools` from 0.1.8 to 0.1.9
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/find-msvc-tools-v0.1.8...find-msvc-tools-v0.1.9 )
Updates `hashbrown` from 0.16.1 to 0.15.5
- [Release notes](https://github.com/rust-lang/hashbrown/releases )
- [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/hashbrown/compare/v0.16.1...v0.15.5 )
Updates `openssl-src` from 300.5.4+3.5.4 to 300.5.5+3.5.5
- [Release notes](https://github.com/alexcrichton/openssl-src-rs/releases )
- [Commits](https://github.com/alexcrichton/openssl-src-rs/commits )
Updates `portable-atomic` from 1.13.0 to 1.13.1
- [Release notes](https://github.com/taiki-e/portable-atomic/releases )
- [Changelog](https://github.com/taiki-e/portable-atomic/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/portable-atomic/compare/v1.13.0...v1.13.1 )
Updates `portable-atomic-util` from 0.2.4 to 0.2.5
- [Release notes](https://github.com/taiki-e/portable-atomic/releases )
- [Changelog](https://github.com/taiki-e/portable-atomic/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/portable-atomic/compare/portable-atomic-util-0.2.4...portable-atomic-util-0.2.5 )
Updates `slab` from 0.4.11 to 0.4.12
- [Release notes](https://github.com/tokio-rs/slab/releases )
- [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/slab/compare/v0.4.11...v0.4.12 )
Updates `zerocopy-derive` from 0.8.34 to 0.8.37
- [Release notes](https://github.com/google/zerocopy/releases )
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google/zerocopy/compare/v0.8.34...v0.8.37 )
Updates `zmij` from 1.0.17 to 1.0.19
- [Release notes](https://github.com/dtolnay/zmij/releases )
- [Commits](https://github.com/dtolnay/zmij/compare/1.0.17...1.0.19 )
Updates `clap` from 4.5.54 to 4.5.56
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.54...clap_complete-v4.5.56 )
Updates `zerocopy` from 0.8.34 to 0.8.37
- [Release notes](https://github.com/google/zerocopy/releases )
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google/zerocopy/compare/v0.8.34...v0.8.37 )
Updates `arc-swap` from 1.8.0 to 1.8.1
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.8.0...v1.8.1 )
Updates `cc` from 1.2.54 to 1.2.55
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.54...cc-v1.2.55 )
Updates `clap_builder` from 4.5.54 to 4.5.56
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v4.5.54...v4.5.56 )
Updates `find-msvc-tools` from 0.1.8 to 0.1.9
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/find-msvc-tools-v0.1.8...find-msvc-tools-v0.1.9 )
Updates `zerocopy-derive` from 0.8.34 to 0.8.37
- [Release notes](https://github.com/google/zerocopy/releases )
- [Changelog](https://github.com/google/zerocopy/blob/main/CHANGELOG.md )
- [Commits](https://github.com/google/zerocopy/compare/v0.8.34...v0.8.37 )
Updates `zmij` from 1.0.17 to 1.0.19
- [Release notes](https://github.com/dtolnay/zmij/releases )
- [Commits](https://github.com/dtolnay/zmij/compare/1.0.17...1.0.19 )
---
updated-dependencies:
- dependency-name: clap
dependency-version: 4.5.56
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zerocopy
dependency-version: 0.8.37
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: getrandom
dependency-version: 0.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.55
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_builder
dependency-version: 4.5.56
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: find-msvc-tools
dependency-version: 0.1.9
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: hashbrown
dependency-version: 0.15.5
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: openssl-src
dependency-version: 300.5.5+3.5.5
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: portable-atomic
dependency-version: 1.13.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: portable-atomic-util
dependency-version: 0.2.5
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: slab
dependency-version: 0.4.12
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zerocopy-derive
dependency-version: 0.8.37
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zmij
dependency-version: 1.0.19
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap
dependency-version: 4.5.56
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zerocopy
dependency-version: 0.8.37
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.1
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.55
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: clap_builder
dependency-version: 4.5.56
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: find-msvc-tools
dependency-version: 0.1.9
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zerocopy-derive
dependency-version: 0.8.37
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: zmij
dependency-version: 1.0.19
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-02-03 05:49:17 +00:00
Stanislav Kinsburskii
de2d8f486b
hypervisor: mshv: Introduce CPU state update function and use it
...
In most of the cases, special registers don't change after emulations,
but current code sets them back unconditionally, and although some of
them are set over the register page, others require a system call and a
hypervisor to be updated, which is a waste it there were not changes.
Introduce and CPU update method for Microsoft Hypervisor emulator and
set special registers only when they were changed. This change reduces
guest boot time by 4% for a single VP guest boot (in L1VH partition) in
my experiments.
Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com >
2026-01-14 10:57:20 +00:00
Stanislav Kinsburskii
5aba9b4308
hypervisor: emulator: Pass CPU context to instruction stream emulator
...
This is a precursor change to overall ioctl and hypercall reduction
effort. The old (current) CPU state can be compared to the new to
determine what has changed and avoid unnecessary register updates.
Signed-off-by: Stanislav Kinsburskii <skinsburskii@linux.microsoft.com >
2026-01-14 10:57:20 +00:00
Demi Marie Obenour
2e05836669
hypervisor: Suppress unused_unsafe warning
...
x86::__cpuid is safe on Rust ≥1.94 but unsafe on older versions. This
causes unused_unsafe warnings when compiling with Rust ≥1.94. However,
on earlier Rust versions, the code won’t compile if the unsafe blocks
are absent.
Work around this by adding #[allow(unused_unsafe)] where needed to
suppress the warnings.
See #7588 for more discussion.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com >
2026-01-07 00:20:41 +00:00
Anatol Belski
3657db7843
vmm: mshv: Set PROCESSORS_PER_SOCKET property for CPU topologies
...
On MSHV, exposing multithreaded CPU topologies requires setting the
PROCESSORS_PER_SOCKET partition property so that CPUID.0xB reports
correct logical processor counts and topology levels to the guest.
This property must be set after all vCPUs are configured, as the
hypervisor uses the complete vCPU layout to derive and report CPU
topology information.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com >
2026-01-05 21:41:28 +00:00
dependabot[bot]
379e2d4647
build: Bump the non-rust-vmm group across 2 directories with 14 updates
...
Bumps the non-rust-vmm group with 12 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.146` | `1.0.148` |
| [signal-hook](https://github.com/vorner/signal-hook ) | `0.3.18` | `0.4.1` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.7.1` | `1.8.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.50` | `1.2.51` |
| [itoa](https://github.com/dtolnay/itoa ) | `1.0.16` | `1.0.17` |
| [jiff](https://github.com/BurntSushi/jiff ) | `0.2.16` | `0.2.17` |
| libredox | `0.1.11` | `0.1.12` |
| [portable-atomic](https://github.com/taiki-e/portable-atomic ) | `1.12.0` | `1.13.0` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2 ) | `1.0.103` | `1.0.104` |
| [rustix](https://github.com/bytecodealliance/rustix ) | `1.1.2` | `1.1.3` |
| [signal-hook-registry](https://github.com/vorner/signal-hook ) | `1.4.7` | `1.4.8` |
| [tempfile](https://github.com/Stebalien/tempfile ) | `3.23.0` | `3.24.0` |
Bumps the non-rust-vmm group with 7 updates in the /fuzz directory:
| Package | From | To |
| --- | --- | --- |
| [serde_json](https://github.com/serde-rs/json ) | `1.0.146` | `1.0.148` |
| [signal-hook](https://github.com/vorner/signal-hook ) | `0.3.18` | `0.4.1` |
| [arc-swap](https://github.com/vorner/arc-swap ) | `1.7.1` | `1.8.0` |
| [cc](https://github.com/rust-lang/cc-rs ) | `1.2.50` | `1.2.51` |
| [itoa](https://github.com/dtolnay/itoa ) | `1.0.16` | `1.0.17` |
| [proc-macro2](https://github.com/dtolnay/proc-macro2 ) | `1.0.103` | `1.0.104` |
| [signal-hook-registry](https://github.com/vorner/signal-hook ) | `1.4.7` | `1.4.8` |
Updates `serde_json` from 1.0.146 to 1.0.148
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.146...v1.0.148 )
Updates `signal-hook` from 0.3.18 to 0.4.1
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/v0.3.18...v0.4.1 )
Updates `arc-swap` from 1.7.1 to 1.8.0
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.7.1...v1.8.0 )
Updates `cc` from 1.2.50 to 1.2.51
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.50...cc-v1.2.51 )
Updates `find-msvc-tools` from 0.1.5 to 0.1.6
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/find-msvc-tools-v0.1.5...find-msvc-tools-v0.1.6 )
Updates `itoa` from 1.0.16 to 1.0.17
- [Release notes](https://github.com/dtolnay/itoa/releases )
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.16...1.0.17 )
Updates `jiff` from 0.2.16 to 0.2.17
- [Release notes](https://github.com/BurntSushi/jiff/releases )
- [Changelog](https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.16...jiff-static-0.2.17 )
Updates `jiff-static` from 0.2.16 to 0.2.17
- [Release notes](https://github.com/BurntSushi/jiff/releases )
- [Changelog](https://github.com/BurntSushi/jiff/blob/master/CHANGELOG.md )
- [Commits](https://github.com/BurntSushi/jiff/compare/jiff-static-0.2.16...jiff-static-0.2.17 )
Updates `libredox` from 0.1.11 to 0.1.12
Updates `portable-atomic` from 1.12.0 to 1.13.0
- [Release notes](https://github.com/taiki-e/portable-atomic/releases )
- [Changelog](https://github.com/taiki-e/portable-atomic/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/portable-atomic/compare/v1.12.0...v1.13.0 )
Updates `proc-macro2` from 1.0.103 to 1.0.104
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.103...1.0.104 )
Updates `rustix` from 1.1.2 to 1.1.3
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGES.md )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v1.1.2...v1.1.3 )
Updates `signal-hook-registry` from 1.4.7 to 1.4.8
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/registry-v1.4.7...registry-v1.4.8 )
Updates `tempfile` from 3.23.0 to 3.24.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.23.0...v3.24.0 )
Updates `serde_json` from 1.0.146 to 1.0.148
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.146...v1.0.148 )
Updates `signal-hook` from 0.3.18 to 0.4.1
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/v0.3.18...v0.4.1 )
Updates `arc-swap` from 1.7.1 to 1.8.0
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.7.1...v1.8.0 )
Updates `cc` from 1.2.50 to 1.2.51
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.50...cc-v1.2.51 )
Updates `find-msvc-tools` from 0.1.5 to 0.1.6
- [Release notes](https://github.com/rust-lang/cc-rs/releases )
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/cc-rs/compare/find-msvc-tools-v0.1.5...find-msvc-tools-v0.1.6 )
Updates `itoa` from 1.0.16 to 1.0.17
- [Release notes](https://github.com/dtolnay/itoa/releases )
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.16...1.0.17 )
Updates `proc-macro2` from 1.0.103 to 1.0.104
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.103...1.0.104 )
Updates `signal-hook-registry` from 1.4.7 to 1.4.8
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/registry-v1.4.7...registry-v1.4.8 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-version: 1.0.148
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook
dependency-version: 0.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.51
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: find-msvc-tools
dependency-version: 0.1.6
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: itoa
dependency-version: 1.0.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: jiff
dependency-version: 0.2.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: jiff-static
dependency-version: 0.2.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: libredox
dependency-version: 0.1.12
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: portable-atomic
dependency-version: 1.13.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: proc-macro2
dependency-version: 1.0.104
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: rustix
dependency-version: 1.1.3
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook-registry
dependency-version: 1.4.8
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: tempfile
dependency-version: 3.24.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: serde_json
dependency-version: 1.0.148
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook
dependency-version: 0.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: arc-swap
dependency-version: 1.8.0
dependency-type: indirect
update-type: version-update:semver-minor
dependency-group: non-rust-vmm
- dependency-name: cc
dependency-version: 1.2.51
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: find-msvc-tools
dependency-version: 0.1.6
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: itoa
dependency-version: 1.0.17
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: proc-macro2
dependency-version: 1.0.104
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
- dependency-name: signal-hook-registry
dependency-version: 1.4.8
dependency-type: indirect
update-type: version-update:semver-patch
dependency-group: non-rust-vmm
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-12-30 04:25:34 +00:00
Songqian Li
4b4954ff86
hypervisor: AMX state snapshot and restore support
...
The TILE data state of AMX may require 8KB+ space, calling the legacy
KVM_GET_XSAVE will encounter an error since KVM_GET_XSAVE only can get
4KB space. This patch adds KVM_GET_XSAVE2 support to allow snapping more
data.
Fixes : #7533
Signed-off-by: Songqian Li <sionli@tencent.com >
2025-12-11 17:14:13 +00:00
Muminul Islam
f795081bf9
hypervisor: mshv: retrieve MSRs list correctly
...
The MSR enumeration logic in MSHV does not accurately
account for the capabilities of the underlying
hardware and hypervisor. Previously, integration tests
passed because only the default MSRs—universally supported
across platforms—were involved. However, recent feature
additions in MSHV have introduced MSRs that are not
supported on Intel hardware, causing failures.
This patch retrieves the MSRs from the VM specific
API call that filters out the unsupported MSRs.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2025-12-07 01:29:56 +00:00
Oliver Anderson
01383538f3
hypervisor: Introduce an enable AMX tile state components method
...
Currently when the user configures AMX the corresponding state
components get dynamically enabled directly inside the function body of
vmm::cpu::CpuManager::new.
With our ongoing work on CPU templates/profiles, there will (likely) be
one more binary crate for producing CPU profiles that also needs to do
this (without creating a CpuManager) and it may also be the case that
we will need to call this function prior to `CpuManager::new` during
live migrations.
We thus add a method for enabling the AMX tile state components on the
hypervisor trait that may be called wherever necessary. We argue that
this is beneficial for code clarity independently of the upcoming CPU
templates/profiles PR that we are working on.
The astute reader will notice that the logic introduced here is not 100%
the same as what is done inside the vmm::cpu::Cpumanager::new method. We
claim that our approach is more in-line with the official documentation.
Signed-off-by: Oliver Anderson <oliver.anderson@cyberus-technology.de >
On-behalf-of: SAP oliver.anderson@sap.com
2025-12-04 14:04:11 +00:00
Muminul Islam
d8360ddc8e
hypervisor: vmm: passing nested argument from VMM to hypervisor
...
This patch connects the VMM and hypervisor to fully enable nested
support for MSHV.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2025-12-03 09:56:58 +00:00
Rob Bradford
4abebc9e56
hypervisor: Don't create temporary vector for boot MSRs
...
The MSRs are constant at boot time so rather than creating a vector in
the boot_msr_entries() method instead reaturn a reference to static MSR
array data.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
2025-11-29 13:07:16 +00:00
Muminul Islam
b163fea66a
hypervisor: update cache when a shared page is revoked
...
During the lifecycle of a confidential VM, the guest may revoke
previously shared pages via an attribute-intercept VM exit.
When this happens, the host-side cache must be updated so that any
subsequent access by the VMM triggers a fresh request for the guest
to re-share the page.
Signed-off-by: Muminul Islam <muislam@microsoft.com >
2025-11-28 04:42:20 +00:00
Philipp Schuster
c53781bf5f
misc: clippy: add needless_pass_by_value
...
This is a follow-up of [0].
# Advantages
- This saves dozens of unneeded clone()s across the whole code base
- Makes it much easier to reason about how parameters are used
(often we passed owned Arc/Rc versions without actually needing
ownership)
# Exceptions
For certain code paths, the alternatives would require awkward or overly
complex code, and in some cases the functions are the logical owners of
the values they take. In those cases, I've added
#[allow(clippy::needless_pass_by_value)].
This does not mean that one should not improve this in the future.
[0] 6a86c157af
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-27 17:11:14 +00:00
Chengyu Fu
e7cda177cc
hypervisor: kvm: Remove unnecessary .to_vec() in set_state
...
.. to avoid copy elements.
Signed-off-by: Chengyu Fu <chengyu.fu@linux.alibaba.com >
2025-11-26 09:13:10 +00:00
Philipp Schuster
0a07c96d17
misc: clippy: add if_not_else
...
This removes cognitive load when reading if statements.
All changes were applied by clippy via `--fix`.
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-25 16:05:46 +00:00
Philipp Schuster
a0b72dce22
misc: clippy: add redundant_else
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-25 16:05:46 +00:00
Philipp Schuster
b3f929432e
misc: hypervisor: drop extern crate, use modern rust
...
This commit is part of a series of similar commits.
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-24 22:36:46 +00:00
Rob Bradford
e993310c96
hypervisor: kvm: Save KVM HyperV SynIC emulation state
...
As well as saving the MSRs as it is currently does ensure that the KVM
capability is enabled along with keeping the internal state updated.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com >
Co-authored-by: Chengyu Fu <chengyu.fu@linux.alibaba.com >
2025-11-22 12:39:47 +00:00
Demi Marie Obenour
969a3b57a3
misc: tdx: make tdx_init_memory_region() unsafe
...
It takes a pointer to a userspace address that it accesses, so it should
be marked unsafe. This was missed earlier.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com >
2025-11-22 10:24:13 +00:00
Demi Marie Obenour
199d2d05d8
hypervisor: tdx: do not use u64 to represent pointers
...
Also drop support for building the TDX code for 32-bit targets. All
CPUs with TDX support are 64-bit so supporting 32-bit targets is not
needed.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com >
2025-11-22 10:24:13 +00:00
Demi Marie Obenour
42522a88c0
misc: do not use u64 to represent host pointers
...
To ensure that struct sizes are the same on 32-bit and 64-bit, various
kernel APIs use __u64 (Rust u64) to represent userspace pointers.
Userspace is expected to cast pointers to __u64 before passing them to
the kernel, and cast kernel-provided __u64 to a pointer before using
them. However, various safe APIs in Cloud Hypervisor took
caller-provided u64 values and passed them to syscalls that interpret
them as userspace addresses. Therefore, passing bad u64 values would
cause memory disclosure or corruption.
Fix the bug by using usize and pointer types as appropriate. To make
soundness of the code easier to reason about, the PCI code gains a new
MmapRegion abstraction that ensures the validity of pointers. The rest
of the code already has an MmapRegion abstraction it can use. To avoid
having to reason about whether something is keeping the MmapRegion
alive, reference counting is added. MmapRegion cannot hold references
to other objects, so the reference counting cannot introduce cycles.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com >
2025-11-22 10:24:13 +00:00
Demi Marie Obenour
fdc19ad85e
misc: Mark memory region APIs as unsafe
...
To ensure that struct sizes are the same on 32-bit and 64-bit, various
kernel APIs use __u64 (Rust u64) to represent userspace pointers.
Userspace is expected to cast pointers to __u64 before passing them to
the kernel, and cast kernel-provided __u64 to a pointer before using
them. However, various safe APIs in Cloud Hypervisor took
caller-provided u64 values and passed them to syscalls that treat them
as userspace addresses. Therefore, passing bad u64 values would cause
memory disclosure or corruption. The memory region APIs are one example
of this, so mark them as unsafe.
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com >
2025-11-22 10:24:13 +00:00
Philipp Schuster
fed010fcd1
misc: clippy: add manual_string_new
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-21 09:32:11 +00:00
Philipp Schuster
b4c62bf159
misc: clippy: add semicolon_if_nothing_returned
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-21 09:32:11 +00:00
Philipp Schuster
ea4f07d3bf
misc: clippy: add uninlined_format_args
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-21 09:32:11 +00:00
Philipp Schuster
7cb73e9e56
misc: clippy: add unnecessary_semicolon
...
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-21 09:32:11 +00:00
Philipp Schuster
d1680b9ff9
tests: streamline module names to unit_tests
...
This better aligns with the rest of the code and makes it clearer
that these tests can run "as is" in a normal hosted environments
without the special test environment.
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-20 21:15:03 +00:00
Philipp Schuster
e4fd066d82
misc: improve developer experience of cargo clippy
...
A major improvement to the developer experience of clippy in
Cloud Hypervisor.
1. Make `cargo clippy` just work with the same lints we use in CI
2. Simplify adding new lints
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-11-17 16:59:49 +00:00
Alyssa Ross
1356b26c0f
build: bump bitfield-struct from 0.11.0 to 0.12.1
...
Should fix beta clippy.
Signed-off-by: Alyssa Ross <hi@alyssa.is >
2025-10-30 00:40:50 +00:00
Philipp Schuster
7536a95424
misc: cleanup &Arc<dyn T> -> &dyn T
...
Consuming `&Arc<T>` as argument is almost always an antipattern as it
hides whether the callee is going to take over (shared) ownership
(by .clone()) or not. Instead, it is better to consume `&dyn T` or
`Arc<dyn T>` to be more explicit. This commit cleans up the code.
The change is very mechanic and was very easy to implement across the
code base.
Signed-off-by: Philipp Schuster <philipp.schuster@cyberus-technology.de >
On-behalf-of: SAP philipp.schuster@sap.com
2025-10-28 17:37:49 +00:00