diff --git a/vmm/src/cpu.rs b/vmm/src/cpu.rs index 0fabab841..c1bb67007 100644 --- a/vmm/src/cpu.rs +++ b/vmm/src/cpu.rs @@ -17,7 +17,7 @@ use crate::memory_manager::MemoryManager; use crate::seccomp_filters::{get_seccomp_filter, Thread}; #[cfg(target_arch = "x86_64")] use crate::vm::physical_bits; -#[cfg(feature = "acpi")] +#[cfg(any(target_arch = "aarch64", feature = "acpi"))] use crate::vm::NumaNodes; use crate::GuestMemoryMmap; use crate::CPU_MANAGER_SNAPSHOT_ID; @@ -531,7 +531,7 @@ impl CpuManager { seccomp_action: SeccompAction, vmmops: Arc, #[cfg(feature = "tdx")] tdx_enabled: bool, - #[cfg(feature = "acpi")] numa_nodes: &NumaNodes, + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes: &NumaNodes, ) -> Result>> { let guest_memory = memory_manager.lock().unwrap().guest_memory(); let mut vcpu_states = Vec::with_capacity(usize::from(config.max_vcpus)); diff --git a/vmm/src/device_manager.rs b/vmm/src/device_manager.rs index 9c9fc8a6a..8eaede6df 100644 --- a/vmm/src/device_manager.rs +++ b/vmm/src/device_manager.rs @@ -22,7 +22,7 @@ use crate::interrupt::LegacyUserspaceInterruptManager; #[cfg(feature = "acpi")] use crate::memory_manager::MEMORY_MANAGER_ACPI_SIZE; use crate::memory_manager::{Error as MemoryManagerError, MemoryManager}; -#[cfg(feature = "acpi")] +#[cfg(any(target_arch = "aarch64", feature = "acpi"))] use crate::vm::NumaNodes; use crate::GuestRegionMmap; use crate::PciDeviceInfo; @@ -922,7 +922,7 @@ pub struct DeviceManager { seccomp_action: SeccompAction, // List of guest NUMA nodes. - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes: NumaNodes, // Possible handle to the virtio-balloon device @@ -958,7 +958,7 @@ impl DeviceManager { _exit_evt: &EventFd, reset_evt: &EventFd, seccomp_action: SeccompAction, - #[cfg(feature = "acpi")] numa_nodes: NumaNodes, + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes: NumaNodes, activate_evt: &EventFd, force_iommu: bool, restoring: bool, @@ -1021,7 +1021,7 @@ impl DeviceManager { #[cfg(target_arch = "aarch64")] id_to_dev_info: HashMap::new(), seccomp_action, - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes, balloon: None, activate_evt: activate_evt @@ -2588,9 +2588,10 @@ impl DeviceManager { if let Some(virtio_mem_zone) = memory_zone.virtio_mem_zone() { let id = self.next_device_name(MEM_DEVICE_NAME_PREFIX)?; info!("Creating virtio-mem device: id = {}", id); - #[cfg(not(feature = "acpi"))] + + #[cfg(all(target_arch = "x86_64", not(feature = "acpi")))] let node_id: Option = None; - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] let node_id = numa_node_id_from_memory_zone_id(&self.numa_nodes, _memory_zone_id) .map(|i| i as u16); @@ -3685,7 +3686,7 @@ impl DeviceManager { } } -#[cfg(feature = "acpi")] +#[cfg(any(target_arch = "aarch64", feature = "acpi"))] fn numa_node_id_from_memory_zone_id(numa_nodes: &NumaNodes, memory_zone_id: &str) -> Option { for (numa_node_id, numa_node) in numa_nodes.iter() { if numa_node diff --git a/vmm/src/vm.rs b/vmm/src/vm.rs index 74096faf0..954096a40 100644 --- a/vmm/src/vm.rs +++ b/vmm/src/vm.rs @@ -11,7 +11,7 @@ // SPDX-License-Identifier: Apache-2.0 AND BSD-3-Clause // -#[cfg(feature = "acpi")] +#[cfg(any(target_arch = "aarch64", feature = "acpi"))] use crate::config::NumaConfig; use crate::config::{ DeviceConfig, DiskConfig, FsConfig, HotplugMethod, NetConfig, PmemConfig, ValidationError, @@ -51,7 +51,9 @@ use signal_hook::{ iterator::Signals, }; use std::cmp; -use std::collections::{BTreeMap, HashMap}; +#[cfg(any(target_arch = "aarch64", feature = "acpi"))] +use std::collections::BTreeMap; +use std::collections::HashMap; use std::convert::TryInto; use std::ffi::CString; #[cfg(target_arch = "x86_64")] @@ -519,7 +521,7 @@ pub struct Vm { vm: Arc, #[cfg(all(feature = "kvm", target_arch = "x86_64"))] saved_clock: Option, - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes: NumaNodes, seccomp_action: SeccompAction, exit_evt: EventFd, @@ -552,7 +554,7 @@ impl Vm { info!("Booting VM from config: {:?}", &config); // Create NUMA nodes based on NumaConfig. - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] let numa_nodes = Self::create_numa_nodes(config.lock().unwrap().numa.clone(), &memory_manager)?; @@ -568,7 +570,7 @@ impl Vm { &exit_evt, &reset_evt, seccomp_action.clone(), - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes.clone(), &activate_evt, force_iommu, @@ -606,7 +608,7 @@ impl Vm { vm_ops, #[cfg(feature = "tdx")] tdx_enabled, - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] &numa_nodes, ) .map_err(Error::CpuManager)?; @@ -644,7 +646,7 @@ impl Vm { vm, #[cfg(all(feature = "kvm", target_arch = "x86_64"))] saved_clock: _saved_clock, - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] numa_nodes, seccomp_action: seccomp_action.clone(), exit_evt, @@ -653,7 +655,7 @@ impl Vm { }) } - #[cfg(feature = "acpi")] + #[cfg(any(target_arch = "aarch64", feature = "acpi"))] fn create_numa_nodes( configs: Option>, memory_manager: &Arc>,