Wei Liu
74565538ae
hypervisor: mshv: hook up TranslateGVA hypercall
...
At this stage this is the bare minimum needed to make Windows server
2019 work on MSHV.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2021-03-02 07:08:36 +01:00
Rob Bradford
99baee8d37
tests: Move Windows integration test to updated OVMF
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-03-01 22:11:19 +00:00
Wei Liu
030a86db17
hypervisor: mshv: simplify GVA to GPA cache
...
So far we've only had the need to emulate one instruction. There is no
need to use a HashMap when a simple tuple for the initial mapping will
do.
We can bring back the HashMap once more sophisticated use cases surface.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2021-03-01 17:50:47 +00:00
Wei Liu
3eb5b67dc3
hypervisor: mshv: make SoftTLB part of MshvEmulatorContext
...
This avoids code complexity down the line when we get around
implementing Windows support.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2021-03-01 17:50:47 +00:00
Sebastien Boeuf
c27d6df233
vhost: Bump to latest version from upstream
...
Moving to the latest version of the rust-vmm/vhost crate, before it gets
published on crates.io.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-03-01 15:53:46 +01:00
dependabot-preview[bot]
30cd3cb764
deps: bump io-uring from 0.4.0 to 0.5.0
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.4.0 to 0.5.0.
- [Release notes](https://github.com/tokio-rs/io-uring/releases )
- [Commits](https://github.com/tokio-rs/io-uring/commits )
The API was changed, hence some changes were needed to keep the code
building and functional.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-03-01 11:08:25 +00:00
dependabot-preview[bot]
e31c2be60a
build(deps): bump serde_json from 1.0.63 to 1.0.64
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.63 to 1.0.64.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.63...v1.0.64 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-28 18:35:17 +00:00
dependabot-preview[bot]
fb853a50b1
build(deps): bump serde_json from 1.0.62 to 1.0.63
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.62 to 1.0.63.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.62...v1.0.63 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-26 13:00:32 +00:00
dependabot-preview[bot]
8c38d9576c
build(deps): bump adler from 1.0.1 to 1.0.2
...
Bumps [adler](https://github.com/jonas-schievink/adler ) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/jonas-schievink/adler/releases )
- [Changelog](https://github.com/jonas-schievink/adler/blob/master/CHANGELOG.md )
- [Commits](https://github.com/jonas-schievink/adler/compare/v1.0.1...v1.0.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-26 12:46:18 +00:00
dependabot-preview[bot]
5e98810c2d
build(deps): bump libfuzzer-sys from 0.3.5 to 0.4.0 in /fuzz
...
Bumps [libfuzzer-sys](https://github.com/rust-fuzz/libfuzzer ) from 0.3.5 to 0.4.0.
- [Release notes](https://github.com/rust-fuzz/libfuzzer/releases )
- [Changelog](https://github.com/rust-fuzz/libfuzzer/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-fuzz/libfuzzer/commits/0.4.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-26 12:07:51 +00:00
Rob Bradford
f8875acec2
misc: Bulk upgrade dependencies
...
In particular update for the vmm-sys-util upgrade and all the other
dependent packages. This requires an updated forked version of
kvm-bindings (due to updated vfio-ioctls) but allowed the removal of our
forked version of kvm-ioctls.
The changes to the API from kvm-ioctls and vmm-sys-util required some
other minor changes to the code.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-26 11:31:08 +00:00
Sebastien Boeuf
fa8fcf5f4c
vhost: Move to upstream crate
...
The vhost crate from rust-vmm is ready, which is why we do the switch
from the Cloud Hypervisor fork to the upstream crate.
At the same time, we rename the crate from vhost_rs to vhost.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-02-25 11:20:41 +01:00
dependabot-preview[bot]
3e847112db
build(deps): bump once_cell from 1.6.0 to 1.7.0
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.6.0 to 1.7.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.6.0...v1.7.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-24 19:43:07 +00:00
Sebastien Boeuf
a0a89b1346
pci, vmm: Move to upstream vfio-ioctls crate
...
This commit moves both pci and vmm code from the internal vfio-ioctls
crate to the upstream one from the rust-vmm project.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-02-24 08:02:37 +01:00
Sebastien Boeuf
aee1155870
virtio-devices, vmm: Move to ExternalDmaMapping from vm-device
...
Now that ExternalDmaMapping is defined in vm-device, let's use it from
there.
This commit also defines the function get_host_address_range() to move
away from the vfio-ioctls dependency.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-02-24 08:02:37 +01:00
Sebastien Boeuf
5bd05b1af0
vm-device: Move ExternalDmaMapping trait out of vfio-ioctls
...
By moving the trait and its VFIO implementation out of vfio-ioctls, we
give anticipate for the move to the vfio-ioctls from rust-vmm.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-02-24 08:02:37 +01:00
Rob Bradford
727287b69d
build: Drop aarch64 cross-build
...
This has been lagging behind on an older Rust version and we have
enough coverage from our Jenkins CI agent.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
deedfcdc35
vmm: Improve restore error message about URL conversion
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
2122233047
build: Remove "wait-timeout" dependency to dev-dependencies
...
This is only use in the integration test and was erroneously included in
the main binary dependencies.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
afce21ba59
arch: Run interrupt tests
...
The interrupt tests were not being run as they were erroneously under a
feature guard that does not exist in arch.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
ade5097878
arch: use libc::getrandom() instead of rand crate
...
This removes the last use of rand in our tree and the removal of several
dependencies.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
24922ce1e3
tests: Move integration tests to vmm_sys_util::tempdir::TempDir
...
This removes the dependency on "tempdir" which in turn depends on the
large rand dependency chain.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Rob Bradford
c1be41bfbf
net_util: Replace use of rand crate with libc::getrandom()
...
The rand crate provides a full cross platform true cryptographic random
number implementation. As such it brings it lots of othe dependencies
and increases our binary size and compile time. This is excessive for
generating a MAC address.
From the cargo tree output:
│ │ ├── rand v0.8.3
│ │ │ ├── libc v0.2.86
│ │ │ ├── rand_chacha v0.3.0
│ │ │ │ ├── ppv-lite86 v0.2.10
│ │ │ │ └── rand_core v0.6.0
│ │ │ │ └── getrandom v0.2.0
│ │ │ │ ├── cfg-if v0.1.10
│ │ │ │ └── libc v0.2.86
│ │ │ └── rand_core v0.6.0 (*)
And cargo bloat:
0.0% 0.4% 40.4KiB rand_chacha rand_chacha::guts::refill_wide::impl_sse2
0.0% 0.4% 40.0KiB rand_chacha rand_chacha::guts::refill_wide::impl_ssse3
0.0% 0.3% 37.6KiB rand_chacha rand_chacha::guts::refill_wide::impl_avx
0.0% 0.3% 37.2KiB rand_chacha rand_chacha::guts::refill_wide::impl_sse41
0.0% 0.2% 26.1KiB rand_chacha rand_chacha::guts::refill_wide::impl_avx2
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-23 11:07:48 +00:00
Bo Chen
d361fc1a36
vmm: config: Fix and complete the help info for the '--disk' option
...
The help information displayed for our `--disk` option is incorrect and
incomplete, e.g. missing the `direct` and `poll_queue` field.
Signed-off-by: Bo Chen <chen.bo@intel.com>
2021-02-23 08:55:33 +01:00
Wei Liu
49214cf02b
hypervisor: emulator: fix MOVZX
...
According to Intel's mnemonic (which is used by iced-x86) the first
argument is destination while the second is source.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2021-02-23 07:42:33 +01:00
Rob Bradford
d78b2ec8b5
tests: Use vmm_sys_util::tempfile::Tempfile in integration tests
...
This removes the requirement for an extra crate and simplifies the
dependency chain.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
Rob Bradford
946c484590
devices: Remove dependency on tempfile crate
...
This was completely unused.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
Rob Bradford
cd700bf449
virtio-devices: Remove dependency on tempfile crate
...
This was completely unused.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
Rob Bradford
cf7a05ecb5
block_util: Use vmm_sys_util::tempfile::Tempfile
...
This removes the requirement for an extra crate.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
Rob Bradford
0497a7c311
qcow: Use vmm_sys_util::tempfile::Tempfile
...
This removes the requirement for an extra crate.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
Rob Bradford
05a2b3fac2
vmm: Remove "tempfile" dependency from vmm
...
This was completely unused.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-22 14:29:53 +01:00
dependabot-preview[bot]
d33c0563af
build(deps): bump once_cell from 1.5.2 to 1.6.0
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.5.2 to 1.6.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.5.2...v1.6.0 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-22 13:28:54 +00:00
Sebastien Boeuf
4ed0e1a3c8
net_util: Simplify TX/RX queue handling
...
The main idea behind this commit is to remove all the complexity
associated with TX/RX handling for virtio-net. By using writev() and
readv() syscalls, we could get rid of intermediate buffers for both
queues.
The complexity regarding the TAP registration has been simplified as
well. The RX queue is only processed when some data are ready to be
read from TAP. The event related to the RX queue getting more
descriptors only serves the purpose to register the TAP file if it's not
already.
With all these simplifications, the code is more readable but more
performant as well. We can see an improvement of 10% for a single
queue device.
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2021-02-22 10:39:23 +00:00
dependabot-preview[bot]
5ed2a654e8
build(deps): bump generator from 0.6.23 to 0.6.24
...
Bumps [generator](https://github.com/Xudong-Huang/generator-rs ) from 0.6.23 to 0.6.24.
- [Release notes](https://github.com/Xudong-Huang/generator-rs/releases )
- [Commits](https://github.com/Xudong-Huang/generator-rs/compare/0.6.23...0.6.24 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-22 06:30:32 +00:00
dependabot-preview[bot]
ae04fe432c
build(deps): bump signal-hook from 0.3.4 to 0.3.6
...
Bumps [signal-hook](https://github.com/vorner/signal-hook ) from 0.3.4 to 0.3.6.
- [Release notes](https://github.com/vorner/signal-hook/releases )
- [Changelog](https://github.com/vorner/signal-hook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/signal-hook/compare/v0.3.4...v0.3.6 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-21 09:36:30 +00:00
dependabot-preview[bot]
c8d142eb55
build(deps): bump crossbeam-utils from 0.8.1 to 0.8.2
...
Bumps [crossbeam-utils](https://github.com/crossbeam-rs/crossbeam ) from 0.8.1 to 0.8.2.
- [Release notes](https://github.com/crossbeam-rs/crossbeam/releases )
- [Changelog](https://github.com/crossbeam-rs/crossbeam/blob/master/CHANGELOG.md )
- [Commits](https://github.com/crossbeam-rs/crossbeam/compare/crossbeam-utils-0.8.1...crossbeam-utils-0.8.2 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-21 09:36:12 +00:00
dependabot-preview[bot]
8533d63514
build(deps): bump cc from 1.0.66 to 1.0.67
...
Bumps [cc](https://github.com/alexcrichton/cc-rs ) from 1.0.66 to 1.0.67.
- [Release notes](https://github.com/alexcrichton/cc-rs/releases )
- [Commits](https://github.com/alexcrichton/cc-rs/compare/1.0.66...1.0.67 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-19 22:54:50 +00:00
Muminul Islam
0ef69fa592
tests: Use constant instead of static value for windows image name
...
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2021-02-19 10:09:23 +00:00
Muminul Islam
29f924405a
scripts: Check if windows image is in the host
...
Currently script does not exit early if the image/firmware not present
in the host. We should not progress further if the images are not pre
downloaded.
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2021-02-19 10:09:23 +00:00
Muminul Islam
282134a490
scripts: Use variable for with windows image file
...
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2021-02-19 10:09:23 +00:00
dependabot-preview[bot]
1fbdca16bf
build(deps): bump form_urlencoded from 1.0.0 to 1.0.1
...
Bumps [form_urlencoded](https://github.com/servo/rust-url ) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v1.0.0...percent-encoding-v1.0.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-19 09:53:49 +00:00
Rob Bradford
32a2000ecc
build: Only build the {kvm,mshv}-{ioctls,bindings} needed
...
This simplifies the Cloud Hypervisor dependency chain slightly.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-19 08:27:30 +01:00
dependabot-preview[bot]
6a499f02d9
build(deps): bump linux-loader from 2855be1
to 4ab9dad
...
Bumps [linux-loader](https://github.com/rust-vmm/linux-loader ) from `2855be1` to `4ab9dad`.
- [Release notes](https://github.com/rust-vmm/linux-loader/releases )
- [Commits](2855be15a7...4ab9dade2c
)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-19 07:14:55 +00:00
dependabot-preview[bot]
0a9c052ebd
build(deps): bump thiserror from 1.0.23 to 1.0.24
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.23 to 1.0.24.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.23...1.0.24 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-19 07:14:39 +00:00
dependabot-preview[bot]
bfb12b7777
build(deps): bump url from 2.2.0 to 2.2.1
...
Bumps [url](https://github.com/servo/rust-url ) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/servo/rust-url/releases )
- [Commits](https://github.com/servo/rust-url/compare/v2.2.0...v2.2.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-18 21:56:54 +00:00
Rob Bradford
c89095ab85
virtio-devices: Report events for virtio device activation and reset
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-18 16:15:13 +00:00
Rob Bradford
9260c4c10e
vmm: Use event!() for some key VM actions
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-18 16:15:13 +00:00
Rob Bradford
4822ed79e1
main: Add "--monitor-fd" to write structured event data to
...
If supplied then structured JSON event data will be written to that file
descriptor.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-18 16:15:13 +00:00
Rob Bradford
ddbef7450d
event_monitor: Add new crate for event reporting
...
This crate exposes the abililty for the VMM to set a file that events
should be written to. The event!() macro provides an interface to report
those events allowing the specification of an event source, an event
type and optional extra data. This will be written to the provided file
descriptor as JSON data.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-18 16:15:13 +00:00
Rob Bradford
c1d9edbfc0
vmm: seccomp: Add getrandom to vCPU thread filter
...
This can be triggered upon device reset.
Fixes : #2278
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2021-02-18 16:15:13 +00:00