Wei Liu
f9f0a60dcf
hypervisor: provide a generic IoEventAddress structure
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 22:09:04 +01:00
Wei Liu
9810ed4496
hypervisor: provide a generic MpState structure
...
It is however only used for KVM right now because MSHV does not need it
yet.
Nonetheless a stub MSHV constructor should be there and get/set
functions should be implemented for MSHV.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 22:09:04 +01:00
Wei Liu
02866fccb0
hypervisor: drop unused IrqRouting struct from MSHV
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 22:09:04 +01:00
Alyssa Ross
a455917db5
vmm: fix missed API or debug events
...
Previously, we were assuming that every time an eventfd notified us,
there was only a single event waiting for us. This meant that if,
while one API request was being processed, two more arrived, the
second one would not be processed (until the next one arrived, when it
would be processed instead of that event, and so on). To fix this,
make sure we're processing the number of API and debug requests we've
been told have arrived, rather than just one. This is easy to
demonstrate by sending lots of API events and adding some sleeps to
make sure multiple events can arrive while each is being processed.
For other uses of eventfd, like the exit event, this doesn't matter —
even if we've received multiple exit events in quick succession, we
only need to exit once. So I've only made this change where receiving
an event is non-idempotent, i.e. where it matters that we process the
event the right number of times.
Technically, reset requests are also non-idempotent — there's an
observable difference between a VM resetting once, and a VM resetting
once and then immediately resetting again. But I've left that alone
for now because two resets in immediate succession doesn't sound like
something anyone would ever want to me.
Signed-off-by: Alyssa Ross <hi@alyssa.is >
2022-07-14 17:44:11 +01:00
Wei Liu
4a1eab11b4
hypervisor: do not export VcpuExit
...
It is not used anywhere outside of the hypervisor crate.
Signed-off-by: Dev Rajput <t-devrajput@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 16:37:47 +01:00
Michael Zhao
f0ad7fc74f
hypervisor: Remove arch_target = "arm"' in cfg`
...
Some `arch_target = "arm"' usages on VCPU related code are not correct.
And we don't support 32-bit ARM architecture.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-14 22:55:19 +08:00
Michael Zhao
2d8635f04a
hypervisor: Refactor system_registers on AArch64
...
Function `system_registers` took mutable vector reference and modified
the vector content. Now change the definition to `get/set` style.
And rename to `get/set_sys_regs` to align with other functions.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-14 22:55:19 +08:00
Michael Zhao
c445513976
hypervisor: Refactor core_registers on AArch64
...
On AArch64, the function `core_registers` and `set_core_registers` are
the same thing of `get/set_regs` on x86_64. Now the names are aligned.
This will benefit supporting `gdb`.
Signed-off-by: Michael Zhao <michael.zhao@arm.com >
2022-07-14 22:55:19 +08:00
dependabot[bot]
fc2cc53d51
build: bump clap from 3.2.8 to 3.2.11
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.8 to 3.2.11.
- [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/v3.2.8...v3.2.11 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-14 14:49:35 +00:00
Wei Liu
0e8769d76a
device_manager: assert passthrough_device has the correct type
...
There is a lot of unsafe code in such a small function. Add an assert
to help detect issues earlier.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 08:09:50 +01:00
Wei Liu
47b5581c50
hypervisor: drop a level of indirection for MSHV's DeviceFd
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 08:09:50 +01:00
Wei Liu
3710932248
hypervisor: drop a level of indirection for KVM's DeviceFd
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 08:09:50 +01:00
Wei Liu
ddad5f3510
hypervisor: allow downcasting to KVM / MSHV device fd
...
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 08:09:50 +01:00
Archana Shinde
28683b8471
docs: Add step to resolve DNS for installing packages
...
For installing packages for the custom Ubuntu image, we
need to setup DNS inside the chroot.
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com >
2022-07-14 07:58:13 +01:00
Wei Liu
e1cf889dbd
hypervisor: use UserMemoryRegion in the Vm trait
...
Signed-off-by: Dev Rajput <t-devrajput@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 07:55:48 +01:00
Wei Liu
5894b5370c
hypervisor: transform between UserMemoryRegion and hypervisor structs
...
Signed-off-by: Dev Rajput <t-devrajput@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 07:55:48 +01:00
Wei Liu
fabc940b65
hypervisor: add UserMemoryRegion and flags
...
Signed-off-by: Dev Rajput <t-devrajput@microsoft.com >
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-14 07:55:48 +01:00
dependabot[bot]
6b9c5d21c4
build: bump clap from 3.2.10 to 3.2.11 in /fuzz
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.10 to 3.2.11.
- [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/v3.2.10...v3.2.11 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-13 23:35:18 +00:00
dependabot[bot]
c140fd6220
build: bump hashbrown from 0.12.1 to 0.12.2 in /fuzz
...
Bumps [hashbrown](https://github.com/rust-lang/hashbrown ) from 0.12.1 to 0.12.2.
- [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.12.1...v0.12.2 )
---
updated-dependencies:
- dependency-name: hashbrown
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-13 00:03:10 +00:00
dependabot[bot]
7063c41811
build: bump clap from 3.2.8 to 3.2.10 in /fuzz
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.8 to 3.2.10.
- [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/v3.2.8...v3.2.10 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-12 23:37:00 +00:00
dependabot[bot]
92f9866e2f
build: bump openssl-sys from 0.9.74 to 0.9.75
...
Bumps [openssl-sys](https://github.com/sfackler/rust-openssl ) from 0.9.74 to 0.9.75.
- [Release notes](https://github.com/sfackler/rust-openssl/releases )
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-sys-v0.9.74...openssl-sys-v0.9.75 )
---
updated-dependencies:
- dependency-name: openssl-sys
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-12 02:41:13 +00:00
dependabot[bot]
23935ad96b
build: bump io-uring from 0.5.2 to 0.5.3
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/tokio-rs/io-uring/releases )
- [Commits](https://github.com/tokio-rs/io-uring/commits )
---
updated-dependencies:
- dependency-name: io-uring
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-12 01:55:59 +00:00
dependabot[bot]
335fd465fe
build: bump hashbrown from 0.12.1 to 0.12.2
...
Bumps [hashbrown](https://github.com/rust-lang/hashbrown ) from 0.12.1 to 0.12.2.
- [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.12.1...v0.12.2 )
---
updated-dependencies:
- dependency-name: hashbrown
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-12 00:50:10 +00:00
dependabot[bot]
b8e5c2ecca
build: bump serde from 1.0.138 to 1.0.139 in /fuzz
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.138 to 1.0.139.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.138...v1.0.139 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-12 00:20:20 +00:00
dependabot[bot]
a99c33ccfa
build: bump serde from 1.0.138 to 1.0.139
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.138 to 1.0.139.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.138...v1.0.139 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-11 23:54:20 +00:00
dependabot[bot]
b70f2c5385
build: bump io-uring from 0.5.2 to 0.5.3 in /fuzz
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.5.2 to 0.5.3.
- [Release notes](https://github.com/tokio-rs/io-uring/releases )
- [Commits](https://github.com/tokio-rs/io-uring/commits )
---
updated-dependencies:
- dependency-name: io-uring
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-11 23:39:59 +00:00
Wei Liu
84bbaf06d1
hypervisor: turn boot_msr_entries into a trait method
...
This allows dispatching to either KVM or MSHV automatically.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com >
2022-07-08 16:49:58 +01:00
Rob Bradford
121729a3b0
vmm: Split signal handling for VM and VMM signals
...
The VM specific signal (currently only SIGWINCH) should only be handled
when the VM is running.
The generic VMM signals (SIGINT and SIGTERM) need handling at all times.
Split the signal handling into two separate threads which have differing
lifetimes.
Tested by:
1.) Boot full VM and check resize handling (SIGWINCH) works & sending
SIGTERM leads to cleanup (tested that API socket is removed.)
2.) Start without a VM and send SIGTERM/SIGINT and observe cleanup (API
socket removed)
3.) Boot full VM, delete VM and observe 2.) holds.
4.) Boot full VM, delete VM, recreate VM and observe 1.) holds.
Fixes : #4269
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-08 15:15:46 +01:00
Rob Bradford
e300c3dcf7
vhdx: Avoid unwrap() of invalid header
...
In the original code:
If the first header was invalid and the second header had the same
sequence number (zero) then the invalid first header would be returned.
The new code is more Rust idiomatic and avoids this situation.
See: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=48858
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-08 10:19:11 +01:00
Rob Bradford
b132cd2145
build: Release v25.0
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
v25.0
2022-07-07 15:18:55 +01:00
Sebastien Boeuf
a650b8645f
deps: bump virtio-queue from 0.3.0 to 0.4.0
...
And along with virtio-queue, we must also bump vhost-user-backend from
0.3.0 to 0.5.0 (since it relies on virtio-queue 0.4.0).
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com >
2022-07-06 16:57:09 +02:00
Sebastien Boeuf
f94a5fb4e3
virtio-devices: Pass negotiated queue size to vhost-user backend
...
The vhost-user backend was always provided the maximum queue size but
this is incorrect. Instead it must be informed of the actual queue size
that has been negotiated with the virtio driver running in the guest.
This ensures proper functioning of vhost-user-block with the Rust
Hypervisor Firmware, which uses a hardcoded queue size of 16.
Partially fixes #4285
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com >
2022-07-06 14:45:46 +01:00
Sebastien Boeuf
00800b8499
virtio-devices: Remove deprecated call to VHOST_USER_RESET_OWNER
...
The latest vhost-user specification describes VHOST_USER_RESET_OWNER
command as deprecated with the following explanation:
This is no longer used. Used to be sent to request disabling all
rings, but some back-ends interpreted it to also discard connection
state (this interpretation would lead to bugs). It is recommended that
back-ends either ignore this message, or use it to disable all rings.
Also, it's been observed that when using either Rust Hypervisor Firmware
or EDK2 OVMF firmware with SPDK (using the block device as the boot
disk), the virtio reset that happens when the firmware no longer needs
to access the block device caused a failure by triggering the command
VHOST_USER_RESET_OWNER.
For all these reasons, this patch simplifies the virtio reset
implementation by simply disabling the virtqueues and no longer calling
into VHOST_USER_RESET_OWNER.
Partially fixes #4285
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com >
2022-07-06 14:45:46 +01:00
dependabot[bot]
0b311f6c4c
build: bump once_cell from 1.12.1 to 1.13.0
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.12.1 to 1.13.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.1...v1.13.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-06 02:35:11 +00:00
dependabot[bot]
8063c00e67
build: bump openssl-src from 111.21.0+1.1.1p to 111.22.0+1.1.1q
...
Bumps [openssl-src](https://github.com/alexcrichton/openssl-src-rs ) from 111.21.0+1.1.1p to 111.22.0+1.1.1q.
- [Release notes](https://github.com/alexcrichton/openssl-src-rs/releases )
- [Commits](https://github.com/alexcrichton/openssl-src-rs/commits )
---
updated-dependencies:
- dependency-name: openssl-src
dependency-type: indirect
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-06 01:47:30 +00:00
dependabot[bot]
4f611c8654
build: bump serde from 1.0.137 to 1.0.138
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.137 to 1.0.138.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.137...v1.0.138 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-06 00:56:48 +00:00
dependabot[bot]
d291b87288
build: bump regex from 1.5.6 to 1.6.0
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.5.6 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.5.6...1.6.0 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: indirect
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-06 00:02:30 +00:00
dependabot[bot]
51787d30da
build: bump once_cell from 1.12.1 to 1.13.0 in /fuzz
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.12.1 to 1.13.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.1...v1.13.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: indirect
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-05 23:47:51 +00:00
Sebastien Boeuf
63579341e1
net_util: Don't expect the interface to be IFF_RUNNING
...
Enabling the TAP interface is only about the IFF_UP flag, meaning we
shouldn't be testing the presence of IFF_RUNNING, and therefore we
shouldn't set it when not present.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com >
2022-07-05 16:35:58 +01:00
dependabot[bot]
9c0872def7
build: bump once_cell from 1.12.0 to 1.12.1
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.0...v1.12.1 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-05 11:39:42 +00:00
Rob Bradford
5dfc49c9fa
build: Update development container to Rust 1.62
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-05 11:50:46 +01:00
dependabot[bot]
65f8c3682f
build: bump serde from 1.0.137 to 1.0.138 in /fuzz
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.137 to 1.0.138.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.137...v1.0.138 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-05 00:04:25 +00:00
dependabot[bot]
c87466eea2
build: bump once_cell from 1.12.0 to 1.12.1 in /fuzz
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.12.0...v1.12.1 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-04 23:36:34 +00:00
Rob Bradford
6c365617ee
Revert "scripts, README.md: Bump reference kernel to 5.18.8"
...
This reverts commit 1999ab5707 .
See: #4273
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-04 10:55:28 +01:00
Rob Bradford
30da293d8f
tests: Report stderr on ch-remote command failure
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-04 09:18:18 +02:00
Rob Bradford
67bfd4e234
tests: tests_api_create_boot: Use ch-remote for creating and booting vm
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-04 09:18:18 +02:00
Rob Bradford
46bbe0e612
ch-remote: Simplify ch-remote create from config file
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com >
2022-07-04 09:18:18 +02:00
dependabot[bot]
216f330f4e
build: bump semver from 1.0.11 to 1.0.12
...
Bumps [semver](https://github.com/dtolnay/semver ) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.11...1.0.12 )
---
updated-dependencies:
- dependency-name: semver
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-02 00:51:37 +00:00
dependabot[bot]
bd075872d4
build: bump mshv-bindings from d94c305 to 7ac1b80
...
Bumps [mshv-bindings](https://github.com/rust-vmm/mshv ) from `d94c305` to `7ac1b80`.
- [Release notes](https://github.com/rust-vmm/mshv/releases )
- [Commits](d94c30583f...7ac1b80bff )
---
updated-dependencies:
- dependency-name: mshv-bindings
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-01 23:57:38 +00:00
dependabot[bot]
7fd5f41623
build: bump semver from 1.0.11 to 1.0.12 in /fuzz
...
Bumps [semver](https://github.com/dtolnay/semver ) from 1.0.11 to 1.0.12.
- [Release notes](https://github.com/dtolnay/semver/releases )
- [Commits](https://github.com/dtolnay/semver/compare/1.0.11...1.0.12 )
---
updated-dependencies:
- dependency-name: semver
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2022-07-01 23:44:45 +00:00