Skip to content

Commit 1af6f82

Browse files
Merge branch 'main' into target-opentmk
2 parents 19a7312 + 7aa1add commit 1af6f82

File tree

145 files changed

+6178
-1474
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+6178
-1474
lines changed

.config/nextest.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,21 @@ filter = 'package(~vmm_tests)'
66
# Mark VMM tests as heavy and requiring more threads due to their memory and CPU
77
# usage. For local dev runs, you may need to manually restrict the number of
88
# threads running via the -j cli arg.
9-
threads-required = 2
9+
threads-required = 3
1010

1111
[[profile.default.overrides]]
1212
# use fuzzy-matching for the package() to allow out-of-tree tests to use the
1313
# same profile
1414
filter = 'package(~vmm_tests) and test(openhcl)'
15-
# Mark OpenHCL VMM tests as extra heavy, as they have to also simulate VTL2.
16-
threads-required = 4
15+
# Mark OpenHCL VMM tests as extra heavy, as they have to also run VTL2.
16+
threads-required = 6
1717

1818
[[profile.default.overrides]]
1919
# use fuzzy-matching for the package() to allow out-of-tree tests to use the
2020
# same profile
2121
filter = 'package(~vmm_tests) and test(heavy)'
2222
# Mark heavy tests as extra heavy, as they include up to 16 vps.
23-
threads-required = 16
23+
threads-required = 24
2424

2525
# Profile for CI runs.
2626
[profile.ci]
@@ -46,4 +46,4 @@ slow-timeout = { period = "30s", terminate-after = 2 }
4646
filter = 'package(~vmm_tests)'
4747
# VMM tests contain their own watchdog timer, but keep an extra long timer
4848
# here as a backup.
49-
slow-timeout = { period = "10m", terminate-after = 1 }
49+
slow-timeout = { period = "15m", terminate-after = 1 }

.github/workflows/openvmm-ci.yaml

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/openvmm-docs-ci.yaml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/openvmm-pr-release.yaml

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.github/workflows/openvmm-pr.yaml

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,6 @@ __pycache__
4646

4747
flowey-out
4848
flowey-persist
49+
50+
# Node.js dependencies and artifacts
51+
node_modules/

Cargo.lock

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1949,6 +1949,7 @@ dependencies = [
19491949
"fs-err",
19501950
"igvmfilegen_config",
19511951
"log",
1952+
"powershell_builder",
19521953
"serde",
19531954
"serde_json",
19541955
"target-lexicon",
@@ -2397,6 +2398,7 @@ dependencies = [
23972398
"slab",
23982399
"task_control",
23992400
"thiserror 2.0.16",
2401+
"tracelimit",
24002402
"tracing",
24012403
"vm_resource",
24022404
"vmcore",
@@ -3059,6 +3061,7 @@ dependencies = [
30593061
"pal_async",
30603062
"pci_bus",
30613063
"pci_core",
3064+
"pcie",
30623065
"range_map_vec",
30633066
"scsi_core",
30643067
"scsidisk",
@@ -4422,6 +4425,7 @@ dependencies = [
44224425
"futures-concurrency",
44234426
"guestmem",
44244427
"inspect",
4428+
"inspect_counters",
44254429
"memory_range",
44264430
"mesh",
44274431
"net_backend_resources",
@@ -5545,6 +5549,21 @@ dependencies = [
55455549
"vmcore",
55465550
]
55475551

5552+
[[package]]
5553+
name = "pcie"
5554+
version = "0.0.0"
5555+
dependencies = [
5556+
"chipset_device",
5557+
"inspect",
5558+
"pal_async",
5559+
"pci_bus",
5560+
"pci_core",
5561+
"tracelimit",
5562+
"tracing",
5563+
"vmcore",
5564+
"zerocopy 0.8.25",
5565+
]
5566+
55485567
[[package]]
55495568
name = "pem-rfc7468"
55505569
version = "0.7.0"
@@ -9350,6 +9369,7 @@ dependencies = [
93509369
"unix_socket",
93519370
"virtio_resources",
93529371
"vm_resource",
9372+
"vmgs_resources",
93539373
"vmm_test_macros",
93549374
"zerocopy 0.8.25",
93559375
]

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ vmswitch = { path = "vm/devices/net/vmswitch" }
259259
pci_bus = { path = "vm/devices/pci/pci_bus" }
260260
pci_core = { path = "vm/devices/pci/pci_core" }
261261
pci_resources = { path = "vm/devices/pci/pci_resources" }
262+
pcie = { path = "vm/devices/pci/pcie" }
262263
vpci = { path = "vm/devices/pci/vpci" }
263264
vpci_client = { path = "vm/devices/pci/vpci_client" }
264265
vpci_protocol = { path = "vm/devices/pci/vpci_protocol" }

flowey/flowey/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
pub mod node {
1515
pub mod prelude {
1616
// include all user-facing types in the prelude
17+
pub use flowey_core::match_arch;
1718
pub use flowey_core::node::user_facing::*;
1819

1920
// ...in addition, export various types/traits that node impls are

flowey/flowey_core/src/node.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,20 @@ pub mod user_facing {
103103

104104
Ok(())
105105
}
106+
107+
/// Helper method to handle Linux distros that are supported only on one
108+
/// host architecture.
109+
/// match_arch!(var, arch, result)
110+
#[macro_export]
111+
macro_rules! match_arch {
112+
($host_arch:expr, $match_arch:pat, $expr:expr) => {
113+
if matches!($host_arch, $match_arch) {
114+
$expr
115+
} else {
116+
anyhow::bail!("Linux distro not supported on host arch {}", $host_arch);
117+
}
118+
};
119+
}
106120
}
107121

108122
/// Check if `ReadVar` / `WriteVar` instances are backed by the same underlying
@@ -908,6 +922,8 @@ pub enum FlowPlatformLinuxDistro {
908922
Fedora,
909923
/// Ubuntu (including WSL2)
910924
Ubuntu,
925+
/// Arch Linux (including WSL2)
926+
Arch,
911927
/// An unknown distribution
912928
Unknown,
913929
}

0 commit comments

Comments
 (0)