Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
2561fd4
chore: prepare virtio for multiple transport options
bchalios Apr 16, 2025
2181329
chore: avoid IrqTrigger::new().unwrap()
bchalios Apr 23, 2025
271b057
refactor: set VirtIO interrupt during activation
bchalios Apr 17, 2025
68318a3
virtio: add generic interrupt trait
bchalios Apr 16, 2025
f2b0b4b
refactor: use VirtioInterrupt in VirtIO devices
bchalios Apr 22, 2025
e7ba499
vm-device: add vm-device crate to repo
bchalios Apr 29, 2025
b6a8bfc
refactor(serial): remove generics from SerialDevice
bchalios Apr 24, 2025
e226c94
refactor: use vm_device::Bus as the MMIO bus
bchalios Apr 24, 2025
b7b2185
refactor: simplify creating RTCDevice
bchalios Apr 30, 2025
62693e8
refactor: use vm_device::Bus for IO bus
bchalios Apr 24, 2025
6755ed8
refactor: add top-level device manager
bchalios Apr 25, 2025
ac38c8f
refactor: simplify creation of I8042 device
bchalios May 7, 2025
695b1cc
test: add network interface to test_serial_dos test
bchalios May 12, 2025
59064b9
pci: add pci crate from Cloud Hypervisor
bchalios Apr 28, 2025
00a6982
arch: define 64-bit capable MMIO memory regions
bchalios May 5, 2025
352e2ea
refactor: prepare ResourceAllocator for PCIe devices
bchalios May 6, 2025
083d7ce
pci: add support for PCIe segment
bchalios May 6, 2025
9bb2d5e
pci: add support for ACPI MCFG table
bchalios May 7, 2025
dc1202f
pci: define PCI segment in FDT
bchalios May 14, 2025
7340a66
pci: make PCIe support optional
bchalios May 13, 2025
2c2c011
pci: add support for snapshotting PCI devices
bchalios May 13, 2025
d357231
pci: add tests for PCIe root bus
bchalios May 12, 2025
3b30425
test: allow `extd_apicid` CPU feature on AMD guests
bchalios May 21, 2025
4ef00ed
test: add Rust integration tests for PCI-enabled uVMs
bchalios May 21, 2025
4f4f5eb
test: temporarily disable security A/B tests for PCI uVMs
bchalios May 21, 2025
2f3229d
test: update ci artifacts to support PCI devices
Manciukic Nov 13, 2024
b4397a5
tests: fix MMIO gaps in memory monitor tool
bchalios May 22, 2025
2c6774d
fix: boottimer device MMIO address
bchalios Jun 4, 2025
319086f
test: remove logging from memory monitor
bchalios Jun 4, 2025
f6f2c4d
chore: update kvm and vmm-sys-util dependencies
bchalios May 30, 2025
c7a99f0
pci: fixes in PCI crate
bchalios Jun 3, 2025
3188761
vm-device: return reference to EventFd from Interrupt trait
bchalios Jun 10, 2025
fba4a49
cleanup: remove unused code from pci and vm-device crates
bchalios Jun 25, 2025
5c42eac
refactor: allow storing Arc<Vm> within Vmm
bchalios Jun 2, 2025
f6b5782
vm: track device interrupts within Vm object
bchalios Jun 2, 2025
d9a458f
interrupts: add support for MSI/MSI-X interrupts
bchalios Jun 3, 2025
3341ac3
vstate: support serializing interrupts to snapshots
bchalios Jun 10, 2025
509f40a
virtio: initialize queue size with max_size
bchalios Jun 3, 2025
8369c7a
acpi: PCI compatible flags in FADT
bchalios Jun 3, 2025
45ad79b
vmm: simplify device errors
bchalios Jun 3, 2025
d8986a9
pci: add virtio-pci transport implementation
bchalios Jun 2, 2025
4d04928
seccomp: allow new ioctls for vCPU threads
bchalios Jun 4, 2025
9f63e3e
pci: add unit tests to PciSegment
bchalios Jun 4, 2025
85e5a33
device_manager: save resource allocator in snapshot
bchalios Jun 5, 2025
e53ffd8
refactor: VirtIO MMIO persistence logic
bchalios Jun 6, 2025
72fbaed
pci: support snapshotting VirtIO PCI devices
bchalios Jun 5, 2025
31f0976
refactor(vm): move ResourceAllocator inside Vm
bchalios Jun 13, 2025
d3f6e4c
refactor(vm): move `Bus` objects to Vm
bchalios Jun 13, 2025
8c43170
arm: support MSI-X on ARM
bchalios Jun 18, 2025
dde20a5
test: VirtIO PCI device create and restoration
bchalios Jun 17, 2025
fa1ea0e
test: enable PCI microVMs for performance testing
bchalios Jun 20, 2025
4183d15
test: remove pci=off default from various parts in tests
bchalios Jun 25, 2025
f60247b
virtio: add kick() method in VirtioDevice trait
bchalios Jun 30, 2025
5bf3061
refactor: simplify ResourceAllocator internals
bchalios Jun 30, 2025
ea61d73
fix(vsock): pass correct index when triggering interrupts
bchalios Jul 2, 2025
129ffb6
fix(pci): do not panic on invalid BDF during deserialization
Manciukic Jul 8, 2025
99ed078
test(pci): add unit tests for Bdf
Manciukic Jul 8, 2025
ffa9693
fix(vmm): fix patch of pci devices
Manciukic Jul 9, 2025
394e3a4
fix(balloon): fix balloon not found when pci is enabled
Manciukic Jul 9, 2025
48455bf
fix(restore): fix net device rename of PCI devices
Manciukic Jul 10, 2025
bab52cf
fix(msi): allocate GSI for MSI and "legacy IRQ" from different ranges
Manciukic Jul 8, 2025
b4ea6cd
refactor(mmio): rename irq to gsi in MMIODeviceInfo
Manciukic Jul 16, 2025
01a3ef0
test(pci): make test_net_change_mac_address pass with PCI devices
Manciukic Jul 10, 2025
a1a065f
test(rootfs): disable predictable netif names
Manciukic Jul 9, 2025
54d27b9
test(pci): remove pci=off command line from tests
Manciukic Jul 8, 2025
3874075
test(pci): parametrize uvm_plain* with pci
Manciukic Jul 8, 2025
4c25c99
refactor(test): use uvm_plain* fixture instead factory.build
Manciukic Jul 15, 2025
d176d97
refactor(test): add uvm_plain_acpi and _6_1 fixtures
Manciukic Jul 15, 2025
d8a909c
test(concurrency): run also with PCI
Manciukic Jul 15, 2025
831b2dd
test(vhost): run tests also with PCI enabled
Manciukic Jul 15, 2025
49cfaf6
test(initrd): run also with PCI enabled
Manciukic Jul 15, 2025
71fa49b
test(memory-overhead): run also with PCI enabled
Manciukic Jul 15, 2025
27b3fad
test(perf/snapshot): run also with PCI enabled
Manciukic Jul 15, 2025
25bd4e3
fix(test_block): correct fixture name s/uvm_any_acpi/uvm_plain_acpi/
Manciukic Jul 18, 2025
0979f94
fix: check in Cargo.lock changes
bchalios Jul 29, 2025
53dec53
msix: relax assertion on data accesses from guest
bchalios Jul 28, 2025
d54bdb6
msi: use Vec to store GSIs for MSI vectors
bchalios Jul 28, 2025
3f86ebc
msi: fix size of interrupts HashMap
bchalios Jul 29, 2025
2e44dee
fix: return NO_VECTOR when reading MSI vector for invalid queue
bchalios Jul 29, 2025
30bba88
fix(pci): correct shift size when setting config address
bchalios Jul 29, 2025
d76a8ec
fix: only set MSI-X vector for valid queues
bchalios Jul 30, 2025
28cea21
feat: add swiotlb=noforce to default kernel command line
Manciukic Jul 30, 2025
cc5cab3
pci: remove unused code
bchalios Aug 1, 2025
cf12e8e
pci: remove unused type from PciDevice::allocate_bars
bchalios Aug 1, 2025
dfa69db
pci: always assume we are using a single 64bit MMIO BAR
bchalios Aug 1, 2025
d5dceb7
feat(virtio/interrupt): add trigger_queues method
Manciukic Aug 4, 2025
ed591ac
fix(vsock): restore previous performance with PCI disabled
Manciukic Aug 4, 2025
6cf32b9
fix(virtio): avoid panic on device activation failure
bchalios Aug 8, 2025
eab2b40
fix(mmio): avoid locking multiple times in same code branch
bchalios Aug 8, 2025
efccd18
fix(virtio-pci): check guest values for MSI-X vector
bchalios Aug 11, 2025
bd22a2d
refactor(pcie): avoid string format on good path
Manciukic Aug 11, 2025
a5cb371
chore(clippy): enable warn for or_fun_call
Manciukic Aug 11, 2025
a61390a
pci: remove unused members of the PciDevice trait
bchalios Aug 4, 2025
57aab34
pci: add unit test for adding BARs in config space
bchalios Aug 5, 2025
51a1aa8
pci: add unit test for configuring MSI-X capability
bchalios Aug 5, 2025
c9bdb87
pci: add unit test for accesses to invalid registers
bchalios Aug 5, 2025
0f396a2
pci: add unit test for BAR reprogramming detection
bchalios Aug 5, 2025
dce0754
pci: add unit tests for PCI bus accesses
bchalios Aug 6, 2025
75eb51d
pci: add unit tests for MSI-X code
bchalios Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 144 additions & 19 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ exit = "warn"
tests_outside_test_module = "warn"
assertions_on_result_states = "warn"
error_impl_error = "warn"
or_fun_call = "warn"

