Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
92166ad
chore: prepare virtio for multiple transport options
bchalios Apr 16, 2025
87b03ab
chore: avoid IrqTrigger::new().unwrap()
bchalios Apr 23, 2025
ab048f9
refactor: set VirtIO interrupt during activation
bchalios Apr 17, 2025
8ae3ccf
virtio: add generic interrupt trait
bchalios Apr 16, 2025
b7d683f
refactor: use VirtioInterrupt in VirtIO devices
bchalios Apr 22, 2025
7056343
vm-device: add vm-device crate to repo
bchalios Apr 29, 2025
7819db5
refactor(serial): remove generics from SerialDevice
bchalios Apr 24, 2025
805d0f1
refactor: use vm_device::Bus as the MMIO bus
bchalios Apr 24, 2025
c06798a
refactor: simplify creating RTCDevice
bchalios Apr 30, 2025
b7bddcd
refactor: use vm_device::Bus for IO bus
bchalios Apr 24, 2025
f8bbafc
refactor: add top-level device manager
bchalios Apr 25, 2025
b87fffe
refactor: simplify creation of I8042 device
bchalios May 7, 2025
041e687
test: add network interface to test_serial_dos test
bchalios May 12, 2025
75973a3
pci: add pci crate from Cloud Hypervisor
bchalios Apr 28, 2025
c515215
arch: define 64-bit capable MMIO memory regions
bchalios May 5, 2025
92e2cf1
refactor: prepare ResourceAllocator for PCIe devices
bchalios May 6, 2025
33efb04
pci: add support for PCIe segment
bchalios May 6, 2025
8b88d1c
pci: add support for ACPI MCFG table
bchalios May 7, 2025
fe13078
pci: define PCI segment in FDT
bchalios May 14, 2025
d4f5cde
pci: make PCIe support optional
bchalios May 13, 2025
3cca52f
pci: add support for snapshotting PCI devices
bchalios May 13, 2025
43825b8
pci: add tests for PCIe root bus
bchalios May 12, 2025
0f88040
test: allow `extd_apicid` CPU feature on AMD guests
bchalios May 21, 2025
e8e5d18
test: add Rust integration tests for PCI-enabled uVMs
bchalios May 21, 2025
bf2b1f7
test: temporarily disable security A/B tests for PCI uVMs
bchalios May 21, 2025
244254e
test: update ci artifacts to support PCI devices
Manciukic Nov 13, 2024
c3dca92
chore(pcie): update artifacts to 1.13
Manciukic Mar 10, 2025
c381bf7
tests: fix MMIO gaps in memory monitor tool
bchalios May 22, 2025
a2e8d5f
fix: boottimer device MMIO address
bchalios Jun 4, 2025
02d41d9
test: remove logging from memory monitor
bchalios Jun 4, 2025
fc34aba
chore: update kvm and vmm-sys-util dependencies
bchalios May 30, 2025
665db98
pci: fixes in PCI crate
bchalios Jun 3, 2025
537020b
vm-device: return reference to EventFd from Interrupt trait
bchalios Jun 10, 2025
9c78c38
cleanup: remove unused code from pci and vm-device crates
bchalios Jun 25, 2025
1d4790a
refactor: allow storing Arc<Vm> within Vmm
bchalios Jun 2, 2025
c210e62
vm: track device interrupts within Vm object
bchalios Jun 2, 2025
b6c267b
interrupts: add support for MSI/MSI-X interrupts
bchalios Jun 3, 2025
55308c0
vstate: support serializing interrupts to snapshots
bchalios Jun 10, 2025
238adef
virtio: initialize queue size with max_size
bchalios Jun 3, 2025
561de9c
acpi: PCI compatible flags in FADT
bchalios Jun 3, 2025
8595a43
vmm: simplify device errors
bchalios Jun 3, 2025
80202cd
pci: add virtio-pci transport implementation
bchalios Jun 2, 2025
66e6349
seccomp: allow new ioctls for vCPU threads
bchalios Jun 4, 2025
cfc3cff
pci: add unit tests to PciSegment
bchalios Jun 4, 2025
6915ca6
device_manager: save resource allocator in snapshot
bchalios Jun 5, 2025
35dfb33
refactor: VirtIO MMIO persistence logic
bchalios Jun 6, 2025
9709d6c
pci: support snapshotting VirtIO PCI devices
bchalios Jun 5, 2025
c7fe201
refactor(vm): move ResourceAllocator inside Vm
bchalios Jun 13, 2025
506b361
refactor(vm): move `Bus` objects to Vm
bchalios Jun 13, 2025
f0faa7f
arm: support MSI-X on ARM
bchalios Jun 18, 2025
5416099
test: VirtIO PCI device create and restoration
bchalios Jun 17, 2025
aca779f
test: enable PCI microVMs for performance testing
bchalios Jun 20, 2025
6fec04a
test: remove pci=off default from various parts in tests
bchalios Jun 25, 2025
550ac54
virtio: add kick() method in VirtioDevice trait
bchalios Jun 30, 2025
c6f69ee
refactor: simplify ResourceAllocator internals
bchalios Jun 30, 2025
2c3c03d
fix(vsock): pass correct index when triggering interrupts
bchalios Jul 2, 2025
c0e6878
fix(pci): do not panic on invalid BDF during deserialization
Manciukic Jul 8, 2025
045bf67
test(pci): add unit tests for Bdf
Manciukic Jul 8, 2025
ba37c03
fix(vmm): fix patch of pci devices
Manciukic Jul 9, 2025
a98d78a
fix(balloon): fix balloon not found when pci is enabled
Manciukic Jul 9, 2025
441a900
fix(restore): fix net device rename of PCI devices
Manciukic Jul 10, 2025
cf4d4cb
fix(msi): allocate GSI for MSI and "legacy IRQ" from different ranges
Manciukic Jul 8, 2025
162f419
refactor(mmio): rename irq to gsi in MMIODeviceInfo
Manciukic Jul 16, 2025
af5569e
test(pci): make test_net_change_mac_address pass with PCI devices
Manciukic Jul 10, 2025
9ff370e
test(rootfs): disable predictable netif names
Manciukic Jul 9, 2025
cfd66ec
test(pci): remove pci=off command line from tests
Manciukic Jul 8, 2025
ba6aeb3
test(pci): parametrize uvm_plain* with pci
Manciukic Jul 8, 2025
5c89b37
refactor(test): use uvm_plain* fixture instead factory.build
Manciukic Jul 15, 2025
76b81d8
refactor(test): add uvm_plain_acpi and _6_1 fixtures
Manciukic Jul 15, 2025
c1ec7bc
test(concurrency): run also with PCI
Manciukic Jul 15, 2025
ba87ba1
test(vhost): run tests also with PCI enabled
Manciukic Jul 15, 2025
2736919
test(initrd): run also with PCI enabled
Manciukic Jul 15, 2025
e380d81
test(memory-overhead): run also with PCI enabled
Manciukic Jul 15, 2025
62d555c
test(perf/snapshot): run also with PCI enabled
Manciukic Jul 15, 2025
a5334bf
fix(test_block): correct fixture name s/uvm_any_acpi/uvm_plain_acpi/
Manciukic Jul 18, 2025
dc4e6ca
fix: check in Cargo.lock changes
bchalios Jul 29, 2025
ed8e826
msix: relax assertion on data accesses from guest
bchalios Jul 28, 2025
6102824
msi: use Vec to store GSIs for MSI vectors
bchalios Jul 28, 2025
5363bc5
msi: fix size of interrupts HashMap
bchalios Jul 29, 2025
c1547b7
fix: return NO_VECTOR when reading MSI vector for invalid queue
bchalios Jul 29, 2025
9f6fc31
fix(pci): correct shift size when setting config address
bchalios Jul 29, 2025
7f00003
fix: only set MSI-X vector for valid queues
bchalios Jul 30, 2025
77b8d30
feat: add swiotlb=noforce to default kernel command line
Manciukic Jul 30, 2025
f691ed8
pci: remove unused code
bchalios Aug 1, 2025
6e40ea4
pci: remove unused type from PciDevice::allocate_bars
bchalios Aug 1, 2025
fc6f98a
pci: always assume we are using a single 64bit MMIO BAR
bchalios Aug 1, 2025
d150074
feat(virtio/interrupt): add trigger_queues method
Manciukic Aug 4, 2025
39bdad6
fix(vsock): restore previous performance with PCI disabled
Manciukic Aug 4, 2025
3b06a84
fix(virtio): avoid panic on device activation failure
bchalios Aug 8, 2025
8073b33
fix(mmio): avoid locking multiple times in same code branch
bchalios Aug 8, 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
162 changes: 143 additions & 19 deletions Cargo.lock

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

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
2 changes: 1 addition & 1 deletion resources/overlay/usr/local/bin/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// Position on the bus is defined by MMIO_LEN increments, where MMIO_LEN is
// defined as 0x1000 in vmm/src/device_manager/mmio.rs.
#ifdef __x86_64__
#define MAGIC_MMIO_SIGNAL_GUEST_BOOT_COMPLETE 0xd0000000
#define MAGIC_MMIO_SIGNAL_GUEST_BOOT_COMPLETE 0xc0000000
#endif
#ifdef __aarch64__
#define MAGIC_MMIO_SIGNAL_GUEST_BOOT_COMPLETE 0x40000000
Expand Down
Loading
Loading