Rob Bradford
eabf43fbf6
Revert "tests: Extend test_*_reboot with checks on fd leaking"
...
This reverts commit 7dc4e91303
.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-05 14:09:17 +01:00
Bo Chen
7dc4e91303
tests: Extend test_*_reboot with checks on fd leaking
...
Fixes : #1209
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-06-04 20:48:44 +01:00
dependabot-preview[bot]
601d898f8a
build(deps): bump pin-project from 0.4.17 to 0.4.19
...
Bumps [pin-project](https://github.com/taiki-e/pin-project ) from 0.4.17 to 0.4.19.
- [Release notes](https://github.com/taiki-e/pin-project/releases )
- [Changelog](https://github.com/taiki-e/pin-project/blob/master/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/pin-project/compare/v0.4.17...v0.4.19 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-04 18:44:30 +02:00
Arron Wang
6ff107afe4
vm-device: Switch to use get_host_address_range in vfio-ioctls
...
The API has change to use generic GuestMemory trait:
pub fn get_host_address_range<M: GuestMemory>(
mem: &M,
addr: GuestAddress,
size: usize,
) -> Option<*mut u8> {
Signed-off-by: Arron Wang <arron.wang@intel.com>
2020-06-04 08:48:55 +02:00
Samuel Ortiz
3336e80192
vfio: Switch to the vfio-ioctls crate ch branch
...
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2020-06-04 08:48:55 +02:00
Samuel Ortiz
d24aa72d3e
vfio: Rename to vfio-ioctls
...
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2020-06-04 08:48:55 +02:00
Samuel Ortiz
53ce529875
vfio: Move the PCI implementation to the PCI crate
...
There is a much stronger PCI dependency from vfio_pci.rs than a VFIO one
from pci/src/vfio.rs. It seems more natural to have the PCI specific
VFIO implementation in the PCI crate rather than the other way around.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2020-06-04 08:48:55 +02:00
Michael Zhao
8f7dc73562
vmm: Move Vcpu::configure() to arch crate
...
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2020-06-03 11:27:29 +02:00
Michael Zhao
969e5e0b51
vmm: Split configure_system() from load_kernel() for x86_64
...
Now the flow of both architectures are aligned to:
1. load kernel
2. create VCPU's
3. configure system
4. start VCPU's
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2020-06-03 11:27:29 +02:00
Michael Zhao
20cf21cd9d
vmm: Change booting process to cover AArch64 requirements
...
Between X86 and AArch64, there is some difference in booting a VM:
- X86_64 can setup IOAPIC before creating any VCPU.
- AArch64 have to create VCPU's before creating GIC.
The old process is:
1. load_kernel()
load kernel binary
configure system
2. activate_vcpus()
create & start VCPU's
So we need to separate "activate_vcpus" into "create_vcpus" and
"activate_vcpus" (to start vcpus only). Setup GIC and create FDT
between the 2 steps.
The new procedure is:
1. load_kernel()
load kernel binary
(X86_64) configure system
2. create VCPU's
3. (AArch64) setup GIC
4. (AArch64) configure system
5. start VCPU's
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2020-06-03 11:27:29 +02:00
Rob Bradford
61aa4615e2
vhost_user_net: Implement VIRTIO_RING_F_EVENT_IDX
...
The general handling of VIRTIO_RING_F_EVENT_IDX is in the
vhost_user_backend functionality and the net specific handling is in the
NetQueuePair from virtio-net.
As such enabling for the vhost-user-net backend is just the case of
adding the feature.
Fixes : #789
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-03 08:28:49 +02:00
Rob Bradford
a4d377a066
vm-virtio: net: Implement VIRTIO_RING_F_EVENT_IDX
...
If VIRTIO_RING_F_EVENT_IDX is negotiated only generate suppress
interrupts if the guest has asked us to do so.
Fixes : #788
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-03 08:28:49 +02:00
Rob Bradford
f06970730b
vm-virtio: net: Handle lost interrupts on restore
...
In some situations it is seen that the first interrupt sent to the guest
is lost upon a restore (due to the tap worker being awake ahead of the
vPUs).
This causes problems with VIRTIO_RING_F_EVENT_IDX interrupt suppression
as the guest will not be interrupted again in order to mitigate this we
always interrupt the guest until the device itself has been signalled by
the guest.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-03 08:28:49 +02:00
Rob Bradford
a5596020b3
vm-virtio: Add some info! level debugging interrupt generation
...
This was very helpful when debugging interrupt issues and will be useful
for the future.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-03 08:28:49 +02:00
Rob Bradford
cc51fdb8a7
vhost_user_net: Use NetQueuePair from vm-virtio
...
The logic for handling the networking queues can now be shared between
the version running in vhost-user-net and vm-virtio.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
Rob Bradford
fcc62efc41
vm-virtio: net: Prepare NetQueuePair for use in vhost-user-net
...
This requires exposing the struct members and also using Option<..>
types for the main epoll fd and the memory as they are initialised later
in vhost-user-net.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
Rob Bradford
2dbd11864e
vm-virtio: net: Split network handling
...
Split handling of behaviour that is independent of the device itself so
that it can be reused in the vhost-user-net device.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
Rob Bradford
237cb184b4
vm-virtio: net: Add further missing error reporting
...
Ensure that errors generated from rx_single_frame are propagated
correctly.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
Rob Bradford
36d072e69c
vm-virtio: Add error propagation for TAP listener (un)registration
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
Rob Bradford
3151b5d82a
vm-virtio: net: Refactor to support code reuse
...
Split out functions that work just on the TAP device and queues. Whilst
doing so also improve the error handling to return Results rather than
drop errors.
This change also addresses a bug where the TAP event suppression could
ineffectual because it was being enabled immediately after it may have
been disabled:
resume_rx -> rx_single_frame -> unregister_listener -> resume_rx ->
register_listener.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-06-02 13:26:52 +02:00
dependabot-preview[bot]
22be88d3fb
build(deps): bump vfio-bindings from 887b3cf
to f08cbcb
...
Bumps [vfio-bindings](https://github.com/rust-vmm/vfio-bindings ) from `887b3cf` to `f08cbcb`.
- [Release notes](https://github.com/rust-vmm/vfio-bindings/releases )
- [Commits](887b3cf877...f08cbcbf40
)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 11:54:09 +01:00
dependabot-preview[bot]
6121f4626b
build(deps): bump vfio-bindings from 46ef9d4
to 887b3cf
...
Bumps [vfio-bindings](https://github.com/rust-vmm/vfio-bindings ) from `46ef9d4` to `887b3cf`.
- [Release notes](https://github.com/rust-vmm/vfio-bindings/releases )
- [Commits](46ef9d418e...887b3cf877
)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-02 09:22:29 +01:00
dependabot-preview[bot]
b731e63a8c
build(deps): bump ryu from 1.0.4 to 1.0.5
...
Bumps [ryu](https://github.com/dtolnay/ryu ) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/dtolnay/ryu/releases )
- [Commits](https://github.com/dtolnay/ryu/compare/1.0.4...1.0.5 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 08:51:44 +01:00
dependabot-preview[bot]
d2d5ccb163
build(deps): bump proc-macro2 from 1.0.17 to 1.0.18
...
Bumps [proc-macro2](https://github.com/alexcrichton/proc-macro2 ) from 1.0.17 to 1.0.18.
- [Release notes](https://github.com/alexcrichton/proc-macro2/releases )
- [Commits](https://github.com/alexcrichton/proc-macro2/compare/1.0.17...1.0.18 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 08:51:26 +01:00
dependabot-preview[bot]
a1b9131bc6
build(deps): bump syn from 1.0.29 to 1.0.30
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.29 to 1.0.30.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.29...1.0.30 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 08:51:12 +01:00
dependabot-preview[bot]
2571b27966
build(deps): bump vcpkg from 0.2.8 to 0.2.9
...
Bumps [vcpkg](https://github.com/mcgoo/vcpkg-rs ) from 0.2.8 to 0.2.9.
- [Release notes](https://github.com/mcgoo/vcpkg-rs/releases )
- [Changelog](https://github.com/mcgoo/vcpkg-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/mcgoo/vcpkg-rs/compare/vcpkg-rs-0.2.8...vcpkg-rs-0.2.9 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-01 08:50:55 +01:00
dependabot-preview[bot]
57f477efa1
build(deps): bump syn from 1.0.28 to 1.0.29
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.28 to 1.0.29.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.28...1.0.29 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-31 17:46:29 +01:00
dependabot-preview[bot]
8a08ea466a
build(deps): bump serde_derive from 1.0.110 to 1.0.111
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.110 to 1.0.111.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.110...v1.0.111 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-31 17:46:02 +01:00
dependabot-preview[bot]
b8ae30d454
build(deps): bump serde from 1.0.110 to 1.0.111
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.110 to 1.0.111.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.110...v1.0.111 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-31 17:45:42 +01:00
dependabot-preview[bot]
0a0fb2468a
build(deps): bump syn from 1.0.27 to 1.0.28
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.27 to 1.0.28.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.27...1.0.28 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-30 00:51:13 +02:00
dependabot-preview[bot]
bc2921b22c
build(deps): bump regex from 1.3.8 to 1.3.9
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.3.8 to 1.3.9.
- [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.3.8...1.3.9 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-29 08:17:07 +01:00
dependabot-preview[bot]
917ad53024
build(deps): bump regex from 1.3.7 to 1.3.8
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.3.7 to 1.3.8.
- [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/regex-1.3.7...1.3.8 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-28 17:07:31 +01:00
dependabot-preview[bot]
aac87196d6
build(deps): bump vm-memory from 0.2.0 to 0.2.1
...
Bumps [vm-memory](https://github.com/rust-vmm/vm-memory ) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/rust-vmm/vm-memory/releases )
- [Changelog](https://github.com/rust-vmm/vm-memory/blob/v0.2.1/CHANGELOG.md )
- [Commits](https://github.com/rust-vmm/vm-memory/compare/v0.2.0...v0.2.1 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-28 17:06:48 +01:00
Rob Bradford
4c2e6054c0
build: Update to latest version of container
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-05-27 19:32:12 +02:00
Rob Bradford
c471ae944c
Dockerfile: Update to latest Rust toolchain: 1.43.0
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-05-27 19:32:12 +02:00
Rob Bradford
c31ad72ee9
build: Address issues found by 1.43.0 clippy
...
These are mostly due to use of "bare use" statements and unnecessary vector
creation.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-05-27 19:32:12 +02:00
Bo Chen
fbd1a6c5f1
vmm: api: Return complete error responses in handle_http_request()
...
Instead of responding only headers with error code, we now return
complete error responses to HTTP requests with errors (e.g. undefined
endpoints and InternalSeverError).
Fixes : #472
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-05-27 18:29:52 +01:00
Rob Bradford
0728bece0c
vmm: seccomp: Ensure that umask() can be reprogrammed
...
When doing self spawning the child will attempt to set the umask() again. Let
it through the seccomp rules so long as it the safe mask again.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-05-27 16:46:51 +01:00
Rob Bradford
3497eeff49
main: Set the umask to 0077
...
This ensures that all created filed are only read/write for the current user.
Fixes : #1240
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2020-05-27 16:46:51 +01:00
dependabot-preview[bot]
c1d15de7fc
build(deps): bump syn from 1.0.25 to 1.0.27
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.25 to 1.0.27.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.25...1.0.27 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-27 09:02:38 +02:00
dependabot-preview[bot]
a4bb96d45c
build(deps): bump libc from 0.2.70 to 0.2.71
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.70 to 0.2.71.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.70...0.2.71 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-27 09:02:13 +02:00
dependabot-preview[bot]
bfd52ad85f
build(deps): bump linux-loader from bd01b6d
to 1af92d2
...
Bumps [linux-loader](https://github.com/rust-vmm/linux-loader ) from `bd01b6d` to `1af92d2`.
- [Release notes](https://github.com/rust-vmm/linux-loader/releases )
- [Commits](bd01b6dd23...1af92d21ad
)
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-27 09:01:24 +02:00
Michael Zhao
8f1f9d9e6b
devices: Implement InterruptController on AArch64
...
This commit only implements the InterruptController crate on AArch64.
The device specific part for GIC is to be added.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2020-05-26 11:09:19 +02:00
Michael Zhao
b32d3025f3
devices: Refactor IOAPIC to cover other architectures
...
IOAPIC, a X86 specific interrupt controller, is referenced by device
manager and CPU manager. To work with more architectures, a common
type for all architectures is needed.
This commit introduces trait InterruptController to provide architecture
agnostic functions. Device manager and CPU manager can use it without
caring what the underlying device is.
Signed-off-by: Michael Zhao <michael.zhao@arm.com>
2020-05-26 11:09:19 +02:00
dependabot-preview[bot]
d588418053
build(deps): bump syn from 1.0.24 to 1.0.25
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.24 to 1.0.25.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.24...1.0.25 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-26 06:36:22 +02:00
dependabot-preview[bot]
83c18de56a
build(deps): bump proc-macro-hack from 0.5.15 to 0.5.16
...
Bumps [proc-macro-hack](https://github.com/dtolnay/proc-macro-hack ) from 0.5.15 to 0.5.16.
- [Release notes](https://github.com/dtolnay/proc-macro-hack/releases )
- [Commits](https://github.com/dtolnay/proc-macro-hack/compare/0.5.15...0.5.16 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 10:14:07 +02:00
dependabot-preview[bot]
7708b95ec7
build(deps): bump syn from 1.0.23 to 1.0.24
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.23 to 1.0.24.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.23...1.0.24 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 07:18:56 +02:00
dependabot-preview[bot]
749f2f0314
build(deps): bump proc-macro2 from 1.0.15 to 1.0.17
...
Bumps [proc-macro2](https://github.com/alexcrichton/proc-macro2 ) from 1.0.15 to 1.0.17.
- [Release notes](https://github.com/alexcrichton/proc-macro2/releases )
- [Commits](https://github.com/alexcrichton/proc-macro2/compare/1.0.15...1.0.17 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 07:17:38 +02:00
dependabot-preview[bot]
c98d6fd035
build(deps): bump openssl-sys from 0.9.56 to 0.9.57
...
Bumps [openssl-sys](https://github.com/sfackler/rust-openssl ) from 0.9.56 to 0.9.57.
- [Release notes](https://github.com/sfackler/rust-openssl/releases )
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-sys-v0.9.56...openssl-sys-v0.9.57 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-25 07:17:03 +02:00
dependabot-preview[bot]
a9ca493b5d
build(deps): bump proc-macro2 from 1.0.14 to 1.0.15
...
Bumps [proc-macro2](https://github.com/alexcrichton/proc-macro2 ) from 1.0.14 to 1.0.15.
- [Release notes](https://github.com/alexcrichton/proc-macro2/releases )
- [Commits](https://github.com/alexcrichton/proc-macro2/compare/1.0.14...1.0.15 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-22 22:23:31 +01:00