From 48899992776ccc14920de176800b31b07cca94bf Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Tue, 28 Sep 2021 11:45:21 +0100 Subject: [PATCH] vmm: Only advertise a single PCI bus Since we only support a single PCI bus right now advertise only a single bus in the ACPI tables. This reduces the number of VM exits from probing substantially. Number of PCI config I/O port exits: 17871 -> 1551 (91% reduction) with direct kernel boot. Signed-off-by: Rob Bradford --- vmm/src/acpi.rs | 2 +- vmm/src/device_manager.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vmm/src/acpi.rs b/vmm/src/acpi.rs index 9680cee85..679d92a04 100644 --- a/vmm/src/acpi.rs +++ b/vmm/src/acpi.rs @@ -233,7 +233,7 @@ fn create_mcfg_table() -> Sdt { base_address: arch::layout::PCI_MMCONFIG_START.0, segment: 0, start: 0, - end: ((arch::layout::PCI_MMCONFIG_SIZE - 1) >> 20) as u8, + end: 0, ..Default::default() }); mcfg diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index bc720aad4..690d2b693 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -4129,7 +4129,7 @@ impl Aml for DeviceManager { let crs = aml::Name::new( "_CRS".into(), &aml::ResourceTemplate::new(vec![ - &aml::AddressSpace::new_bus_number(0x0u16, 0xffu16), + &aml::AddressSpace::new_bus_number(0x0u16, 0x0u16), #[cfg(target_arch = "x86_64")] &aml::Io::new(0xcf8, 0xcf8, 1, 0x8), #[cfg(target_arch = "aarch64")]