Rob Bradford
6ddbd60d9d
build: Update kernel to v6.12
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-13 21:46:23 +00:00
Rob Bradford
2fc4de6c65
virtio-devices: iommu: Use hex formatting in log messages
...
This means that the the addresses are more easily readable.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-13 21:46:23 +00:00
Rob Bradford
03eeb36b74
virtio-devices: iommu: Search full range for GVA conversion
...
Remove an erroneous optimisation that used the page size mask to reduce
the range to iterate through on the set of mappings. This doesn't work
as the virtio-iommu ranges are larger than a single page. This may have
worked in the past when the mappings were limited to a single page.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-13 21:46:23 +00:00
Rob Bradford
2fe7f54ece
build: Bump version number of Docker image
...
No change to the Dockerfile but I observed that the 20251022-0 image was
not available in the repository.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-11 15:03:01 +00:00
Rob Bradford
1cc540c880
build: Update github artifact action version
...
The v3 version is now deprecated. Tested by creating a dummy tag and
validating the results.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-09 22:25:35 +00:00
Wei Liu
a1af4238ae
virtio-devices: make ioeventfds() return an iterator
...
MSHV's SEV-SNP implementation calls ioeventfds whenever there is an
event.
This change removes the need frequent allocation and deallocation of a
vector, while at the same time makes sure other call sites are
unaffected.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 21:28:46 +00:00
Wei Liu
d2e798944a
virtio-devices: rename two variables
...
They are used. No need to start their names with an underscore.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 21:28:46 +00:00
Wei Liu
d99f294281
pci: rename as_any to as_any_mut
...
That trait function returns a mutable reference. Rename it to follow
Rust's convention.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 21:28:46 +00:00
dependabot[bot]
44c9ce598d
build: Bump anstyle-wincon from 3.0.4 to 3.0.6
...
Bumps [anstyle-wincon](https://github.com/rust-cli/anstyle ) from 3.0.4 to 3.0.6.
- [Commits](https://github.com/rust-cli/anstyle/compare/anstyle-wincon-v3.0.4...anstyle-wincon-v3.0.6 )
---
updated-dependencies:
- dependency-name: anstyle-wincon
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-09 13:57:10 +00:00
Wei Liu
5b42aa0bcf
hypervisor: kvm: fix an operator precedence clippy warning
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
703e0cab04
vmm: use C ABI-qualification for packed structures
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
abb88cf47f
arch: tdx: use proper repr qualifications
...
They should be packed and use C ABI.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
2e22b8bc3a
pci: use C ABI-qualification for a packed structure
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
778c05d678
virtio-devices: use C ABI-qualification for packed structures
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
5b29eba636
block: vhdx: use C ABI-qualification for packed structures
...
This fixes the following issue from beta Clippy:
error: item uses `packed` representation without ABI-qualification
Error: --> block/src/vhdx/vhdx_header.rs:333:1
|
331 | #[repr(packed)]
| ------ `packed` representation set here
332 | #[derive(Clone, Copy, Debug)]
333 | / pub struct RegionTableEntry {
334 | | pub guid: Uuid,
335 | | pub file_offset: u64,
336 | | pub length: u32,
337 | | pub required: u32,
338 | | }
| |_^
|
= warning: unqualified `#[repr(packed)]` defaults to `#[repr(Rust, packed)]`, which has no stable ABI
= help: qualify the desired ABI explicity via `#[repr(C, packed)]` or `#[repr(Rust, packed)]`
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#repr_packed_without_abi
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-09 13:51:42 +00:00
Wei Liu
e6e78e5986
block: vhdx: reject zero size virtual disk
...
Some calculation down the road depends on that value not being zero.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-08 22:45:58 +00:00
Wei Liu
a2df4d7660
fuzz: explicitly keep or reject input for vhdx fuzzer
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-08 22:45:58 +00:00
Wei Liu
bc4a1fd16c
block: vhdx: use checked_add in read and write functions
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-08 22:45:58 +00:00
Wei Liu
463c9b8e56
block: vhdx: hoist a check out of IO loops
...
This reduces one indentation level in the IO loops in the read and write
functions.
No functional change.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-08 22:45:58 +00:00
dependabot[bot]
835847bea5
build: Bump async-trait from 0.1.83 to 0.1.85
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.83 to 0.1.85.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.83...0.1.85 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-08 15:17:36 +00:00
Rob Bradford
3e4ed5621e
vmm: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
2624f17ffe
virtio-devices: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
21f05ebb4f
vhost_user_block: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
1485e17268
vhost_user_net: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
b57cc3d79f
pci: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
a322e2d6f4
hypervisor: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
dd0b95ba5c
devices: Automatically fix operator precedence clippy warning
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
Rob Bradford
b6667f948e
arch: Fix operator precedence clippy warning
...
With manual (to ensure comment preservation) and automatic fixes.
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-07 17:44:41 +00:00
dependabot[bot]
4f22f67307
build: Bump proc-macro2 from 1.0.86 to 1.0.92
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.86 to 1.0.92.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.86...1.0.92 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: indirect
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-07 00:15:47 +00:00
Rob Bradford
eeae63b459
build: Bump thiserror version
...
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-06 17:39:45 +00:00
Rob Bradford
abf5748f64
block: qcow: Use constant in error message
...
This avoids ambiguity of parameters:
error: ambiguous reference to positional arguments by number in a tuple variant; change this to a named argument
--> block/src/qcow/mod.rs:48:48
|
48 | #[error("File larger than max of {}: {0}", MAX_QCOW_FILE_SIZE)]
| ^^^^^^^^^^^^^^^^^^
Signed-off-by: Rob Bradford <rbradford@rivosinc.com>
2025-01-06 17:39:45 +00:00
dependabot[bot]
23b5f7b1c5
build: Bump futures from 0.3.30 to 0.3.31
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.30 to 0.3.31.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.30...0.3.31 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2025-01-06 15:05:55 +00:00
Wei Liu
a66fef407c
block: vhdx: properly account for bytes read and written
...
The counter value in vhdx_io::{read,write} should've been accumulated
over the loop.
Fixes : #6897
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-03 10:25:53 +00:00
Wei Liu
7c39f37855
fuzz: introduce an x86 instruction emulator fuzzer
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-02 22:43:59 +00:00
Wei Liu
fe24a7a24f
hypervisor: introduce an mshv_emulator feature
...
This will become useful when we build the fuzzing target for the
instruction emulator, because there is no need to pull in the rest of
the hypervisor crate in that situation.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-02 22:43:59 +00:00
Wei Liu
73e1451a12
hypervisor: emulator: use wrapping arithmetic
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-02 22:43:59 +00:00
Wei Liu
1180f757b3
hypervisor: emulator: adjust iced-x86 feature flags
...
The fastfmt feature and VEX support use techniques that appear to leak
memory in the eye of LLVM's address sanitizer.
While at it, disable a bunch of instruction set decoding support we
never intend to support.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-02 22:43:59 +00:00
Wei Liu
2932658acd
fuzz: update Cargo.lock
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-02 22:43:59 +00:00
Wei Liu
1f7b809619
block: increase the size of temporary vectors
...
The size was set to one because without VIRTIO_BLK_F_SEG_MAX, the guest
only used one data descriptor per request.
The value 32 is empirically derived from booting a guest. This value
eliminates all SmallVec allocations observable by DHAT.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-01 18:50:39 +00:00
Wei Liu
32482f6634
block: make available VIRTIO_BLK_F_SEG_MAX
...
This allows the guest to put in more than one segment per request. It
can improve the throughput of the system.
Introduce a new check to make sure the queue size configured by the user
is large enough to hold at least one segment.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2025-01-01 18:50:39 +00:00
Wei Liu
6fd5b0f696
fuzz: explicitly keep or reject fuzzer corpus
...
When the main fuzzer function returns (), it is equivalent to
returning Corpus::Keep.
In some of the return paths, we want to reject the input so that the
libfuzzer won't spend more time mutating them.
The should make fuzzing more efficient. No functional change intended.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-31 19:49:48 +00:00
Wei Liu
ef88b2778e
block: vhdx: advance file offset after read and write
...
This is needed to handle multiple reads or writes in a loop.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
8b55d1e2d4
block: vhdx: rename Header::get_header_as_buffer
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
2df285effd
block: vhdx: use calculate_checksum in Header::update_header
...
It doesn't make sense to open code the same calculation when there is
already a helper function.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
4ea4391f45
block: vhdx: adjust calculate_checksum
...
It doesn't need to be public. None of its code path returns an error.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
8f8d3c0139
block: vhdx: fix checksum calculation
...
The checksum field in the original buffer should be zeroed.
The code was zeroing a temporary buffer. That's wrong.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
408467a05f
block: vhdx: do not update the VHDX header during parsing
...
The original code was buggy. It always attempted to update the header,
even when the file was opened as read-only. That led to an error.
The specification states that the headers should be updated when the
first user visible write happens. We can just drop the incorrect code.
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
Wei Liu
f27b028c18
block: vhdx: drop pub keyword from update_header
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-28 23:59:59 +00:00
dependabot[bot]
eaa2194699
build: Bump kvm-ioctls from 0.19.0 to 0.19.1
...
Bumps [kvm-ioctls](https://github.com/rust-vmm/kvm-ioctls ) from 0.19.0 to 0.19.1.
- [Release notes](https://github.com/rust-vmm/kvm-ioctls/releases )
- [Changelog](https://github.com/rust-vmm/kvm/blob/v0.19.1/CHANGELOG.md )
- [Commits](https://github.com/rust-vmm/kvm-ioctls/compare/v0.19.0...v0.19.1 )
---
updated-dependencies:
- dependency-name: kvm-ioctls
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-12-23 20:18:18 +00:00
Wei Liu
9973d28849
block: drop unused function create_disk_file
...
Signed-off-by: Wei Liu <liuwe@microsoft.com>
2024-12-21 20:20:29 +00:00