Rob Bradford
f603afc46e
vmm: Make Transparent Huge Pages controllable (default on)
...
Add MemoryConfig::thp and `--memory thp=on|off` to allow control of
Transparent Huge Pages.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-09 16:51:21 +00:00
Rob Bradford
b68add2d0d
vmm: Enable THP when using anonymous memory
...
If the memory is not backed by a file then it is possible to enable
Transparent Huge Pages on the memory and take advantage of the benefits
of huge pages without requiring the specific allocation of an appropriate
number of huge pages.
TEST=Boot and see that in /proc/`pidof cloud-hypervisor`/smaps that the
region is now THPeligible (and that also pages are being used.)
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-09 16:51:21 +00:00
dependabot[bot]
0f44db5da4
build: Bump openssl-src from 111.23.0+1.1.1r to 111.24.0+1.1.1s
...
Bumps [openssl-src](https://github.com/alexcrichton/openssl-src-rs ) from 111.23.0+1.1.1r to 111.24.0+1.1.1s.
- [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-11-08 23:44:15 +00:00
dependabot[bot]
a7dccf94cf
build: Bump terminal_size from 0.2.1 to 0.2.2 in /fuzz
...
Bumps [terminal_size](https://github.com/eminence/terminal-size ) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/eminence/terminal-size/releases )
- [Commits](https://github.com/eminence/terminal-size/compare/v0.2.1...v0.2.2 )
---
updated-dependencies:
- dependency-name: terminal_size
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-08 23:36:26 +00:00
Jianyong Wu
0e6e539d9b
AArch64/fdt: fix PMU irqflag calculation
...
Currently, CPU mask involved into PMU irqflag caculation which is used
for Gicv2. It limits the CPU number up to 31. For Gicv3+, CPU mask is no
longer needed. More info see [1].
Signed-off-by: Jianyong Wu <jianyong.wu@arm.com>
[1] https://lore.kernel.org/all/165668798833.3744902.12084627427900181326.b4-ty@kernel.org/t/
2022-11-08 11:24:11 +00:00
dependabot[bot]
1cb1cff882
build: Bump env_logger from 0.9.1 to 0.9.3
...
Bumps [env_logger](https://github.com/env-logger-rs/env_logger ) from 0.9.1 to 0.9.3.
- [Release notes](https://github.com/env-logger-rs/env_logger/releases )
- [Changelog](https://github.com/env-logger-rs/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/env-logger-rs/env_logger/compare/v0.9.1...v0.9.3 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-07 23:55:26 +00:00
dependabot[bot]
fefbc356a2
build: Bump once_cell from 1.15.0 to 1.16.0 in /fuzz
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.15.0 to 1.16.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.15.0...v1.16.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-11-07 23:52:05 +00:00
Muminul Islam
8b37448d28
tests: Disable test_snapshot_restore_hotplug_virtiomem for MSHV
...
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2022-11-04 12:24:33 -07:00
Muminul Islam
92d083f593
tests: Add a basic test for snapshot/retsore
...
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2022-11-04 12:24:33 -07:00
Muminul Islam
58d8795b53
tests: Make a wrapper function for snapshot/restore
...
Signed-off-by: Muminul Islam <muislam@microsoft.com>
2022-11-04 12:24:33 -07:00
Bo Chen
b37e2ed378
virtio-devices: mem: Handle integer overflow properly
...
An integer overflow from our virtio-mem device can be triggered
from (misbehaved) guest driver with malicious requests. This patch
handles this integer overflow explicitly and treats it as an invalid
request.
Note: this bug was detected by our virtio-mem fuzzer through 'oss-fuzz'.
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-04 09:33:21 +00:00
Bo Chen
ef8fb9bd25
fuzz: Add fuzzer for virtio-console
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-03 09:10:41 -07:00
Bo Chen
cfafc85b9c
virtio-devices: Custom 'EpollHelper::run_with_timeout' for fuzz
...
To support all virtio-devices, this patch replaces the customized
EpollHelper::run` with customized `EpollHelper::run_with_timeout` for
fuzzing.
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-03 09:10:41 -07:00
Bo Chen
683491a955
virtio-devices: console: Provide 'wait_for_epoll_threads'
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-03 09:10:41 -07:00
dependabot[bot]
2bbb08b2a4
build: Bump io-uring from 0.5.7 to 0.5.8
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.5.7 to 0.5.8.
- [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-11-02 23:56:43 +00:00
dependabot[bot]
b77eb63688
build: Bump darling from 0.14.1 to 0.14.2 in /fuzz
...
Bumps [darling](https://github.com/TedDriggs/darling ) from 0.14.1 to 0.14.2.
- [Release notes](https://github.com/TedDriggs/darling/releases )
- [Changelog](https://github.com/TedDriggs/darling/blob/master/CHANGELOG.md )
- [Commits](https://github.com/TedDriggs/darling/compare/v0.14.1...v0.14.2 )
---
updated-dependencies:
- dependency-name: darling
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 23:51:00 +00:00
Rob Bradford
6722c303b0
docs: Fix broken link in windows.md
...
Fixes : #4840
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 11:40:44 +00:00
Rob Bradford
6e0bd73c90
build: Bump linux-loader from 0.6.0 to 0.7.0
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 11:02:00 +00:00
Rob Bradford
103fe1f48b
tests: Skip building kernel if already present
...
When running the glibc and musl integration tests on the CI after each
other skip building the kernel a second time.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 09:42:07 +00:00
Rob Bradford
f4e1b72477
build: Consolidate integration testing to reused built assets
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 09:42:07 +00:00
Rob Bradford
65628e8d94
build: Run linter over Jenkinsfile
...
This has resulted in the content being indented with spaces rather tabs
per Groovy coding style.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-11-02 09:42:07 +00:00
dependabot[bot]
851de1e0b3
build: Bump io-uring from 0.5.7 to 0.5.8 in /fuzz
...
Bumps [io-uring](https://github.com/tokio-rs/io-uring ) from 0.5.7 to 0.5.8.
- [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-11-02 09:21:17 +00:00
Bo Chen
a9ec0f33c0
misc: Fix clippy issues
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-11-02 09:41:43 +01:00
dependabot[bot]
9266ea4995
build: Bump clap from 4.0.17 to 4.0.18
...
Bumps [clap](https://github.com/clap-rs/clap ) from 4.0.17 to 4.0.18.
- [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.0.17...v4.0.18 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-11-01 00:41:51 +00:00
dependabot[bot]
6b8070de95
build: Bump io-lifetimes from 0.7.3 to 0.7.4
...
Bumps [io-lifetimes](https://github.com/sunfishcode/io-lifetimes ) from 0.7.3 to 0.7.4.
- [Release notes](https://github.com/sunfishcode/io-lifetimes/releases )
- [Commits](https://github.com/sunfishcode/io-lifetimes/compare/v0.7.3...v0.7.4 )
---
updated-dependencies:
- dependency-name: io-lifetimes
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 23:48:55 +00:00
dependabot[bot]
a5712641d2
build: Bump remain from 0.2.4 to 0.2.5 in /fuzz
...
Bumps [remain](https://github.com/dtolnay/remain ) from 0.2.4 to 0.2.5.
- [Release notes](https://github.com/dtolnay/remain/releases )
- [Commits](https://github.com/dtolnay/remain/compare/0.2.4...0.2.5 )
---
updated-dependencies:
- dependency-name: remain
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 23:46:39 +00:00
Rob Bradford
aad4dc3b6b
docs: Update memory.md to indicated that hugepages overrides shared
...
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
f4495de143
vmm: Improve handling of shared memory backing
...
As huge pages are always MAP_SHARED then where the shared memory would
be checked (for vhost-user and local migration) we can also check
instead for huge pages.
The checking is also extended to cover the memory zones based
configuration as well.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
99d9a3d299
vmm: memory_manager: Avoid MAP_PRIVATE CoW with VFIO for hugepages too
...
We can't use MAP_ANONYMOUS and still have huge pages so MAP_SHARED is
effectively required when using huge pages.
Unfortunately it is not as simple as always forcing MAP_SHARED if
hugepages is on as this might be inappropriate in the backing file case
hence why there is additional complexity of assigning to mmap_flags on
each case and the MAP_SHARED is only turned on for the anonymous file
huge page case as well as anonymous shared file case.
See: #4805
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
df7c728399
vmm: memory_manager: Only file back memory when required
...
If we do not need an anonymous file backing the memory then do not
create one.
As a side effect this addresses an issue with CoW (mmap with MAP_PRIVATE
but no MAP_ANONYMOUS) when the memory is pinned for VFIO.
Fixes : #4805
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
1e5a4e8d77
vmm: memory_manager: Split filesystem backed and anonymous RAM creation
...
This simplifies the code somewhat making the code paths more readable.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
ff3fb91ba6
vmm: Refactor creation of the FileOffset for GuestRegionMmap::new()
...
Create this earlier so that it is possible to pass a None in for
anonymous mappings.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 22:28:29 +00:00
Rob Bradford
86c19816c6
block_util: Probe for used io_uring opcodes
...
The probing logic wasn't updated to reflect the actual opcodes in use
for io_uring which are vectored read/writes not the unvectored versions.
Signed-off-by: Rob Bradford <robert.bradford@intel.com>
2022-10-31 08:53:54 +01:00
dependabot[bot]
ad1cb130a5
build: Bump openssl-sys from 0.9.76 to 0.9.77
...
Bumps [openssl-sys](https://github.com/sfackler/rust-openssl ) from 0.9.76 to 0.9.77.
- [Release notes](https://github.com/sfackler/rust-openssl/releases )
- [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-sys-v0.9.76...openssl-sys-v0.9.77 )
---
updated-dependencies:
- dependency-name: openssl-sys
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-28 23:45:06 +00:00
dependabot[bot]
0c75e7f7b2
build: Bump os_str_bytes from 6.3.0 to 6.3.1 in /fuzz
...
Bumps [os_str_bytes](https://github.com/dylni/os_str_bytes ) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/dylni/os_str_bytes/releases )
- [Commits](https://github.com/dylni/os_str_bytes/compare/6.3.0...6.3.1 )
---
updated-dependencies:
- dependency-name: os_str_bytes
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-28 23:40:41 +00:00
Jinrong Liang
cb171d4a23
device_manager: Avoid checking io_uring support when it's not needed
...
After testing, io_uring_is_supported() causes about 38ms of
overhead when creating virtio-blk. By modifying the position
of io_uring_is_supported(), the overhead of creating virtio-blk
is reduced to less than 1ms when we close io_uring.
Signed-off-by: Jinrong Liang <cloudliang@tencent.com>
2022-10-27 22:21:51 -07:00
dependabot[bot]
bc310bb173
build: Bump libc from 0.2.135 to 0.2.137
...
Bumps [libc](https://github.com/rust-lang/libc ) from 0.2.135 to 0.2.137.
- [Release notes](https://github.com/rust-lang/libc/releases )
- [Commits](https://github.com/rust-lang/libc/compare/0.2.135...0.2.137 )
---
updated-dependencies:
- dependency-name: libc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-27 23:57:43 +00:00
dependabot[bot]
76f4641004
build: Bump arbitrary from 1.1.7 to 1.2.0 in /fuzz
...
Bumps [arbitrary](https://github.com/rust-fuzz/arbitrary ) from 1.1.7 to 1.2.0.
- [Release notes](https://github.com/rust-fuzz/arbitrary/releases )
- [Changelog](https://github.com/rust-fuzz/arbitrary/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-fuzz/arbitrary/compare/v1.1.7...v1.2.0 )
---
updated-dependencies:
- dependency-name: arbitrary
dependency-type: indirect
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-27 23:53:53 +00:00
dependabot[bot]
dcb12c05a7
build: Bump pkg-config from 0.3.25 to 0.3.26
...
Bumps [pkg-config](https://github.com/rust-lang/pkg-config-rs ) from 0.3.25 to 0.3.26.
- [Release notes](https://github.com/rust-lang/pkg-config-rs/releases )
- [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.25...0.3.26 )
---
updated-dependencies:
- dependency-name: pkg-config
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-27 07:57:53 +00:00
Bo Chen
078c0408b3
virtio-devices: console: Remove obsoleted 'INPUT_EVENT'
...
Since the processing of the console inputs was moved from the VMM thread
to the virtio-console thread (#3061 ), we have been using the 'FILE_EVENT'
to handle input from stdin/pty/file, which made 'INPUT_EVENT' obsoleted.
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-10-27 09:27:12 +02:00
Wei Liu
b99b2bc990
memory_manager: use MFD_CLOEXEC flag when creating memory fd
...
Until there is a need for sharing the memory fd with a child process, we
should err on the safe side to close it on exec.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2022-10-27 09:20:08 +02:00
dependabot[bot]
0cd6d96874
build: Bump getrandom from 0.2.7 to 0.2.8 in /fuzz
...
Bumps [getrandom](https://github.com/rust-random/getrandom ) from 0.2.7 to 0.2.8.
- [Release notes](https://github.com/rust-random/getrandom/releases )
- [Changelog](https://github.com/rust-random/getrandom/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/getrandom/compare/v0.2.7...v0.2.8 )
---
updated-dependencies:
- dependency-name: getrandom
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-26 23:53:05 +00:00
Bo Chen
a5d0ff7039
virtio-devices: console: Propagate GuestMemory errors properly
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-10-26 09:39:30 +02:00
Bo Chen
da1ab77848
virtio-devices: console: Report error instead of panic
...
Signed-off-by: Bo Chen <chen.bo@intel.com>
2022-10-26 09:39:30 +02:00
dependabot[bot]
989d3d3960
build: Bump syn from 1.0.102 to 1.0.103
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.102 to 1.0.103.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.102...1.0.103 )
---
updated-dependencies:
- dependency-name: syn
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 23:45:43 +00:00
dependabot[bot]
1559b7b684
build: Bump rustix from 0.35.11 to 0.35.12 in /fuzz
...
Bumps [rustix](https://github.com/bytecodealliance/rustix ) from 0.35.11 to 0.35.12.
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.35.11...v0.35.12 )
---
updated-dependencies:
- dependency-name: rustix
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 23:43:02 +00:00
dependabot[bot]
e96474a5bd
build: Bump rustix from 0.35.11 to 0.35.12
...
Bumps [rustix](https://github.com/bytecodealliance/rustix ) from 0.35.11 to 0.35.12.
- [Release notes](https://github.com/bytecodealliance/rustix/releases )
- [Commits](https://github.com/bytecodealliance/rustix/compare/v0.35.11...v0.35.12 )
---
updated-dependencies:
- dependency-name: rustix
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 23:48:30 +00:00
dependabot[bot]
2a36a18be3
build: Bump syn from 1.0.102 to 1.0.103 in /fuzz
...
Bumps [syn](https://github.com/dtolnay/syn ) from 1.0.102 to 1.0.103.
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/1.0.102...1.0.103 )
---
updated-dependencies:
- dependency-name: syn
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-10-24 23:47:19 +00:00
zbleness
0e386581e0
README.md: Add missing backslash to example code
...
Signed-off-by: zbleness <77726616+zbleness@users.noreply.github.com>
2022-10-24 16:33:14 +02:00
Sebastien Boeuf
1f0e5eb66a
vmm: virtio-devices: Restore every VirtioDevice upon creation
...
Following the new design proposal to improve the restore codepath when
migrating a VM, all virtio devices are supplied with an optional state
they can use to restore from. The restore() implementation every device
was providing has been removed in order to prevent from going through
the restoration twice.
Here is the list of devices now following the new restore design:
- Block (virtio-block)
- Net (virtio-net)
- Rng (virtio-rng)
- Fs (vhost-user-fs)
- Blk (vhost-user-block)
- Net (vhost-user-net)
- Pmem (virtio-pmem)
- Vsock (virtio-vsock)
- Mem (virtio-mem)
- Balloon (virtio-balloon)
- Watchdog (virtio-watchdog)
- Vdpa (vDPA)
- Console (virtio-console)
- Iommu (virtio-iommu)
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2022-10-24 14:17:08 +02:00