Omer Faruk Bayram
a7aecb5eee
tests: refactor test_api*
to support the D-Bus API and add a new test
...
Implemented a `TargetApi` enum to make the process of implementing
tests for the D-Bus and HTTP API more convenient.
Refactored `test_api_{create_boot, shutdown, pause_resume, delete}` tests
with the `TargetApi` enum to also implement tests for the D-Bus API.
Added a new test named `test_api_dbus_and_http_interleaved` that uses
both the HTTP and D-Bus API at the same time.
Modified integration test scripts to enable the `dbus_api` feature when
compiling and start a dbus-session when integration tests are run.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
a64d27f841
ch-remote: full support for calling the D-Bus API
...
Support calling into the D-Bus API in a non-breaking way.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
7a458d85d1
main: cli: add D-Bus API related CLI options
...
Introduces three new CLI options, `dbus-service-name`,
`dbus-object-path` and `dbus-system-bus` to configure the DBus API.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
a92d852848
vmm: dbus: apply seccomp filter
...
This commit applies the previously created seccomp filter
to the `DbusApi` thread.
Also encloses the main loop of the `DBusApi` thread using
`std::panic::catch_unwind` and `AssertUnwindSafe` in order to mirror
the behavior of the HTTP API.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
0664647109
vmm: seccomp: add new seccomp filter for the DBusApi
thread
...
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
f2c813e1cf
vmm: seccomp: rename Thread::Api
to Thread::HttpApi
...
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
f00df25d40
vmm: dbus: graceful shutdown of the DBusApi thread
...
This commit adds support for graceful shutdown of the DBusApi thread
using `futures::channel::oneshot` channels. By using oneshot channels,
we ensure that the thread has enough time to send a response to the
`VmmShutdown` method call before it is terminated. Without this step,
the thread may be terminated before it can send a response, resulting
in an error message on the client side stating that the message
recipient disconnected from the message bus without providing a reply.
Also changes the default values for DBus service name, object path
and interface name.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
c016a0d4d3
vmm: dbus: implement the D-Bus API
...
This commit introduces three new dependencies: `zbus`, `futures`
and `blocking`. `blocking` is used to call the Internal API in zbus'
async context which is driven by `futures::executor`. They are all
behind the `dbus_api` feature flag.
The D-Bus API implementation is behind the same `dbus_api` feature
flag as well.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Omer Faruk Bayram
5c96fbb19b
vmm: move the http api into its own submodule
...
This commits moves the http API code into its own
submodule.
Signed-off-by: Omer Faruk Bayram <omer.faruk@sartura.hr>
2023-06-06 10:18:26 -07:00
Rob Bradford
b955f09b80
build: Bump MSRV to 1.64
...
This is required for openssl-src crate as it now uses functionality
first released in this version.
See: https://github.com/alexcrichton/openssl-src-rs/pull/184
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-06-06 17:34:22 +01:00
dependabot[bot]
79ad6f8536
build: Bump libc from 0.2.144 to 0.2.145 in /fuzz
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.144 to 0.2.145.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.144...0.2.145 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-06 00:27:33 +00:00
dependabot[bot]
be4f04a906
build: Bump proc-macro2 from 1.0.52 to 1.0.59
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.52 to 1.0.59.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.52...1.0.59 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-03 00:38:18 +00:00
Rafael Mendonca
f8415debe9
docs: Fix broken link to macvtap doc in custom-image.md
...
We get a "404 - page not found" when clicking on this link on github.
Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com>
2023-06-02 14:57:24 -07:00
dependabot[bot]
9014a5e59c
build: Bump serde from 1.0.156 to 1.0.163
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.156 to 1.0.163.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.156...v1.0.163 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-02 00:38:59 +00:00
Ravi kumar Veeramally
612621bb46
vmm: Improve "cloud-hypervisor --help" view format
...
Rust documentation comments follows 80 char per line. But some of
these help options doesn't have space in between. Longlines of
text is starting from beginning of the next line instead of
proper format.
Before fix:
Options:
--cpus boot=<boot_vcpus>,max=<max_vcpus>,topology=<threads_per_core>:<cores_per_die>:<dies_per_package>:<packages>,kvm_hyperv=on|off,max_phys_bits=<maximum_number_of_physical_bits>,affinity=<list_of_vcpus_with_their_associated_cpuset>,features=<list_of_features_to_enable>
After fix:
Options:
--cpus boot=<boot_vcpus>, max=<max_vcpus>,
topology=<threads_per_core>:<cores_per_die>:<dies_per_package>:<packages>,
kvm_hyperv=on|off,
max_phys_bits=<maximum_number_of_physical_bits>,
affinity=<list_of_vcpus_with_their_associated_cpuset>,
features=<list_of_features_to_enable>
Signed-off-by: Ravi kumar Veeramally <ravikumar.veeramally@intel.com>
2023-06-01 13:46:57 +01:00
Ruslan Mstoi
18e1d2caf5
tests: fix sha1sum check warning
...
Remove empty line to fix warning:
"sha1sum: WARNING: 1 line is improperly formatted"
Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
2023-06-01 13:45:47 +01:00
dependabot[bot]
4be406a308
build: Bump pkg-config from 0.3.26 to 0.3.27
...
Bumps [pkg-config](https://github.com/rust-lang/pkg-config-rs ) from 0.3.26 to 0.3.27.
- [Changelog](https://github.com/rust-lang/pkg-config-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/pkg-config-rs/compare/0.3.26...0.3.27 )
---
updated-dependencies:
- dependency-name: pkg-config
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-06-01 02:35:49 +00:00
Anatol Belski
7bf2a2c382
vmm: arch: Make phys_bits functionality use CPU vendor API
...
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-31 23:54:33 +02:00
Anatol Belski
7df80220ec
hyperivsor: Add infrastructure to determine CPU vendor
...
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-31 23:54:33 +02:00
dependabot[bot]
84d2511de0
build: Bump regex from 1.7.1 to 1.8.3
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.7.1 to 1.8.3.
- [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.7.1...1.8.3 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: indirect
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 00:39:15 +00:00
dependabot[bot]
374263ddac
build: Bump once_cell from 1.17.1 to 1.17.2 in /fuzz
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.17.1 to 1.17.2.
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.17.1...v1.17.2 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-31 00:15:58 +00:00
dependabot[bot]
7b76b6b61e
build: Bump acpi_tables from 98dcb03
to cb5f06c
...
Bumps [acpi_tables](https://github.com/rust-vmm/acpi_tables ) from `98dcb03` to `cb5f06c`.
- [Commits](98dcb0309d...cb5f06c747
)
---
updated-dependencies:
- dependency-name: acpi_tables
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-30 10:20:37 -07:00
Rob Bradford
e06f12673b
build: Bump to latest version of versionize_derive
...
This version includes a patch to correctly specify the version
dependencies.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-05-30 08:27:25 -07:00
Rob Bradford
89e658d9ff
misc: Update for beta clippy failures on x86-64
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-05-30 07:18:17 -07:00
dependabot[bot]
5ac68534b1
build: Bump log from 0.4.17 to 0.4.18 in /fuzz
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.17 to 0.4.18.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.18 )
---
updated-dependencies:
- dependency-name: log
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-30 00:12:45 +00:00
dependabot[bot]
6acceaa87c
build: Bump quote from 1.0.27 to 1.0.28 in /fuzz
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.27 to 1.0.28.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.27...1.0.28 )
---
updated-dependencies:
- dependency-name: quote
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-27 00:20:10 +00:00
dependabot[bot]
a3898fd8e1
build: Bump mshv-ioctls from c1230f2
to dcd4612
...
Bumps [mshv-ioctls](https://github.com/rust-vmm/mshv ) from `c1230f2` to `dcd4612`.
- [Commits](c1230f282c...dcd4612656
)
---
updated-dependencies:
- dependency-name: mshv-ioctls
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2023-05-26 05:00:14 +00:00
dependabot[bot]
7026622c24
build: Bump proc-macro2 from 1.0.58 to 1.0.59 in /fuzz
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.58 to 1.0.59.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.58...1.0.59 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-26 00:16:06 +00:00
dependabot[bot]
41e5384f15
build: Bump unicode-ident from 1.0.8 to 1.0.9 in /fuzz
...
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident ) from 1.0.8 to 1.0.9.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases )
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.8...1.0.9 )
---
updated-dependencies:
- dependency-name: unicode-ident
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-25 00:17:02 +00:00
dependabot[bot]
681a30bd15
build: Bump thiserror from 1.0.39 to 1.0.40
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.39 to 1.0.40.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.39...1.0.40 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-24 00:39:08 +00:00
Rafael Mendonca
1976157761
main: Fix error propagation if starting the VM fails
...
Commit 21d40d7
("main: reset tty if starting the VM fails") changed
start_vmm() to join the vmm thread if an error happens after the vmm
thread is started. The implementation put all the error-prone code that
is run after the vmm is started in a closure, to be able to always join
the vmm thread, regardless of any error happening. However, it missed
propagating the error that might happen inside the closure back to the
main function, after joining the vmm thread.
For some cmd line options, the above issue inhibits proper error
reporting when starting a VM with invalid commands, as many parameters
are parsed after the vmm is started, thus if such parsing fails, no
error will be reported back to the user.
See: #5435
Fixes: 21d40d7
("main: reset tty if starting the VM fails")
Signed-off-by: Rafael Mendonca <rafaelmendsr@gmail.com>
2023-05-23 09:45:08 -07:00
Bo Chen
0b1e626fe3
vmm: Allocate guest memory address space before TDX initialization
...
The refactoring on deferring address space allocation (#5169 ) broke TDX,
as TDX initialization needs to access guest memory for encryption and
measurement of guest pages.
Signed-off-by: Bo Chen <chen.bo@intel.com>
2023-05-23 09:00:00 -07:00
dependabot[bot]
79bc42f3c2
build: Bump anyhow from 1.0.70 to 1.0.71
...
Bumps [anyhow](https://github.com/dtolnay/anyhow ) from 1.0.70 to 1.0.71.
- [Release notes](https://github.com/dtolnay/anyhow/releases )
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.70...1.0.71 )
---
updated-dependencies:
- dependency-name: anyhow
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-23 00:42:11 +00:00
Jianyong Wu
eca75dcfc9
vfio: align memory region size and address to PAGE_SIZE
...
In current implementation, memory region used in vfio is assumed to
align to 4k which may cause error when the PAGE_SIZE is not 4k, like on
Arm, it can be 16k and 64k.
Remove this assumption and align memory resource used by vfio to
PAGE_SIZE then vfio can run on host with 64k PAGE_SIZE.
Fixes : #5292
Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
2023-05-22 13:25:52 +01:00
dependabot[bot]
600d1664ee
build: Bump vfio_user from e75c941
to eef6bec
...
Bumps [vfio_user](https://github.com/rust-vmm/vfio-user ) from `e75c941` to `eef6bec`.
- [Commits](e75c9415d9...eef6bec4d4
)
---
updated-dependencies:
- dependency-name: vfio_user
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-20 00:36:54 +00:00
dependabot[bot]
e6208d1c0e
build: Bump uuid from 1.3.0 to 1.3.3
...
Bumps [uuid](https://github.com/uuid-rs/uuid ) from 1.3.0 to 1.3.3.
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/1.3.0...1.3.3 )
---
updated-dependencies:
- dependency-name: uuid
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-19 00:44:43 +00:00
dependabot[bot]
cf635c64d7
build: Bump proc-macro2 from 1.0.57 to 1.0.58 in /fuzz
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.57 to 1.0.58.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.57...1.0.58 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-19 00:19:07 +00:00
Rob Bradford
42ca292dce
build: Release v32.0
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-05-18 10:09:15 -07:00
dependabot[bot]
b7338c96eb
build: Bump serde from 1.0.152 to 1.0.156
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.152 to 1.0.156.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.152...v1.0.156 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-18 13:54:52 +01:00
Rob Bradford
bf4af14e73
tests: Temporarily disable test_macvtap{_hotplug} on aarch64
...
See: #5443
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2023-05-18 13:54:35 +01:00
dependabot[bot]
24a3505f0b
build: Bump proc-macro2 from 1.0.56 to 1.0.57 in /fuzz
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.56 to 1.0.57.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.56...1.0.57 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-17 00:17:34 +00:00
dependabot[bot]
20f3691474
build: Bump uuid from 1.3.2 to 1.3.3 in /fuzz
...
Bumps [uuid](https://github.com/uuid-rs/uuid ) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/1.3.2...1.3.3 )
---
updated-dependencies:
- dependency-name: uuid
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-16 00:19:41 +00:00
Hao Xu
c56a3ce59a
vmm: reduce memory copy when BFT device tree
...
The current implementation of breadth first traversal for device tree
uses a temporary vector, therefore causes unnecessary memory copy.
Remove it and do it within vector nodes.
Signed-off-by: Hao Xu <howeyxu@tencent.com>
2023-05-15 17:19:48 +01:00
dependabot[bot]
18f7a37b48
build: Bump serde from 1.0.162 to 1.0.163 in /fuzz
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.162 to 1.0.163.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.162...v1.0.163 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-12 00:13:33 +00:00
dependabot[bot]
98496434b9
build: Bump quote from 1.0.26 to 1.0.27 in /fuzz
...
Bumps [quote](https://github.com/dtolnay/quote ) from 1.0.26 to 1.0.27.
- [Release notes](https://github.com/dtolnay/quote/releases )
- [Commits](https://github.com/dtolnay/quote/compare/1.0.26...1.0.27 )
---
updated-dependencies:
- dependency-name: quote
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-10 00:12:21 +00:00
dependabot[bot]
0b2994a6e3
build: Bump libc from 0.2.142 to 0.2.144 in /fuzz
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.142 to 0.2.144.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.142...0.2.144 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2023-05-09 00:13:07 +00:00
Anatol Belski
553e6857bd
tests: Enable topology integration tests under mshv
...
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-08 08:50:09 -07:00
Anatol Belski
083ce323c0
seccomp: Add filter entry for MSHV_VP_REGISTER_INTERCEPT_RESULT
...
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-08 08:50:09 -07:00
Anatol Belski
8fff4c1af3
mshv: Pass topology explicitly while constructing cpuid
...
Unlike KVM, there's no internal handling for topoolgy under MSHV. Thus,
if no topology has been passed during the CH launch, use the boot CPUs
count to construct the topology struct.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-08 08:50:09 -07:00
Anatol Belski
35ecfb6ec5
hypervisor: mshv: Implement set_cpuid2 call
...
Passing the CPUID leafs with the topology is integrated into the common
mechanism of setting and patching CPUID in Cloud Hypervisor. All the
CPUID values will be passed to the hypervisor through the register
intercept call.
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
2023-05-08 08:50:09 -07:00