[profile.dev]
panic = "abort"
Expand Down
6 changes: 5 additions & 1 deletion resources/chroot.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ PS4='+\t '

cp -ruv $rootfs/* /

packages="udev systemd-sysv openssh-server iproute2 curl socat python3-minimal iperf3 iputils-ping fio kmod tmux hwloc-nox vim-tiny trace-cmd linuxptp strace python3-boto3"
packages="udev systemd-sysv openssh-server iproute2 curl socat python3-minimal iperf3 iputils-ping fio kmod tmux hwloc-nox vim-tiny trace-cmd linuxptp strace python3-boto3 pciutils"

# msr-tools is only supported on x86-64.
arch=$(uname -m)
Expand Down Expand Up @@ -64,6 +64,10 @@ rm -vf /etc/systemd/system/timers.target.wants/*

systemctl enable var-lib-systemd.mount

# disable Predictable Network Interface Names to keep ethN names
# even with PCI enabled
ln -s /dev/null /etc/systemd/network/99-default.link

#### trim image https://wiki.ubuntu.com/ReducingDiskFootprint
# this does not save much, but oh well
rm -rf /usr/share/{doc,man,info,locale}
Expand Down
8 changes: 8 additions & 0 deletions resources/guest_configs/pcie.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
CONFIG_BLK_MQ_PCI=y
CONFIG_PCI=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCI_MSI=y
CONFIG_PCIEPORTBUS=y
CONFIG_VIRTIO_PCI=y
CONFIG_PCI_HOST_COMMON=y
CONFIG_PCI_HOST_GENERIC=y
1 change: 1 addition & 0 deletions resources/overlay/etc/systemd/system/fcnet.service
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
[Service]
Type=oneshot
ExecStartPre=/usr/bin/udevadm settle
ExecStart=/usr/local/bin/fcnet-setup.sh
[Install]
WantedBy=sshd.service
Loading
Loading