From b9f4c9bca30e65eacfb055951fa994ad5127a8f0 Mon Sep 17 00:00:00 2001 From: Zhuocheng Ding Date: Mon, 2 Dec 2019 15:50:28 +0800 Subject: crosvm: Add plumbing for split-irqchip interrupts Devices use irqfd to inject interrupts, we listen to them in the main thread and activate userspace pic/ioapic accordingly. BUG=chromium:908689 TEST=lanuch linux guest with `--split-irqchip` flag Change-Id: If30d17ce7ec9e26dba782c89cc1b9b2ff897a70d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/1945798 Tested-by: kokoro Reviewed-by: Stephen Barber Reviewed-by: Daniel Verkamp Commit-Queue: Zhuocheng Ding --- aarch64/src/lib.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'aarch64/src') diff --git a/aarch64/src/lib.rs b/aarch64/src/lib.rs index d4c4a50..f8a36b9 100644 --- a/aarch64/src/lib.rs +++ b/aarch64/src/lib.rs @@ -245,9 +245,14 @@ impl arch::LinuxArch for AArch64 { let pci_devices = create_devices(&mem, &mut vm, &mut resources, &exit_evt) .map_err(|e| Error::CreateDevices(Box::new(e)))?; - let (pci, pci_irqs, pid_debug_label_map) = - arch::generate_pci_root(pci_devices, &mut mmio_bus, &mut resources, &mut vm) - .map_err(Error::CreatePciRoot)?; + let (pci, pci_irqs, pid_debug_label_map) = arch::generate_pci_root( + pci_devices, + &mut None, + &mut mmio_bus, + &mut resources, + &mut vm, + ) + .map_err(Error::CreatePciRoot)?; let pci_bus = Arc::new(Mutex::new(PciConfigMmio::new(pci))); // ARM doesn't really use the io bus like x86, so just create an empty bus. @@ -317,6 +322,7 @@ impl arch::LinuxArch for AArch64 { vcpu_affinity, irq_chip, split_irqchip: None, + gsi_relay: None, io_bus, mmio_bus, pid_debug_label_map, -- cgit 1.4.1